GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So erstellen Sie einen Linux-Kernel von Grund auf neu {Schritt-für-Schritt-Anleitung}

Einführung

Der Linux-Kernel ist die Grundlage der Unix-ähnlichen Betriebssysteme. Der Kernel ist verantwortlich für die Kommunikation zwischen Hardware und Software und die Zuweisung verfügbarer Ressourcen.

Alle Linux-Distributionen basieren auf einem vordefinierten Kernel. Wenn Sie jedoch mehrere Optionen und Treiber deaktivieren oder experimentelle Patches ausprobieren möchten, müssen Sie einen Linux-Kernel erstellen.

In dieser Schritt-für-Schritt-Anleitung erfahren Sie, wie Sie einen Linux-Kernel von Grund auf neu erstellen und kompilieren.

Voraussetzungen

  • Ein System, auf dem Linux ausgeführt wird
  • Zugriff auf Terminal/Befehlszeile
  • Ein Benutzerkonto mit sudo/root Privilegien
  • 12 GB verfügbarer Speicherplatz auf der Festplatte

Linux-Kernel erstellen

Der Prozess zum Erstellen eines Linux-Kernels umfasst sieben einfache Schritte. Abhängig von der Systemgeschwindigkeit dauert der Vorgang jedoch sehr lange.

Führen Sie die folgenden Schritte aus, um den neuesten Linux-Kernel zum Zeitpunkt der Erstellung dieses Artikels zu erstellen.

Hinweis: Wenn die Version auf der Kernel-Website nicht mit der aus den folgenden Schritten übereinstimmt, verwenden Sie diese Befehle und ersetzen Sie die Kernel-Versionsnummer.

Schritt 1:Quellcode herunterladen

1. Besuchen Sie die offizielle Kernel-Website und laden Sie die neueste Kernel-Version herunter. Die heruntergeladene Datei enthält einen komprimierten Quellcode.

2. Öffnen Sie das Terminal und verwenden Sie den Befehl wget, um den Linux-Kernel-Quellcode herunterzuladen:

wget https://cdn.kernel.org/pub/linux/kernel/v5.x/linux-5.9.6.tar.xz

Die Ausgabe zeigt die Meldung „gespeichert“, wenn der Download abgeschlossen ist.

Schritt 2:Extrahieren Sie den Quellcode

Wenn die Datei fertig ist, führen Sie den tar-Befehl aus, um den Quellcode zu extrahieren:

tar xvf linux-5.9.6.tar.xz

Die Ausgabe zeigt den extrahierten Kernel-Quellcode:

Schritt 3:Erforderliche Pakete installieren

Installieren Sie zusätzliche Pakete, bevor Sie einen Kernel erstellen. Führen Sie dazu diesen Befehl aus:

sudo apt-get install git fakeroot build-essential ncurses-dev xz-utils libssl-dev bc flex libelf-dev bison

Der oben verwendete Befehl installiert die folgenden Pakete:

Paket Paketbeschreibung
git Verfolgt und zeichnet alle Änderungen während der Entwicklung im Quellcode auf. Es ermöglicht auch das Zurücksetzen der Änderungen.
fakeroot Paketierungstool, das die gefälschte Root-Umgebung erstellt.
build-essential Installiert Entwicklungstools wie C, C++, gcc und g++.
ncurses-dev Programmierbibliothek, die API für die textbasierten Terminals bereitstellt.
xz-utils Bietet schnelle Dateikomprimierung und -dekomprimierung.
libssl-dev Unterstützt SSL und TSL, die Daten verschlüsseln und die Internetverbindung sicher machen.
bc (Einfacher Rechner) Eine mathematische Skriptsprache, die die interaktive Ausführung von Anweisungen unterstützt.
flex (Fast Lexical Analyzer Generator) Erzeugt lexikalische Analysatoren, die Zeichen in Token umwandeln.
libelf-dev Veröffentlicht eine gemeinsam genutzte Bibliothek zum Verwalten von ELF-Dateien (ausführbare Dateien, Core-Dumps und Objektcode)
bison GNU-Parser-Generator, der die Grammatikbeschreibung in ein C-Programm umwandelt.

