Kernelupgrade

  1. Kern holen bei http://www.kernel.org/
  2. Nach dem holen solte man die Signatur prüfen nach Kernel archives - Signature
  3. Man kann alles als root machen, bzw. man sollte sich Rechte geben.
    Spätestens zum Installieren des Kerns braucht man root-Rechte
  4. Auspacken
       cd /usr/src/
       tar -Jxvf linux-3.10.tar.xz
       
  5. Konfigurieren
       cd /usr/src/linux-3.10/
       cp /boot/config-3.8.0-25-generic .config 
       make oldconfig
       
    und ggf.
       make menuconfig
       
  6. Compilieren
       make bzImage 
       make modules
       
  7. Installieren
       make modules_install
      
    Installiert die Module unter /lib/modules/3.10.0/
      make install
      
    Dazu wird /sbin/installkernel aufgerufen.
    Diese ist dann distributionsspezifisch. Intern wird dann auch mkinitrd aufgerufen, die ebenso distributionsspezifisch ist.
    bei Debian/Ubuntu wird dann auch da grub-boot-menu aufdatiert.

Die Kunst besteht im Konfigurieren des Kerns.
Tip: make help im Sourceverzeichnis zeigt alle Targets an.
make localmodconfig soll nur die tatsächlich aktuell geladenen Module konfigurieren.
c't Linux kompakt 02/2012 erwähnt folgendes, um dir Konfiguration auf einem anderen Rechner zu bauen:
Auf dem Zielsystem:

  lsmod > module_auf_zielsystem
 
Auf dem Übersetzungssystem:
 make LSMOD=module_auf_zielsystem localmodconfig
 

Anwenden inkrementeller Patches

diese kann man unter herunterladen und dann:

xz -cd /home/rw/Downloads/patch-3.10.6-7.xz | gpg --verify /home/rw/Downloads/patch-3.10.6-7.sign -
xz -cd /home/rw/Downloads/patch-3.10.6-7.xz | patch -p1

halbmanuell mit OpenSuse

Dieses wurde getestet mit OpenSuSe 10.3 und mit Version 11.1 reproduziert. Das obige Vorgehen müsste auch funktionieren, doch hier wird auf /sbin/install verzichtet. Deshalb haben wir mehr Einblick.

  1. Kern holen bei http://www.kernel.org/
  2. Auspacken und linken:
           cd /usr/src
           tar -zxvf /home/halde/linux-2.6.27.7.tar.gz 
           ln -s linux-2.6.27.7 linux
         
  3. Die alte Konfiguration kopieren
         cp /boot/config-2.6.22.5-31-default .config
         make oldconfig
         
  4. (mit make menuconfig kann man hier weitere Einstellungen vornehmen und die help-Beschreibungen studieren)
  5. Kern mit modulen bauen
         make bzImage
         make modules
         make modules_install
         
  6. Installieren
         cp /usr/src/linux/arch/x86/boot/bzImage /boot/vmlinuz-2.6.27.7
         cp /usr/src/linux/System.map /boot/System.map-2.6.27.7
         
  7. generieren der initial ramdisk
    /sbin/mkinitrd -v -k vmlinuz-2.6.27.7 -i initrd-2.6.27.7 -M /boot/System.map-2.6.27.7 -b /boot
       
  8. grub (1.x legacy) anpassen: hierzu müssen folgende Zeilen hinzugefügt werden:
    title OPENSUSE10.3 kernel vmlinuz-2.6.27.7
            root (hd0,0)
            kernel /vmlinuz-2.6.27.7 root=/dev/sda2 vga=0x317 
            initrd /initrd-2.6.27.7
       
  9. rebooten und mit uname -a kontrollieren, ob der gebootete Kern geladen wurde

Bemerkungen


Linux-User Group Oberschwaben