User Tools

Site Tools


doku:linux_debian_kernel

Das “Debian-Kernel-Mini-Howto” von hier http://a.ctdo.de/wiki/doku.php?id=debian-kernel-howto kopiert und fuer mich angepasst.

Vorbereitung

Installation benötigter Debian-Pakete

aptitude install --with-recommends kernel-package libncurses-dev bzip2 module-assistant
  • in /etc/kernel-pkg.conf kann man maintainer := und email := anpassen

Installation Kernel-Sourcen (und evtl. Patches)

cd /usr/src
wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.28.tar.bz2
tar xjf linux-2.6.28.tar.bz2
wget http://vserver.13thfloor.at/Experimental/patch-2.6.28-vs2.3.0.36.2.diff
cd linux-2.6.28
patch -p1 < ../patch-2.6.28-vs2.3.0.36.2.diff
cd ..
mv linux-2.6.28 linux-2.6.28-vs2.3.0.36.2

Konfiguration des Kernels

cd linux-2.6.28-vs2.3.0.36.2
cp /boot/config-`uname -a | awk '{print $3}'` .config
make oldconfig

oder (wenns der Kernel unterstützt):

cp /proc/config.gz
cd linux-2.6.28-vs2.3.0.36.2
gunzip ../config.gz

dann noch die .config.old nach .config kopieren

  • Die Kernel-Konfiguration kann dann z.B. über make menuconfig eingesehen und angepasst werden.
  • Tipps zum Anpassen des Kernels:
    • Alle definitiv nicht benötigten Treiber abwählen (z.B. ISDN, Firewire, Multimedia-Kram)
    • Definitiv ständig benötigte Treiber fest einbauen, nicht als Modul - man spart sich die initrd (Initial RAM Disk).
    • Wichtige Treiber sind die, die mit dem Plattensystem zu tun haben: IDE, SCSI, SATA, das verwendete (Root-)Filesystem
    • für Notebooks: Treiber für Geräte, die nicht ständig in Betrieb sind, als Modul bauen
  • der erste make menuconfig-Durchlauf ist allgemein relativ aufwändig
  • Wenn man das einmal für ein System gemacht hat, ist das Übernehmen einer laufenden Konfiguration für neue Kernel ein Kinderspiel

Erzeugen der Kernel-Pakete

  • Kernel- und Modulpakete werden mit einem einzigen Befehl make-kpkg erzeugt
  • Es wird eine Revisions-Bezeichnung mitgegeben; darüber kann man den Kernel leichter zuordnen und gezielt wieder entfernen
  • make-kpkg clean räumt das Build-System auf
  • make-kpkg kernel_image modules_image erzeugt die Debian Kernel- und Modul-Pakete
  • Parameter –revision $Wert.$Zahl und –append-to-version $Wert.$Zahl identifizieren das individuelle Paket, $Wert kann z.B. der Rechnername oder das Rechnermodell sein, $Zahl eine fortlaufende Nummer, wenn man verschiedene Konfigurationen des gleichen Kernels baut.
  • Parameter –initrd sorgt für die Erzeugung der Initial RAM Disk, sofern benötigt
  • im Beispiel wird eine geänderte Kernel-Konfiguration .01 für ein Thinkpad X24 erstellt und mit meinen Initialen ds gekennzeichnet; eine Inital RAM Disk wird nicht benötigt - außerdem wird die Dauer des Vorgangs mit time gestoppt:
cd /usr/src/linux-2.6.28-vs2.3.0.36.2
make-kpkg clean
time make-kpkg kernel_image modules_image --config oldconfig --revision x24ds.01 --append-to-version x24ds.01
  • Der Vorgang dauert je nach verwendetem Rechner und ausgwählter Konfiguration eine gewisse Zeit; das zeitliche Messen des Vorgangs dient zur Orientierung.
  • Nach Abschluss befinden sich die .deb-Dateien unter /usr/src

Installation der Pakete

  • die Kernel- und Modul-Pakete können nun mit auf das Zielsystem übetragen werden und mit dpkg -i $Paketname installiert werden.
cd /usr/src
dpkg -i linux-image-2.6.28*.deb
dpkg -i modules-image-*.deb
  • Anschließend sollte man /boot/grub/menu.lst oder /etc/lilo.conf überprüfen, ob der neue Kernel auch beim Booten voreingestellt ist.
  • ggfls update-grub
  • reboot
doku/linux_debian_kernel.txt · Last modified: by 127.0.0.1