Schritt 4:Kernel konfigurieren

Der Linux-Kernel-Quellcode wird mit der Standardkonfiguration geliefert. Sie können es jedoch an Ihre Bedürfnisse anpassen. Führen Sie dazu die folgenden Schritte aus:

1. Navigieren Sie zu linux-5.9.6. Verzeichnis mit cd Befehl:

cd linux-5.9.6

2. Kopieren Sie die vorhandene Konfigurationsdatei mit cp Befehl:

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

3. Um Änderungen an der Konfigurationsdatei vorzunehmen, führen Sie make aus Befehl:

make menuconfig

Der Befehl startet mehrere Skripte, die dann das Konfigurationsmenü öffnen:

4. Das Konfigurationsmenü enthält Optionen wie Firmware, Dateisystem, Netzwerk und Speichereinstellungen. Verwenden Sie die Pfeile, um eine Auswahl zu treffen, oder wählen Sie HILFE um mehr über die Optionen zu erfahren. Wenn Sie mit den Änderungen fertig sind, wählen Sie SPEICHERN und verlassen Sie dann das Menü.

Hinweis: Das Ändern der Einstellungen für einige Optionen kann zu einem nicht funktionierenden Kernel führen. Wenn Sie sich nicht sicher sind, was Sie ändern sollen, belassen Sie die Standardeinstellungen.

Schritt 5:Erstellen Sie den Kernel

1. Beginnen Sie mit der Erstellung des Kernels, indem Sie den folgenden Befehl ausführen:

make

Der Vorgang des Bauens und Kompilierens des Linux-Kernels nimmt einige Zeit in Anspruch.

Das Terminal listet alle Linux-Kernel-Komponenten auf:Speicherverwaltung, Hardware-Gerätetreiber, Dateisystemtreiber, Netzwerktreiber und Prozessverwaltung.

2. Installieren Sie die erforderlichen Module mit diesem Befehl:

sudo make modules_install

3. Installieren Sie schließlich den Kernel, indem Sie Folgendes eingeben:

sudo make install 

Die Ausgabe zeigt done wenn fertig:

Schritt 6:Bootloader aktualisieren (optional)

Der GRUB-Bootloader ist das erste Programm, das beim Einschalten des Systems ausgeführt wird.

Die make install Der Befehl führt diesen Vorgang automatisch durch, aber Sie können ihn auch manuell ausführen.

1. Aktualisieren Sie das initramfs auf die installierte Kernel-Version:

sudo update-initramfs -c -k 5.9.6

2. Aktualisieren Sie den GRUB-Bootloader mit diesem Befehl:

sudo update-grub

Das Terminal druckt die Vorgangs- und Bestätigungsmeldung aus:

Schritt 7:Neustart und Überprüfung der Kernel-Version

Wenn Sie die obigen Schritte abgeschlossen haben, starten Sie den Computer neu.

Überprüfen Sie beim Hochfahren des Systems die Kernelversion mit uname Befehl:

uname -mrs

Das Terminal gibt die aktuelle Linux-Kernel-Version aus.


Linux
  1. Wie man RPM-Pakete baut

  2. So überprüfen Sie die Kernel-Version unter Linux

  3. Wie funktioniert copy_from_user aus dem Linux-Kernel intern?

  4. Wie baut man ein Linux-Kernel-Modul so, dass es mit allen Kernel-Releases kompatibel ist?

  5. Wie kann ich einen Speicherblock aus dem Linux-Kernel reservieren?

So greifen Sie von Windows 10 auf Linux-Partitionen zu

So entfernen Sie einen Befehl aus dem Verlauf in Linux

So installieren Sie Software von der Quelle in Linux

So entfernen Sie (^M) Zeichen aus einer Datei in Linux

So erstellen Sie einen Linux-Kernel von Grund auf neu

So kompilieren Sie den Linux-Kernel aus der Quelle, um einen benutzerdefinierten Kernel zu erstellen