Hits :
5006
Linux Kernel Installation
Mini How To
Kernel Download
http://kernel.org/
Κατεβάζουμε την τελευταία "
σταθερή" έκδοση του πυρήνα που θέλουμε να εγκαταστήσουμε.
π.χ.
http://kernel.org/pub/linux/ke[..]nux-2.6.19.2.tar.bz2[link1]
Εάν έχουμε ήδη κατεβάσει προηγούμενη έκδοση του ίδιου release δεν χρειάζεται να ξανακατεβάσουμε
όλο τον πυρήνα αλλά μόνο το patch που έχει βγει.
π.χ.
http://kernel.org/pub/linux/ke[..]6/patch-2.6.19.2.bz2[link2]
top
Kernel Extract
Αφού κατεβάσουμε τα αρχεία μας τα μεταφέρουμε στον κατάλογο /usr/src/ του συστήματός μας.
# 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
Αποσυμπιέζουμε και απο-πακετάρουμε το αρχείο μας
# tar jxvf linux-2.6.19.2.tar.bz2
# ln -s linux-2.6.17.9.2 linux
# cd linux
Εάν έχουμε κάποιο patch το οποίο θέλουμε να περάσουμε ("
πατσάρουμε")
τότε πληκτρολογούμε την παρακάτω εντολή (αφού πρώτα έχουμε μεταβεί στο
συγκεκριμένο κατάλογο)
# patch -Np1 < ../patch-2.6.17.8
top
Kernel Prepare
Για να προχωρήσουμε με την εγκατάστασή μας πληκτρολογούμε την εξής εντολή:
# make mrproper
Με αυτήν την εντολή "
καθαρίζουμε" τους καταλόγους καθώς και τα .config αρχεία
και όλα τα object που έχουν δημιουργηθεί από προηγούμενη εγκατάσταση.
top
Kernel Configuration
Το σημαντικότερο βήμα είναι η δημιουργία ενός αρχείου ρυθμίσεων.
Βάσει αυτού του αρχείου
.config γίνεται η μεταγλώττιση του πυρήνα μας
και στην συνέχεια η εγκατάστασή του. Για να προσθέσουμε ή να αφαιρέσουμε
χαρακτηριστικά που θα υποστηρίζει ο πυρήνας μας πληκτρολογούμε την
παρακάτω εντολή:
# make menuconfig
Εάν έχουμε ήδη κάποιο "
παλιό" config αρχείο που θέλουμε να χρησιμοποιήσουμε
τότε πληκτρολογούμε την παρακάτω εντολή:
# make oldconfig
Μέσα από ένα γραφικό περιβάλλον κονσόλας επιλέγουμε τα χαρακτηριστικά τα οποία
είτε μπορούν να εγκατασταθούν ενσωματωμένα στον πυρήνα μας είτε μπορούν να
παραχθούν ως αρθρώματα (modules) και να ενεργοποιηθούν (modprobe) μετά.
| [M] | Αρθρώμα | Module |
| [*] | Ενσωματωμένο | Built In |
Ανάλογα με το γραφικό περιβάλλον μας μπορούμε να πληκτρολογήσουμε τις εξής εντολές:
# make xconfig
ή
# make gconfig
Εάν όμως το σύστημά μας δεν υποστηρίζει ncurses τότε πληκτρολογούμε την παρακάτω εντολή
με την οποία μπαίνουμε σε μία διαδικασία ερωτήσεων για να παραχθεί το τελικό .config αρχείο.
# make config
top
Kernel Compile
Συνεχίζουμε με την μεταγλώττιση του πυρήνα και των διάφορων αρθρωμάτων.
Πληκτρολογούμε:
# make
Και περιμένουμε μέχρι να τελειώσει η διαδικασία ...
Σε πυρήνα 2.6.x δεν χρειάζεται να κάνουμε compilation τα modules που θέλουμε
για τον πυρήνα μας. Σε αντίθεση με πυρήνα 2.4.x όπου πρέπει να πληκτρολογήσουμε:
# make modules
Οι 2 παραπάνω εντολές παράγουν το πυρήνα μας και τα διάφορα αρθρώματα τα οποία δεν
ενσωματώσαμε στον πυρήνα. Στο πυρήνα μας χρειάζεται να ενσωματώσουμε μόνο τα απαραίτητα.
Τα υπόλοιπα τα ορίζουμε ως αρθρώματα. Έτσι ο πυρήνας μας είναι μικρός και γρήγορος σε
μέγεθος και ταχύτητα αλλά και αρκετά ευέλικτος, αφού ενεργοποιούμε μόνο τα αρθρώματα που
χρειαζόμαστε όταν τα χρειαζόμαστε.
top
Modules Installation
Για να κάνουμε εγκατάσταση των modules που κάναμε παραπάνω μεταγλώττιση
χρειάζεται να πληκτρολογήσουμε την παρακάτω εντολή:
# make modules_install
Όταν ολοκληρωθεί η παραπαάνω εντολή θα πρέπει στον κατάλογο
# ls /lib/modules/2.6.x
ή
# ls /lib/modules/2.4.x
Να υπάρχουν τα αρθρώματα που μόλις εγκαταστήσαμε.
top
Kernel Installation
Τώρα το μόνο που έμεινε είναι να εγκαταστήσουμε τον νέο μας πυρήνα στο σύστημά μας
και να προσθέσουμε στο λογισμικό εκκίνησης την απαραίτητη εγγραφή ώστε το σύστημά
μας να μπορεί να εκκινηθεί από τον νέο μας πυρήνα. Πληκτρολογούμε την παρακάτω εντολή:
# make install
Εάν όμως θέλουμε να αντιγράψουμε τα αρχεία μόνοι μας, τότε χρειάζεται να πληκτρολογήσουμε
τις εξής εντολές:
# 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 για τον πυρήνα. Περισσότερες πληροφορίες
μπορεί κανείς να βρει στον παρακάτω αρχείο:
# less /usr/src/linux/Documentation/initrd.txt
Κατά την εκκίνηση του συστήματός μας χρειάζεται να υπάρχει το αρχείο initrd το οποίο
"
ανοίγει" στην μνήμη φορτώνοντας προσωρινά ένα σύστημα αρχείων με σκοπό να
φορτώσει ο πυρήνας ότι χρειάζεται και να εκκινήσει το σύστημά μας.
Για να δημιουργήσουμε το αρχείο πληκτρολογούμε την παρακάτω εντολή:
# mkinitrd -o /boot/initrd.img-2.6.19.2 2.6.19.2
Alternative
http://sourceforge.net/projects/mkinitramfs/
# mkinitramfs 2.6.21 -o initrd.img-2.6.21
top
Lilo Configuration
Προσθέτουμε τις εξείς ρυθμίσεις στο αρχείο
/etc/lilo.conf :
image=/boot/vmlinuz-2.6.19.2
label=2.6.19.2
read-only
root=/dev/hda1
Και μετά πληκτρολογούμε :
lilo
top
* Όπου hda1 δηλώνουμε το partition εκείνο που περιέχει το λογισμικό εκκίνησης lilo.
Εάν είναι η δισκέτα μας τότε αντί για
hda1 θα έπρεπε να γράψουμε
fd0
Grub Configuration
GRand Unified Bootloader
Προσθέτουμε στο αρχείο /boot/grub/menu.lst τις παρακάτω γραμμές:
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
Πληκτρολογούμε την παρακάτω εντολή:
# reboot
top
URLS
http://kernel.org/
http://kernelnewbies.org/FAQ/KernelCompilation
http://kerneltrap.org/
top
Quick and Dirty
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 που μόλις στήθηκε.
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
[link2] http://kernel.org/pub/linux/kernel/v2.6/patch-2.6.19.2.bz2