Linux: Fünf-Schritte-Kernel-Build-Baum

Linux: Fünf-Schritte-Kernel-Build-Baum

0. Der mit dem System gelieferte Kernelbaum

Manchmal verfügt das installierte System bereits über Linux內核樹der zum Kompilieren des Treibers ausreicht.

Der eingebaute Kernelbaum befindet sich normalerweise in

/lib/modules/<Systemkernelversion>/build

Unter anderem kann die Systemkernelversion mit uname -r angezeigt werden.

$ uname -r
5.11.0-41-generisch

Der integrierte Kernelbaum scheint jedoch unvollständig zu sein. Daher wird empfohlen, einen vollständigen Kernelbaum gemäß der folgenden Methode zu kompilieren.

1. Umgebungskonfiguration

erster Schritt

Um den Kernelbaum zum ersten Mal zu konfigurieren, müssen Sie einige notwendige Umgebungen installieren

sudo apt-get build-dep linux linux-image-$(uname -r)

(Wenn Sie die Fehlermeldung Error :: You must put some 'source' URIs in your sources.list erhalten, lesen Sie bitte hier nach.)

Schritt 2

Zusätzlich zur oben genannten Umgebung müssen Sie auch diese installieren

sudo apt-get installiere libncurses-dev gawk flex bison openssl libssl-dev dkms libelf-dev libudev-dev libpci-dev libiberty-dev autoconf dwarves

2. Quellcode herunterladen

sudo apt-get source linux-image-unsigned-$(uname -r)

Nach diesem Schritt sind drei weitere Dateien vorhanden.

linux-hwe-5.11_5.11.0-41.45~20.04.1.diff.gz
linux-hwe-5.11_5.11.0-41.45~20.04.1.dsc
linux-hwe-5.11_5.11.0.orig.tar.gz

Und ein Ordner, in dem sich der Kernel-Quellcode befindet

linux-hwe-5.11-5.11.0

(Hinweis: Der Dateiname kann je nach Systemversion variieren)

3. Vorbereitung des Builds

(Hinweis: Wenn Ihnen beim Ausführen eines Befehls zu irgendeinem Zeitpunkt permission denied , fügen Sie am Anfang des Befehls einfach sudo hinzu und führen Sie ihn erneut aus.)

Öffnen Sie linux-hwe-5.11-5.11.0 und geben Sie ein

Menükonfiguration erstellen

Nach einer kurzen Ladezeit gelangen Sie auf diese Seite

Bildbeschreibung hier einfügen

Sie müssen hier nichts ändern, sondern nur die Schnittstelle schließen (verwenden Sie die Pfeiltasten, um Exit “ auszuwählen, und drücken Sie die Eingabetaste, oder drücken Sie zum Beenden zweimal Esc ), der Grund dafür steht am Ende dieses Kapitels.

Dann wird dieses Dialogfeld angezeigt

Bildbeschreibung hier einfügen

Nachdem Sie im blauen Feld Yes ausgewählt haben, drücken Sie zum Beenden die Eingabetaste.

Dadurch wird eine .config Datei im aktuellen Verzeichnis generiert (Sie finden diese Datei, indem Sie ls -a eingeben). Dadurch wird sichergestellt, dass das nachfolgende make reibungslos ausgeführt werden kann.

4. Erstellen Sie den Kernel

Geben Sie den folgenden Befehl ein, um den Build zu starten (wenn die permission denied angezeigt wird, fügen Sie am Anfang des Befehls sudo hinzu und führen Sie ihn erneut aus).

machen

Hier muss man längere Wartezeiten in Kauf nehmen, meist eine bis mehrere Stunden. Sie können die Parallelität zur Beschleunigung nutzen, indem -j <最大并發任務數> verwenden.最大并發任務數kann im Allgemeinen doppelt so hoch sein wie die Anzahl der CPUs.

(Hinweis: Wenn Sie make help verwenden, können Sie feststellen, dass beim Eingeben make automatisch die folgenden drei Aktionen ausgeführt werden: 1) make vmlinux (den ursprünglichen Kernel erstellen), 2) make bzImage (den komprimierten Kernel erstellen) und 3) make modules (modulare Treiber separat erstellen))

5. Installieren Sie das Modul

Installieren Sie das Modul abschließend im Verzeichnis /lib/modules/$(uname -r)

sudo make module_install 

Zusammenfassen

Dies ist das Ende dieses Artikels über den fünfstufigen Aufbau des Linux-Kernelbaums. Weitere relevante Inhalte zum Linux-Kernelbaum finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • Analyse der Initialisierung des Quellcodes des Linux-Kernel-Schedulers
  • Einige Vorschläge zur Linux-Systemoptimierung (Kerneloptimierung)
  • So kompilieren Sie den Linux-Kernel

<<:  Der Button hat einen hässlichen grauen Rand. Wie kann ich ihn entfernen?

>>:  Führen Sie die Schritte aus, um schnell ein Vue3.0-Projekt zu erstellen

Artikel empfehlen

Einführung in die Verschachtelungsregeln von HTML-Tags

Es gibt viele XHTML-Tags: div, ul, li, dl, dt, dd...

MySQL-Optimierung: Join statt Unterabfrage verwenden

Verwenden Sie JOIN anstelle von Unterabfragen MyS...

Lösung für Ubuntu, das keine Verbindung zum Internet herstellen kann

Problembeschreibung: Ich habe einen Desktop-Compu...

CSS-Implementierungscode für verzerrte Schatten

Dieser Artikel stellt den Implementierungscode vo...

Ein Artikel, der Ihnen hilft, jQuery-Animationen zu verstehen

Inhaltsverzeichnis 1. Steuern Sie die Anzeige und...

Detailliertes Tutorial zum Bereitstellen von Springboot oder Nginx mit Kubernetes

1 Einleitung Nachdem „Maven Springboot mit einem ...

Ein kurzer Vortrag über Responsive Design

1. Was ist Responsive Design? Responsive Design b...

Vue.js verarbeitet Icon-Symbole über Komponenten

Icon-Icon-Verarbeitungslösung Das Ziel dieses Dat...

So stellen Sie ein Angular-Projekt mit Docker bereit

Es gibt zwei Möglichkeiten, Angular-Projekte mit ...

Beispielcode zum Erzielen eines Aushöhlungseffekts mit reinem CSS

Ich habe kürzlich den Aushöhlungseffekt untersuch...

In der HTML-Tabelle wird nur der äußere Rand der Tabelle angezeigt

Ich möchte eine Frage stellen. Ich habe in Dreamw...

Index in MySQL

Vorwort Kommen wir gleich zur Sache. Die folgende...