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

JoernBruns/KernelKompilieren (zuletzt geändert am 2008-08-18 14:13:02 durch JoernBruns)