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

     

    Leave A Reply