You are on page 1of 3

Quelle :http://www.ubuntulinux.

org/wiki/KernelCompileHowto

Während Ubuntu mit Kerneln arbeitet die auf die traditionelle weise übersetzt "mak bzImage &&
modules" wurden ,dieser ist ein arbeitsintensiver Prozess. Dieses Dokument zeigt wie man make-
kpkg zum automatisieren dieser schritte nutzt.

Ein komplettes KernelHowto existiert nun auch. Diese Dokument zeigt einen schnellen weg; der
andere zeigt eingehendere Anweisungen.

Als erstes, musst man root werden. Diese Anweisungen setzen voraus das man root rechte hat, diese
benötigt man um das Paket zu erstellen. Jedoch besteht die möglichkeit, als normaler benutzer
mittels des fakeroot paketes, das Paket zu erstellen. Lies /usr/share/doc/kernel-package/README
für mehr informationen.
code:
1: $ sudo -s

Stelle sicher ob alle benötigten Pakete installiert sind, die für das Paket benötigt werden. Man muss
nur die libncurses-dev intsllieren, wenn man die Kernelkonfiguration ändern will macht man das
mit "make menuconfig".

code:
1: # apt-get install build-essential bin86

code:
1: # apt-get install libncurses-dev

code:
1: # apt-get install kernel-package

Source

nun installiere und entzippe den kernel source tree


code:
1: # apt-get install linux-tree-2.6.8.1
2: # cd /usr/src
3: # tar jxf linux-source-2.6.8.1.tar.bz2
4: # ln -s linux-source-2.6.8.1 linux
5:
Config

Kopiere die aktuelle konfiguration über die des neuen kernel source. Die exakte version des kernels
erhält man indem man in der konsole "cat /proc/version" eingibt.

code:
1: # cd /usr/src/linux
2: # cp /boot/config-2.6.8.1-3-686 .config
3: # make oldconfig
4:

Zu diesem zeitpunkt muss man die Kernel konfiguration so ändern, dass bus, disk, and filesystem
treiber statisch eingebunden werden. Das kann mitunter recht schwierig sein wenn man nicht weis
was man macht. Verwende "make menuconfig" (oder "make xconfig", gconfig, etc...) um die
Konfiguration zu ändern.

Kompilieren

Nun ist es an der Zeit das Paket zu kompilieren it. Vergiss nicht, die Ausgabezahl zu erhöhen wenn
du weiter Kernel-pakete erstellst.
code:
1: # make-kpkg clean
2: # make-kpkg --revision=custom.1.0 kernel_image
3:

Installieren

Den neuen Kernel finden man ein Verzeichnis höher, in /usr/src.


code:
1: # cd ..
2: # dpkg -i kernel-image-2.6.8.1_custom.1.0_i386.deb
3:

Boot Loader

Das installieren hat auch ein neues /vmlinuz und /initrd.img erstellt um den neuen Kernel zu zeigen.
Der alte Kernel ist weiterhin verfügbar in /vmlinuz.old und initrd.old. Stelle sicher, dass der boot
loader beide auflistet. Dies erlaubt dir den alten Kernel wieder zu benutzen falls der neue nicht
funktioniert.

Zusätzlich, so lange man mit kernel packeten herum spielt, ist es eine gute idee eine kopie des
stabielen Kernles und der initrd zu machen. Das ist gut, wenn beide alter und neuer Kernel nicht
booten, denn dann hat man immer noch ein stabiles Kernel abbild von dem man booten kann.
Erstellen einer kopie des stabilen Kernels:
code:
1: cp /vmlinuz.old /vmlinuz.stable
2: cp /initrd.old /initrd.stable
3:

Hier ist eine Beispiel konfiguration einer /boot/grub/menu.lst:

code:
1: title=Linux
2: root (hdX,X)
3: kernel /vmlinuz root=/dev/hda3
4: initrd /initrd.img
5: boot
6:
7: title=Linux Old
8: root (hdX,X)
9: kernel /vmlinuz.old root=/dev/hda3
10: initrd /initrd.old
11: boot
12:
13: title=Linux Stable
14: root (hdX,X)
15: kernel /vmlinuz.stable root=/dev/hda3
16: initrd /initrd.stable
17: boot

Jetzt startet man neu. "cat /proc/version" sagt dir ob du jetzt mit der neuen Kernel version arbeitest.

Kleine unterschiede zu normalen Ubuntu kernels:

* Er benennt sich "kernel-image-" anstatt von "linux-image-"


* Packe namen spezifizieren i386 während die .config i686 spezifiziert.

Haupt unterschiede

*Es erstellt kein initrd. Alle treiber müssten zum boot zeitpunkt statisch
kopiliert werden.

Edit: die letzte stabile Kernel version ist 2.6.10

(C) ozoon – www.ubuntu-forum.de – ozoon@ubuntuforum.de

You might also like