Aktueller Kernel für Deepin

Der Eine oder Andere, der Deepin nutzt, spielt evtl. mit dem Gedanken, einen neuen 5er Kernel für sein System zu besorgen. Deepin 15.11 nutzt derzeit noch den Kernel 4.15 und es den 5er Kernel gibt es schon eine gewisse Zeit und bringt evtl. das eine oder andere Feature mit, das für einen interessant ist.

Hinweis: Der 4er Kernel wird natürlich auch weiter gepflegt! Es ist also kein Zeichen für ein Sicherheitsrisiko, dass diverse Distributionen noch auf einen 4er Kernel setzen! Wenn alles funktioniert, dann gibt es in der Regel keinen Grund für irgendwelche Experimente oder Aktionen!

Es gibt mehrere Möglichkeiten, wie man an den neuen Kernel kommen kann.

  1. Es gibt ein neues Tool: Deepin Kernel Updater, mit dem auch etwas unbedarfte Nutzer schnell und einfach an einen neuen Linux Kernel kommen können (Achtung: Derzeit noch in der Beta Phase!) Dies ist ein einfacher und schneller Weg zum 5er Kernel.
  2. In dem internationalen Deepin Forum finden sich oft Threads zu neuen Kerneln, teilweise stellen Anwender den von Ihnen gebauten Kernel dort auch bereit. Wobei dies durch den neuen Deepin Kernel Updater wohl Vergangenheit sein müsste.
  3. Es ist natürlich möglich, den aktuellen Linux Kernel von Debian sid zu verwenden. Wenn die sid Repositories eingebunden sind, dann lässt sich z.B. aktuell der Kernel 5.2.0 mit einem einfachen Aufruf installieren:
    sudo apt-get -t sid install linux-image-amd64
  4. Eine letzte Variante ist die eigene Übersetzung des aktuellen Linux Kernels. Dies bedeutet aber einiges an Aufwand und Geduld. Falls aber bestimmte Dinge benötigt werden, die in den bereitgestellten Paketen nicht enthalten sind, dann ist dies oft die letzte Möglichkeit.

Im Folgenden beschäftige ich mich mit dem manuellen Übersetzen eines aktuellen Kernels auf einem Deepin System.

Vorarbeiten

Als erster müssen wir die notwendigen Pakete installieren:

apt-get install libncurses-dev wget bzip2 make build-essential bc chrpath gawk texinfo libsdl1.2-dev whiptail diffstat cpio libssl-dev flex bison libelf-dev libssl-dev libncurses5-dev qt4-default qt4-dev-tools

Herunterladen und Entpacken der Linux Kernel Sources

Der Linux Kernel kann unter https://www.kernel.org/ herunter geladen werden. Dazu einfach den tarball des gewünschten Kernels herunter laden.

Nun entpacken wir den Kernel an einem geeigneten Ort. Dies kann z.B. mit folgendem Befehl erfolgen

<pre class="wp-block-verse">tar xf ~/Downloads/linux-5.2.8.tar.xz<br></br>cd linux-5.2.8

Nun kopieren wir die aktuelle Konfiguration des Kernels, den wir im Einsatz haben:

<pre class="wp-block-verse">cp /boot/config-```
`uname -r
```` .config<br></br>

Anpassung der Konfiguration

Nun müssen wir die Konfiguration anpassen. Wir müssen mindestens einmal ein

<pre class="wp-block-verse">make oldconfig

laufen lassen um die Einstellungen, welche neu zu der eingespielten Konfiguration sind, vornehmen zu können. Wer hier die ganzen Optionen nicht durchgehen möchte, kann einfach ein

<pre class="wp-block-verse">yes "" | make oldconfig

laufen lassen.

Eine individuelle Einstellung diverser Einstellungen kann man mit einem der folgenden Befehle vornehmen:

<pre class="wp-block-verse">make config<br></br>make menuconfig<br></br>make xconfig

Ich selbst rate zu make menuconfig oder make config, da diese am intuitivsten zu bedienen sind.

Übersetzen des Kernels

Als nächstes übersetzen wir den Kernel. Da hier sehr viele einzelne Dateien zu übersetzen sind, macht es Sinn, make anzuweisen, mehrere Dateien parallel zu übersetzen. Dazu dient der Parameter -j<x> wobei x für die Anzahl der parallelen Übersetzungen steht, z.B. -j4 für 4 parallele Übersetzungen.

Übersetzen des Kernels

<pre class="wp-block-verse">make -j4 bzImage modules<br></br>

Bau von Debian Paketen (diese finden sich dann im Anschluss ein Verzeichnis höher)

<pre class="wp-block-verse">make -j4 pkg-deb

Installation des compilierten Kernels

Die Installation kann man nun direkt von den Sourcen aus anstoßen:

<pre class="wp-block-verse">sudo make install install-modules

Alternativ lassen sich die erstellten Debian Pakete nutzen (Dies ist der von mir empfohlene Weg!):

<pre class="wp-block-verse">cd ..<br></br>sudo dpkg -i ../

Nun noch den Bootloader grub aktualisieren und das System neu starten

<pre class="wp-block-verse">sudo update-grub<br></br>sudo reboot