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