Hits : 4597

Linux Kernel Installation


Mini How To 




Kernel Download


http://kernel.org/


Κατεβάζουμε την τελευταία "σταθερή" έκδοση του πυρήνα που θέλουμε να εγκαταστήσουμε.


π.χ. filehttp://kernel.org/pub/linux/ke[..]nux-2.6.19.2.tar.bz2


Εάν έχουμε ήδη κατεβάσει προηγούμενη έκδοση του ίδιου release δεν χρειάζεται να ξανακατεβάσουμε
όλο τον πυρήνα αλλά μόνο το patch που έχει βγει.


π.χ. filehttp://kernel.org/pub/linux/ke[..]6/patch-2.6.19.2.bz2


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