Linux Kernel 6.x für Ubuntu, Fedora, Debian, RHEL, CentOS und Mint installieren - LPIC-2

Linux Kernel 6.x

Das Kompilieren eines eigenen Kernels hat seine Vor- und Nachteile. Neue Linux-Benutzer/Administratoren finden es jedoch schwierig, einen Linux-Kernel zu kompilieren.

Wie ein Linux Kernel im Detail funktioniert, was ein Initial RamDisk macht, lernst du alles in meinen LPIC-2 Bootcamp , LPIC-1 & LPIC-2 Masterclass Kursen auf Udemy oder als Youtube Expert Mitglied.

Disclaimer: Ich empfehle dir, immer ein Backup deiner wichtigsten Daten zu machen

Um einen Kernel zu kompilieren, muss man ein paar Dinge verstehen und dann ein paar Befehle eingeben. Diese Schritt-für-Schritt-Anleitung beschreibt die Kompilierung des Linux-Kernels Version 6.x unter Ubuntu oder Debian Linux. Die folgenden Anleitungen wurden erfolgreich auf RHEL, CentOS 7/8 (und Klonen), Debian, Ubuntu und Fedora getestet. Die Anleitungen sind jedoch für jede andere Linux-Distribution gleich.

So kompilierst und installierst du den Linux-Kernel 6.x

Um den neuesten Linux-Kernel aus den Quellen zu kompilieren und zu installieren, gehst du wie folgt vor:

  • Hol dir den neuesten Kernel von kernel.org
  • Überprüfe den Kernel
  • Entpacke den Kernel-Tarball
  • Kopiere die bestehende Linux-Kernel-Konfigurationsdatei
  • Kompiliere und baue Linux-Kernel 6.x
  • Linux-Kernel und Module (Treiber) installieren
  • Grub-Konfiguration aktualisieren
  • Das System neu starten
Linux Kernel 6.0 unter Ubuntu, Fedora, Debian, RHEL, CentOS, Mint installieren - LPIC-2
Dieses Video ansehen auf YouTube.
Mit dem abspielen des Videos stimmst du den Datenschutzrichtlinien (siehe Datenschutz) von Youtube zu.

Schritt 1. Hol dir den aktuellen Quellcode des Linux-Kernels

Besuche die offizielle Projektseite und lade den aktuellen Quellcode herunter. Klicke auf den großen gelben Button mit der Aufschrift "Latest Stable Kernel".

kernel.org

Der Dateiname lautet linux-x.y.z.tar.gz, wobei x.y.z die aktuelle Versionsnummer des Linux-Kernels ist. Zum Beispiel steht die Datei linux-6.0-rc2.tar.xz für die Linux-Kernel-Version 6.0-rc2. Verwende den Befehl wget, um den Quellcode des Linux-Kernels herunterzuladen:

wget https://git.kernel.org/torvalds/t/linux-6.0-rc2.tar.gz

Schritt 2. tar.gz-Datei entpacken

Du musst den Quellcode nicht unbedingt in /usr/src entpacken. Du kannst den Quellcode mit dem folgenden tar-Befehl in dein $HOME-Verzeichnis oder ein anderes Verzeichnis entpacken:

tar xvfz linux-6.0-rc2.tar.gz

Hinweis: Normalerweise könnte man jetzt die PGP Signatur vergleichen, da es den jedoch für die beta/rc Versionen nicht gibt, ist dies noch nicht möglich.

Schritt 3. Konfiguriere die Linux-Kernel-Funktionen und -Module

Bevor du mit der Erstellung des Kernels beginnen kannst, musst du die Funktionen des Linux-Kernels konfigurieren. Außerdem musst du angeben, welche Kernelmodule (Treiber) du für dein System benötigst. Diese Aufgabe kann für einen neuen Benutzer überfordernd sein. Ich empfehle dir, die bestehende Konfigurationsdatei mit dem Befehl cp zu kopieren:

cd linux-6*
cp -v /boot/config-$(uname -r) .config

Schritt 4. Installiere die erforderlichen Compiler und andere Tools

Um den Linux-Kernel zu kompilieren, musst du Entwicklungswerkzeuge wie den GCC-Compiler und verwandte Tools installieren.

Auf einem Debian/Ubuntu Linux

Gib den folgenden apt- oder apt-get-Befehl ein, um sie zu installieren:

sudo apt-get install build-essential libncurses-dev bison flex libssl-dev libelf-dev

Auf einem CentOS/RHEL/Oracle/Fedora Linux

dnf group install "Development Tools"

oder

dnf groupinstall "Development Tools"

Weitere Pakete die benötigt werden:

dnf install ncurses-devel bison flex elfutils-libelf-devel openssl-devel

Schritt 5. Den Kernel konfigurieren

Jetzt kannst du die Kernelkonfiguration starten, indem du einen der folgenden Befehle im Quellcodeverzeichnis eingibst:

  • make menuconfig - Textbasierte Farbmenüs, Radiolisten und Dialoge. Diese Option ist auch auf einem Remote-Server nützlich, wenn du den Kernel aus der Ferne kompilieren willst.
  • make xconfig - X windows (Qt) basiertes Konfigurationstool, funktioniert am besten unter dem KDE Desktop
  • make gconfig - X windows (Gtk) basiertes Konfigurationstool, das am besten unter Gnome Dekstop funktioniert.

