Kernel bauen für Debian/Ubuntu
Schon der Name legt nahe: Der Kernel ist der Kern des Linux-Betriebssystems.
Warum einen Kernel selber bauen?
Alle Linux-Distributionen enthalten einen gut getesteten Kernel. Nach Entdeckung von Fehlern oder Sicherheits-Lücken kann er über die Distribution aktualisiert werden.
Oft sind sinnvolle Einstellungen und Erweiterungen/Patches gegenüber dem Standard-Kernel eingebaut. So ist häufig Unterstützung zusätzlicher Hardware und Funktionalitäten eingebunden, wie z.B. WLAN-Treiber, Soundtreiber oder zusätzliche Dateisysteme.
Wenn also die Hardware zufriedenstellend läuft und man keine Zeit investieren möchte für Einrichtung und möglicherweise anschließende Fehlersuche, sollte man das Kernel-Kompilieren besser lassen.
Aktuelleren Kernel nutzen
Aktuellere Kernel unterstützen mehr Hardware, haben ev. zusätzliche Möglichkeiten, wie z.B. zusätzliche Dateisysteme. Insbesondere ältere Distributionen, sehr neue Hardware und oft Notebooks profitieren häufig von einer neueren Kernelversion.
Linux optimieren
Durch Weglassen von allem nicht genutzten kann Linux ev. schneller laufen. Vor allem für Server kann dies sehr sinnvoll sein. Da aber bei den Standard-Kernels fast alle Bestandteile des Kernels dynamisch nur bei Bedarf in den Speicher geladen werden, ist der Nutzen eher begrenzt.
Wenn bestimmte Optionen benötigt werden, kann es ebenfalls notwendig sein, den Kernel neu zu bauen
Konkrete Umsetzung des Kernel Bauen
Zunächst muss installiert werden:
apt-get install kernel-package libncurses5-dev fakeroot wget bzip2
Folgendes ist bezogen auf den Kernel 2.6.26.2, natürlich sollte dies durch den jeweils aktuellen ersetzt werden.
Nun Linux herunter laden, auspacken und Link erzeugen:
cd /usr/src/ wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.26.2.tar.bz2 tar xvjf linux-2.6.26.2.tar.bz2 ln -s linux-2.6.26.2 linux cd linux
Konfiguration des bisherigen Kernels kopieren:
cp /boot/config-2.6.24-19-generic ./.config
Kernel bauen:
make mrproper make menuconfig ## oder statt menuconfig, wenn die alten einstellunge beibehalten werden sollen, ## nur die neuen Funktionalitäten des neuen Kernels konfiguriert werden sollen: #make oldconfig make-kpkg clean fakeroot make-kpkg --initrd --append-to-version=-selfbuild kernel_image kernel_headers
Installiert wird der Kernel mit:
dpkg -i linux-image-2.6.26.2-selfbuild_2.6.26.2-selfbuild-10.00.Custom_i386.deb dpkg -i linux-headers-2.6.26.2-selfbuild_2.6.26.2-selfbuild-10.00.Custom_i386.deb
Nun noch ein System-Update anschieben, damit wird der neue Kernel ins Bootmenu eingetragen und eine Init-Ramdisk erzeugt:
aptitude update && aptitude dist-upgrade
Kernel wieder entfernen
Mit einem anderen Kernel hochfahren als dem zu löschenden und löschen mit:
aptitude remove linux-image-2.6.26.2-selfbuild linux-headers-2.6.26.2-selfbuild