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

Webdatenspeicherung: Cookie, UserData, SessionStorage, WebSqlDatabase

Plätzchen Dies ist eine Standardmethode zum Speic...

Der Unterschied und die Verwendung von LocalStorage und SessionStorage in Vue

Inhaltsverzeichnis Was ist LocalStorage Was ist S...

Docker Link realisiert die Containerverbindung

Inhaltsverzeichnis 1.1. Netzwerkzugriff zwischen ...

Zusammenfassung der Zeilenumbruchprobleme bei Textbereichen in HTML

Kürzlich stieß ich auf das Problem, ob die Daten b...

Detaillierte Erklärung der Kodierungsprobleme bei MySQL-Befehlszeilenoperationen

1. Überprüfen Sie die MySQL-Datenbankkodierung my...

So verwenden Sie das Datums-Plugin vue-bootstrap-datetimepicker in vue-cli 3

Nachfragehintergrund In letzter Zeit plane ich, V...

W3C Tutorial (13): W3C WSDL Aktivitäten

Bei Webdiensten geht es um die Kommunikation zwis...

Einfache Analyse von EffectList in React

Inhaltsverzeichnis EffectList-Sammlung Effektlist...

Verwenden von NTP zur Zeitsynchronisierung in Ubuntu

NTP ist ein TCP/IP-Protokoll zur Zeitsynchronisie...

Beispiel für die Erschöpfung der MySQL-Auto-Increment-ID

Anzeigedefinitions-ID Wenn die in der Tabelle def...

Spezifische Methode zum Anzeigen von Benutzerautorisierungsinformationen in MySQL

Spezifische Methode: 1. Öffnen Sie die Eingabeauf...

Detaillierte Erklärung zur Verwendung von Vue-Resource-Interceptors

Vorwort Abfangjäger In einigen modernen Front-End...