Wenn du zum Beispiel den Befehl make menuconfig ausführst, erscheint der folgende Bildschirm:

Du musst je nach Bedarf verschiedene Optionen auswählen. Jede Konfigurationsoption ist mit einer HILFE-Schaltfläche verknüpft, also wähle die Hilfe-Schaltfläche, um Hilfe zu erhalten. Bitte beachte, dass "make menuconfig" optional ist. Ich habe es hier nur zu Demonstrationszwecken verwendet.

Mit dieser Option kannst du bestimmte Funktionen oder Kernel-Treiber aktivieren oder deaktivieren. Es ist leicht möglich, die Unterstützung für einen Gerätetreiber oder eine Option zu entfernen und so einen kaputten Kernel zu bekommen. Wenn zum Beispiel der ext4-Treiber aus der Kernel-Konfigurationsdatei entfernt wird, kann es sein, dass ein System nicht mehr bootet. Im Zweifelsfall solltest du die Unterstützung einfach im Kernel belassen.

Nur bei Ubuntu/Debian - Trusted Keys entfernen

Da wir den Kernel von den Entwicklern des kernel.org beziehen und nicht über die Ubuntu/Debian Repository, müssen wir die Trusted Keys aus der .config Datei entfernen. Alternativ kannst du dies auch über die make menuconfig entfernen.

Nun bearbeiten wir die Datei welche wir in unser Verzeichnis kopiert haben
nano .config

Suche in der Datei nach Folgendem:
CONFIG_SYSTEM_TRUSTED_KEYS="debian/canonical-certs.pem"
CONFIG_SYSTEM_REVOCATION_KEYS="debian/canonical-revoked-certs.pem"

Entferne die Trusted Keys damit es dann so aussieht:
CONFIG_SYSTEM_TRUSTED_KEYS=""
CONFIG_SYSTEM_REVOCATION_KEYS=""

Alternativ kannst du auch über den Menuconfig-Eintrag den Trusted Key entfernen.

Main menu -> Cryptographic API -> Certificates for signature checking -> Provide system-wide ring of trusted keys

Schritt 6. So kompilierst du einen Linux-Kernel

Ich empfehle vor der Kompilierung, wenn du mittels SSH auf einem System angemeldet bist, screen oder tmux zu verwenden. Damit läuft bei einem Verbindungsabbruch der Kompilierung-Vorgang weiter. Beginne mit der Kompilierung und gib ein, um ein komprimiertes Kernel-Image zu erstellen:

screen oder tmux

Wenn du 1 CPU Kern hast:

make

Wenn du mehrere CPU Kerne hast gib die Anzahl an Kernen/Thread an, um die kompilierung zu beschleunigen.

make -j 4

nproc ermittle die Anzahl der Threads oder CPU-Kerne und nutzt das volle Potenzial der CPU.

make -j $(nproc)

Das Kompilieren und Erstellen des Linux-Kernels nimmt viel Zeit (Stunden) in Anspruch. Die Erstellungszeit hängt von den Ressourcen deines Systems ab, z. B. von den verfügbaren CPU-Kernen, RAM und der aktuellen Systemlast. Habe also etwas Geduld.

Installiere die Linux-Kernel-Module

make modules_install

Den Linux-Kernel installieren

Bis jetzt haben wir den Linux-Kernel kompiliert und die Kernel-Module installiert. Nun ist es an der Zeit, den Kernel selbst zu installieren:

make install

Es installiert drei Dateien in das /boot-Verzeichnis und ändert außerdem die Konfigurationsdatei deines Kernels grub:

  • initramfs-6.0.img
  • System.map-6.0
  • vmlinuz-6.0

Schritt 6. Grub-Konfiguration aktualisieren

Du musst die Konfigurationen des Grub 2 Bootloaders ändern. Gib den folgenden Befehl an einer Shell-Eingabeaufforderung entsprechend deiner Linux-Distribution ein:

CentOS/RHEL/Oracle/Scientific und Fedora Linux

grub2-mkconfig -o /boot/grub2/grub.cfg
grubby --set-default /boot/vmlinuz-6.0

Du kannst die Details mit den folgenden Befehlen bestätigen:

grubby --info=ALL | more
grubby --default-index
grubby --default-kernel

Debian/Ubuntu Linux Derivate (optional)

Die folgenden Befehle sind optional, da make install alles für dich erledigt, aber hier nur aus historischen Gründen aufgeführt:

update-initramfs -c -k 6.0.0-rc2
update-grub

So baust und installierst du den neuesten Linux-Kernel aus dem Quellcode.

Der Prozess dauert einige Zeit, aber jetzt hast du einen angepassten Linux-Kernel für dein System. Lass uns das System neu starten und boote mit deinem neuen Kernel.

Gib einfach den Befehl reboot oder shutdown ein:

reboot

Überprüfe die neue Linux-Kernel-Version nach dem Neustart:

uname -r
uname -a

Du hast verschiedene Schritte durchgeführt, um den Linux-Kernel aus dem Quellcode zu erstellen, und der kompilierte Kernel sollte auf deinem System laufen. Ich empfehle dir, immer ein Backup deiner wichtigen Daten zu machen und die Seite kernel.org für weitere Informationen zu besuchen.

Quelle

Kernel.org

LPIC-1 & LPIC-2 Masterclass: Dein Weg zum Linux Experten

LPIC-2 Bootcamp in 30 Tagen zum Linux-Engineer (201-450)