Kernel „backen“
Voraussetzungen:
-Debian5.04 lenny
Pakete:
-gcc, binutils, make, linux-headers-2.6.26-2-amd64, libncurses5 -dev, initramfs-tools
(für xconfig)qt3-dev-tools, g++
Aktuellen Kernel herunterladen
http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.34.tar.bz2
*stable ist immer eine gute idee*
Ziel: /usr/src
Kernel entpacken
bei tar.gz archiven
user@debian:/usr/src$ tar -xvzf linux-2.6.34 .tar.gz
bei tar.bz2 archiven
user@debian:/usr/src$ bunzip2 linux-2.6.34 .tar.bz2
user@debian:/usr/src$ tar -xf linux-2.6.34 .tar
in den Ordner linux-2.6.33.4 wechseln
Kernel konfigurieren
1.) make config oder
2.) make menuconfig (requires the ncurses libraries) oder
3.) user@debian:/usr/src/linux-2.6.33.4$ sudo make xconfig
*Menü zum konfigurieren des Kernels*
File Save as .config
Kernel kompilieren
*Hier könnte noch die „Makefile“ bearbeitet werden.
*sämtliche make-Befehle beruhen auf der Makefile (pwd = Ordner mit Makefile)
make dep
user@debian:/usr/src/linux-2.6.33.4$ sudo make dep
Nun müssen Sie 'make dep' eingeben. Dies sorgt dafür, dass Abhängigkeiten im Kernel richtig aufgelöst werden.
make -j4 bzImage
user@debian:/usr/src/linux-2.6.33.4$ sudo make bzImage
Durch Eingabe von 'make bzImage' wird der eigentliche Kompiliervorgang gestartet. Dies kann je nach Prozessor- und Arbeitsspeicherausstattung des Computers durchaus etwas länger dauern. Zum Schluss der Kompilierung erscheint (hoffentlich) eine Meldung, dass der Vorgang erfolgreich war und der Ort, wo der Kernel jetzt gespeichert wurde, sowie dessen Größe.
make -j4 modules
user@debian:/usr/src/linux-2.6.33.4$ sudo make modules
Der Kernel selber ist nun fertig, es fehlen allerdings noch die Module, die der Kernel benötigt, um z.B. auf bestimmte Geräte zuzugreifen. Diese werden mit dem Befehl 'make modules' erstellt. Auch dies dauert wieder eine Weile.
make -j4 modules_install
user@debian:/usr/src/linux-2.6.33.4$ sudo make modules_install
Nun sind die Module erstellt, aber noch nicht am richtigen Ort. Der Befehl 'make modules_install' sorgt dafür, dass im Verzeichnis '/lib/modules/' ein Verzeichnis erstellt wird, in dem die Module gespeichert werden. Der Name dieses Verzeichnisses hängt vom Namen des Kernels ab. Heißt der Kernel z.B. '2.4.19-xyz', so befindet sich im Verzeichnis '/lib/modules' ein Unterverzeichnis mit dem Namen '2.4.19-xyz', welches (in weiteren Unterverzeichnissen) nun alle Module enthält.
Kernel verschieben
entweder
1.) make install *tested by florian*
kopiert bzImage nach /boot/vmlinuz... [OK]
erstellt system.map in /boot [OK]
oder
2.) manuelles „make install“
der Kernel befindet sich nun unter /usr/src/linux-2.6.33.4/arch/x86/boot/bzImage
Kernel verschieben nach /boot/vmlinuz- 2.6.33.4
Neues initrd.img erstellen
Im Ordner /boot
sudo update-initramfs -k 2.6.33.4 -c
-k kernelversion(name der datei unter /lib/modules/2.6.33.4)
-c erstelle neues initramfs
/boot/initrd.img-2.6.33.4 wurde nun erstellt.
Grub2 updaten
sudo update-grub2