{{anchor href="top"}}
Hits : **{{hits}}**
== Linux Kernel Installation ==
** Mini How To **
{{ToC from="h2" to="h3"}}
-----------
=== Kernel Download ===
http://kernel.org/
Κατεβάζουμε την τελευταία "//σταθερή//" έκδοση του πυρήνα που θέλουμε να εγκαταστήσουμε.
π.χ. http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.19.2.tar.bz2
Εάν έχουμε ήδη κατεβάσει προηγούμενη έκδοση του ίδιου release δεν χρειάζεται να ξανακατεβάσουμε
όλο τον πυρήνα αλλά μόνο το patch που έχει βγει.
π.χ. http://kernel.org/pub/linux/kernel/v2.6/patch-2.6.19.2.bz2
((#top))
-----------
=== Kernel Extract ===
Αφού κατεβάσουμε τα αρχεία μας τα μεταφέρουμε στον κατάλογο /usr/src/ του συστήματός μας.
%%(html)
# wget -c http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.19.2.tar.bz2
# mv linux-2.6.19.2.tar.bz2 /usr/src
%%
Αποσυμπιέζουμε και απο-πακετάρουμε το αρχείο μας
%%(html)
# tar jxvf linux-2.6.19.2.tar.bz2
# ln -s linux-2.6.17.9.2 linux
# cd linux
%%
Εάν έχουμε κάποιο patch το οποίο θέλουμε να περάσουμε ("//πατσάρουμε//")
τότε πληκτρολογούμε την παρακάτω εντολή (αφού πρώτα έχουμε μεταβεί στο
συγκεκριμένο κατάλογο)
%%(html)
# patch -Np1 < ../patch-2.6.17.8
%%
((#top))
-----------
=== Kernel Prepare ===
Για να προχωρήσουμε με την εγκατάστασή μας πληκτρολογούμε την εξής εντολή:
%%(html)
# make mrproper
%%
Με αυτήν την εντολή "//καθαρίζουμε//" τους καταλόγους καθώς και τα .config αρχεία
και όλα τα object που έχουν δημιουργηθεί από προηγούμενη εγκατάσταση.
((#top))
-----------
=== Kernel Configuration ===
Το σημαντικότερο βήμα είναι η δημιουργία ενός αρχείου ρυθμίσεων.
Βάσει αυτού του αρχείου //.config// γίνεται η μεταγλώττιση του πυρήνα μας
και στην συνέχεια η εγκατάστασή του. Για να προσθέσουμε ή να αφαιρέσουμε
χαρακτηριστικά που θα υποστηρίζει ο πυρήνας μας πληκτρολογούμε την
παρακάτω εντολή:
%%(html)
# make menuconfig
%%
Εάν έχουμε ήδη κάποιο "//παλιό//" config αρχείο που θέλουμε να χρησιμοποιήσουμε
τότε πληκτρολογούμε την παρακάτω εντολή:
%%(html)
# make oldconfig
%%
Μέσα από ένα γραφικό περιβάλλον κονσόλας επιλέγουμε τα χαρακτηριστικά τα οποία
είτε μπορούν να εγκατασταθούν ενσωματωμένα στον πυρήνα μας είτε μπορούν να
παραχθούν ως αρθρώματα (modules) και να ενεργοποιηθούν (modprobe) μετά.
#|
|| [M] | Αρθρώμα | Module ||
|| [*] | Ενσωματωμένο | Built In ||
|#
Ανάλογα με το γραφικό περιβάλλον μας μπορούμε να πληκτρολογήσουμε τις εξής εντολές:
%%(html)
# make xconfig
ή
# make gconfig
%%
Εάν όμως το σύστημά μας δεν υποστηρίζει ncurses τότε πληκτρολογούμε την παρακάτω εντολή
με την οποία μπαίνουμε σε μία διαδικασία ερωτήσεων για να παραχθεί το τελικό .config αρχείο.
%%(html)
# make config
%%
((#top))
-----------
=== Kernel Compile ==
Συνεχίζουμε με την μεταγλώττιση του πυρήνα και των διάφορων αρθρωμάτων.
Πληκτρολογούμε:
%%(html)
# make
%%
Και περιμένουμε μέχρι να τελειώσει η διαδικασία ...
Σε πυρήνα 2.6.x δεν χρειάζεται να κάνουμε compilation τα modules που θέλουμε
για τον πυρήνα μας. Σε αντίθεση με πυρήνα 2.4.x όπου πρέπει να πληκτρολογήσουμε:
%%(html)
# make modules
%%
Οι 2 παραπάνω εντολές παράγουν το πυρήνα μας και τα διάφορα αρθρώματα τα οποία δεν
ενσωματώσαμε στον πυρήνα. Στο πυρήνα μας χρειάζεται να ενσωματώσουμε μόνο τα απαραίτητα.
Τα υπόλοιπα τα ορίζουμε ως αρθρώματα. Έτσι ο πυρήνας μας είναι μικρός και γρήγορος σε
μέγεθος και ταχύτητα αλλά και αρκετά ευέλικτος, αφού ενεργοποιούμε μόνο τα αρθρώματα που
χρειαζόμαστε όταν τα χρειαζόμαστε.
((#top))
-----------
=== Modules Installation ===
Για να κάνουμε εγκατάσταση των modules που κάναμε παραπάνω μεταγλώττιση
χρειάζεται να πληκτρολογήσουμε την παρακάτω εντολή:
%%(html)
# make modules_install
%%
Όταν ολοκληρωθεί η παραπαάνω εντολή θα πρέπει στον κατάλογο
%%(html)
# ls /lib/modules/2.6.x
ή
# ls /lib/modules/2.4.x
%%
Να υπάρχουν τα αρθρώματα που μόλις εγκαταστήσαμε.
((#top))
-----------
=== Kernel Installation ===
Τώρα το μόνο που έμεινε είναι να εγκαταστήσουμε τον νέο μας πυρήνα στο σύστημά μας
και να προσθέσουμε στο λογισμικό εκκίνησης την απαραίτητη εγγραφή ώστε το σύστημά
μας να μπορεί να εκκινηθεί από τον νέο μας πυρήνα. Πληκτρολογούμε την παρακάτω εντολή:
%%(html)
# make install
%%
Εάν όμως θέλουμε να αντιγράψουμε τα αρχεία μόνοι μας, τότε χρειάζεται να πληκτρολογήσουμε
τις εξής εντολές:
%%(html)
# cp System.map /boot/System.map_2.9.19.2
# cp .config /boot/config.2.6.19.2
# cp arch/i386/boot/bzimage /boot/vmlinuz-2.6.19.2
%%
Το αρχείο bzimage σημαίνει big compress (zip) image kernel.
Με τις παραπάνω εντολές ολοκληρώσαμε την εγκατάσταση του πυρήνα μας
((#top))
-----------
=== Initrd Installation ===
Αφού έχουμε ολοκληρώσει την εγκατάσταση του πυρήνα μας, χρειάζεται να
δημιουργήσουμε το αρχείο initrd για τον πυρήνα. Περισσότερες πληροφορίες
μπορεί κανείς να βρει στον παρακάτω αρχείο:
%%(html)
# less /usr/src/linux/Documentation/initrd.txt
%%
Κατά την εκκίνηση του συστήματός μας χρειάζεται να υπάρχει το αρχείο initrd το οποίο
"//ανοίγει//" στην μνήμη φορτώνοντας προσωρινά ένα σύστημα αρχείων με σκοπό να
φορτώσει ο πυρήνας ότι χρειάζεται και να εκκινήσει το σύστημά μας.
Για να δημιουργήσουμε το αρχείο πληκτρολογούμε την παρακάτω εντολή:
%%(html)
# mkinitrd -o /boot/initrd.img-2.6.19.2 2.6.19.2
%%
Alternative
http://sourceforge.net/projects/mkinitramfs/
%%(html)
# mkinitramfs 2.6.21 -o initrd.img-2.6.21
%%
((#top))
-----------
=== Lilo Configuration ===
Προσθέτουμε τις εξείς ρυθμίσεις στο αρχείο // /etc/lilo.conf //:
%%(html)
image=/boot/vmlinuz-2.6.19.2
label=2.6.19.2
read-only
root=/dev/hda1
%%
Και μετά πληκτρολογούμε :
%%(html)
lilo
%%
((#top))
* Όπου hda1 δηλώνουμε το partition εκείνο που περιέχει το λογισμικό εκκίνησης lilo.
Εάν είναι η δισκέτα μας τότε αντί για **hda1** θα έπρεπε να γράψουμε **fd0**
-----------
=== Grub Configuration ===
**GRand Unified Bootloader**
Προσθέτουμε στο αρχείο /boot/grub/menu.lst τις παρακάτω γραμμές:
%%(html)
title 2.6.19.2
root (hd0,0)
kernel /vmlinuz-2.6.19.2 root=/dev/hda1 ro
initrd /initrd.img-2.6.19.2
boot
%%
((#top))
-----------
=== Reboot ===
Πληκτρολογούμε την παρακάτω εντολή:
%%(html)
# reboot
%%
((#top))
-----------
=== URLS===
http://kernel.org/
http://kernelnewbies.org/FAQ/KernelCompilation
http://kerneltrap.org/
((#top))
-----------
=== Quick and Dirty ===
%%(html)
sudo su -
mkdir -pv /lib/firmware/2.6.24.4/
cd /usr/src/
wget -c http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.24.4.tar.bz2
tar xjf linux-2.6.24.4.tar.bz2
cd linux-2.6.24.4
make defconfig
make all
make modules_install
make install
cd /boot/
mkinitramfs 2.6.24.4 -o initrd.img-2.6.24.4
vim /boot/grub/menu
[add / modify ]
title Ubuntu 7.10, kernel 2.6.24.4
root (hd0,5)
kernel /vmlinuz-2.6.24.4 root=/dev/sda6 ro
initrd /initrd.img-2.6.24.4
modprobe :
FUSE
%%
((#top))
-----------
=== Ubuntu Quick & Dirty ===
Το παρακάτω παράδειγμα μπορεί να χρησιμοποιηθεί AS-IS
σε μια διανομή ubuntu που μόλις στήθηκε.
%%(html)
sudo su -
apt-get update
apt-get install -y linux-source-2.6.24 libc6-dev libncurses5-dev
cd /usr/src/
tar jxvf linux-source-2.6.24.tar.bz2
cd linux-source-2.6.24
pwd
ls -la
cp /boot/config-2.6.24-19-generic .config
ls -la
make oldconfig
make
make modules_install
make install
cd /boot
mkinitramfs 2.6.24 -o initrd.img-2.6.24
vim /boot/grub/menu
[add / modify ]
title Ubuntu, kernel 2.6.24.4
root (hd0,0)
kernel /boot/vmlinuz-2.6.24 root=/dev/sda1 ro
initrd /boot/initrd.img-2.6.24
%%
((#top))
-----------