**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''