HowTo Linux Kernel Recompile

April 6th, 2011 von sdohn

erstellt von S.Dohn, 02.02.05
1) Neuen Kernel besorgen entweder von http://www.kernel.org oder von einem Redhat/Fedora Mirror nachinstallieren

(Suchen nach kernel-source-*.rpm).
Bei Redhat das rpm mit rpm -ivh kernel-source-2.4.20-20.9 installieren.
Bei einem neuen Kernel
von http://www.kernel.org ihn unter /usr/src auspacken.
Symbolischen Link von diesem Kernel Tree zu linux-2.4 erstellen.

2) Reset aller optionen/ASM Files

Wir fangen die Konfiguration an,
indem wir alle vorhergehenden Konfigurationen clearen
und das Quellverzeichnis zu seinem Urzustand zurückstellen.
Der Hauptgrund für das Tun ist,
daß einige Dateien nicht automatisch Rebuildet werden können
oder im schlechtesten Fall ein Buggykernel.
cd /usr/src/linux-2.4
make mrproper
make distclean

3) Wir Rufen das Kernel Konfigurationsprogram auf:

  make menuconfig # Bei Consolen Konfiguration

make xconfig # Zur Grafischen Konfiguration des Kernels.

 

 

 

 

 

 

 

 

 

4) Laden einer Redhat Default Konfiguration

Um nicht alle Konfig Optionen Auswendig zu kennen,
sollte man mit einer Default Konfiguration starten.
Davon ausgehend kann man dann seine Optionen/Treiber
... entsprechend auswählen.
Die RedHat Konfig Dateien liegen unter: /usr/src/linux-2.4/configs/

 

 

5) Alle Abhängigkeiten des Kernel Trees automatisch bestimmen lassen

  make dep

6) Bauen des Compressed Kernel Images

  make bzImage

7) Bauen der Module des Kernels

  make modules

8) Installieren des Modul Zweiges nach /lib/modules

  make modules_install

9) Kopieren der für den Boot Kernel wichtigen Dateien in die richtigen Verzeichnisse

  cd /usr/src/linux-2.4/arch/i386/boot
  cp bzImage /boot/vmlinuz-2.4.**custom

  cd /usr/src/linux-2.4/
  cp System.map /boot/System.map-2.4.***custom

10) Bauen der initialen Ramdisk mit allen wichtigen Kernel Modulen zur Bootzeit

   mkinitrd /boot/initrd-2.4.***custom.img 2.4.**custom

11) Einbauen der neuen Kernel Konfiguration in das Grub Bootmenu

   cd /boot/grub ; vi grub.conf
   folgende Zeilen zur bestehenden Konfiguration hinzufügen:
   boot=/dev/hda2
   default=0
   timeout=10
   splashimage=(hd0,1)/boot/grub/splash.xpm.gz
   title Red Hat Linux (2.4.20-20.9)
       root (hd0,1)
       kernel /boot/vmlinuz-2.4.***custom ro root=LABEL=/
       initrd /boot/initrd-2.4.***custom.img