Linux Kernel 4.4-RC2 basierende auf bereits laufender Kernelkonfiguration kompilieren

0

Um einen neuen Kernel auszuprobieren, kann dieser wie im letzten Artikel diesen aus dem Experimental Zweig installieren werden, oder man kompiliert diesen selber. Um den aktuellen Kernel 4.4 RC2 selber zu kompilieren, müssen zuerst ein paar Tools installiert werden:

apt-get --no-install-recommends install kernel-package libncurses5-dev fakeroot gcc-4.9-plugin-dev

Anschließend den Kernel herunterladen und entpacken.

mkdir -p /usr/src/kernel
cd /usr/src/kernel
wget --no-check-certificate https://cdn.kernel.org/pub/linux/kernel/v4.x/testing/linux-4.4-rc2.tar.xz
tar xvf linux-4.4-rc2.tar.xz
cd linux-4.4-rc2

Jeder Kernel hat aufgrund seiner unterstützten Geräte verschiedene Einstellungesmöglichkeiten, welcher über den Befehl menuconfig eingestellt werden können. Es ist jedoch nicht zu empfehlen, den gesamten Kernel per Hand einzurichten, es sei denn man muss es unbedingt. Zu empfehlen ist, statt dessen die Konfiguration eines bestehenden Kernels zu verwenden.

cp /boot/config-$(uname -r) .config

Auch wenn die Konfig auf diesem Weg übernommen wird, sollte diese über menuconfig dennoch einmal über menuconfig abgespeichert werden.

make menuconfig

Leider ist im Kernel 4.4 RC2 ist noch ein Bug enthalten, aufgrund dessen die Kompilierung mit folgender Fehlermeldung abbricht:

RE: error: Cycle detected: lnet -> libcfs -> lnet

Dazu gibt es jedoch bereits einen Patch, welcher vor dem Kompilieren noch eingespielt werden muss. Im nachfolgenden Beispiel wird voraussgesetzt, dass die der Patchals licfs-1-7-1.patch abgespeichert wurden.

wget https://blog.cscholz.io/wp-content/uploads/sites/2/2015/12/licfs-1-7-1.patch
/usr/src/kernel/linux-4.4-rc2 $ patch -p1 < licfs-1-7-1.patch

Anschließend die Verzeichnisse bereinigen und den Kernel kompilieren. Der Parameter revision gibt dabei dem Kernel einen eindeutigen Namen, wie zum Beispiel 4.4.rc2.20151123.

make-kpkg clean
fakeroot make-kpkg --initrd --revision=4.4.rc2.20151123 kernel_image kernel_headers

Im Verzeichniss /usr/src/kernel sollten sich nach mehreren Minuten oder Stunden zwei .deb Dateien befinden.

Der fertige Kernel kann anschließend per

dpkg -i *.deb

installiert werden. Die Anmerkung, dass ein RC Kernel niemals produktiv eingesetzt werden sollte, spare ich mir an dieser Stelle 😉

Update vom 29.11.2016

Fehler: Cannot use CONFIG_GCC_PLUGINS: your gcc installation does not support plugins, perhaps the necessary headers are missing?
Lösung: apt-get install gcc-4.9-plugin-dev

 

Teilen.

Über den Autor

Seit der Ausbildung zum Fachinformatiker Systemintegration (2002-2005) bei der DaimlerChrysler AG, beruflich im Bereich der E-Mail Kommunikation (Exchange, Linux) sowie des ActiveDirectory, mit entsprechenden Zertifizierungen (MCSE 2003, MCITP Ent.-Admin 2008, MCSE 2012, LPIC 1-3) tätig. Abgeschlossenes Studium zum Master of Science der IT-Management an der FOM sowie zertifizierter Datenschutzbeauftragter. Aktuell im Projektmanagement tätig.

Antworten