silvesterlangen.de

Seite
Menü

Linux Kernel

In diesem Bereich geht es um den Kernel. Dabei schreibe ich nur die prüfungsrelevanten Informationen auf und lasse das ewige und stetig wiederholende Blabla weg. Wer es noch nicht mitbekommen hat und  wen es interessiert woher Linux kommt, wer es wann geschrieben hat und was die Motivation war, der wird im Internet auf jeder 3. Website fündig.

 

Kernel beziehen

Bevor man überhaupt irgendwas machen kann, muss man erst mal den Quelltext haben. Den bekommt man von der offiziellen Website kernel.org zum Download. Natürlich ist die richtige Version zu wählen.

 

Speicherort zum kompilieren

Den Kernel speichert man in den dafür vorgesehen Ordner. Dieser ist /usr/src/. Dort legt man ihn ab und entpackt ihn auch dort. Dann legt man einen Sym-Link, dass man mit "cd /usr/src/linux/" die Kernelsourcen erreichen kann.

 

Kernelversion(en)

Der aktuelle Kernel auf dem System

Die aktuell verwendete Kernelversion findet man mit uname -r heraus.
Der entsprechende Output wäre dann beispielsweise sowas:

silvester@linux-desktop:~$ uname -r
4.13.0-43-generic

Kernelversionen 2.x.y, 3.x.y und 4.x.y

-> Die erste Zahl am Anfang (hier 2.) steht für das Major-Release. Das Major-Release wird nur dann erhöht, wenn etwas Revolutionäres in der Kernelentwicklung gibt. Auf die Version 3.x wurde nur wegen dem 30-jährigen Bestehen des Linux-Kernels angehoben. Zum Wechsel auf Version 4.x wurde demokratisch auf Google+ abgestimmt.

-> Die zweite Zahl (hier .x) ist die Version des Minor-Release und wird immer dann erhöht, wenn dem Kernel eine wesentliche Funktion hinzugefügt wurde.

Gerade und ungerade bei 2.x-Kernel

Kernel, die eine geradzahlige Versionsnummer besitzen, wurden als stable bezeichnet, während Versionsnummern, die ungerade sind 2.3, 2.5 etc und gelten als Entwicklerkernel.

-> Die dritte Zahl bezeichnet den Patchlevel des Kernels. Hier gibt es nur kleine Fehlerbeseitigungen. Mit größeren Änderungen ist hier nicht zu rechnen.

-> die vierte Zahl oder was sonst dahinter kommt ist nur eine Bezeichnung, die man selbst, je nach Bedarf,  wählen kann.

 

Den Kernel konfigurieren und kompilieren

Bevor man kompilieren kann, ist eine Konfiguration des Kernels notwendig. Das bedeutet eigentlich nur, dass man den Kernel seinen Bedürfnissen anpasst. Dafür ist die .config Datei da in der sich die komplette Konfiguration des Kernels befindet. Die Konfigurationsdatei sollte nicht per Hand und einem Texteditor geändert werden.

Für den ersten Kernel ist es eine gute Idee zunächst die .config des aktuell laufenden Kernels aus /boot/ zu kopieren und den zu verändern statt selbst einen neuen Kernel zu konfigurieren.

 

Die Werkzeuge für die Konfiguration

make config
Die puristische Variante, um eine Kernelkonfiguration vorzunehmen. Der Komfort bleibt dabei allerdings auf der Strecke. Man muss alle Parameter selbst setzen. Das ist zeitraubend wie nichts anderes und fehleranfällig. Gab es damals noch nur wenige Kernelparameter, so sind es heute mehr als tausend.

make menuconfig
Deutlich komfortabler ist die auf ncurses basierte Möglichkeit. Die Parameter sind schon vorkonfiguriert. Lediglich einige Untermenüs sind noch anzusteuern, um dort die restliche Konfiguration vorzunehmen.

make xconfig
Eine echte grafische Oberfläche für die Konfiguration des Kernels, die allerdings das X-System benötigt

make oldconfig
Hiermit wird die alte Konfiguration gelesen und man kann diese für den neuen Kernel verändern. Sollten sich in der neuen Version Parameter befinden, die in der alten Konfiguration noch nicht enthalten waren, so fragt das Programm diese noch ab.

 

Den Kernel kompilieren und "einbauen"

Hat man endlich den Kernel konfiguriert, so kann das Kompilieren des Kernels endlich losgehen. Die Schritte kann man einzeln, aber auch gleich in einer Zeile ausführen. Ich zeige hier gleich die einzelne Zeile:

make dep clean bzImage modules modules_install

Der Kernel wird samt seiner Module kompiliert. Je nach Leistung des Systems kann das 10 bis 60 Minuten dauern. Ist das System fertig mit der Aufgabe, so muss man nur noch den Kernel an seinen Platz bringen. Die Module haben wir mit modules_install bereits an ihren vorbestimmten Fleck gebracht. Kopieren wir also erst mal den Kernel nach /boot/.

cp /usr/src/linux/arch/i386/boot/bzImage /boot/vmlinuz-4.13.0-43-generic

Wird Grub verwendet, so führen wir einfach ein update-grub aus. Der Kernel wird dann automatisch in den Bootloader aufgenommen.

 

 

 

 

 

« vorige Seite Seitenanfang nächste Seite »
Seite
Menü
Earned Certificates:
LPIC-1 LPIC-1 LPIC-1
Powered by CMSimple | Template by CMSimple | Login