Wie kompiliere ich meinen eigenen Linux Kernel

Einen eigenen Linux-Kernel zu kompilieren ist eine dieser geekigen, technischen Sachen, oder? Wir haben bereits ein paar Gründe dafür besprochen, warum Sie das jetzt tun sollten - jetzt ist es an der Zeit, es selbst zu versuchen!

Einen eigenen Linux-Kernel zu kompilieren ist eine dieser geekigen, technischen Sachen, oder?  Wir haben bereits ein paar Gründe dafür besprochen, warum Sie das jetzt tun sollten - jetzt ist es an der Zeit, es selbst zu versuchen!
Werbung

Zusammen mit der Installation von Gentoo Gentoo: Eine Linux-Distribution, wo Sie Ihre eigene optimierte Software kompilieren Gentoo: Eine Linux-Distribution, wo Sie Ihre eigene optimierte Software kompilieren Die schiere Anzahl der verschiedenen Arten, in denen Linux ausgeführt werden kann, ist erstaunlich, da es viele Möglichkeiten gibt Herumgehen. Während es viele Distributionen gibt, die entweder auf .deb ... Read More basieren, ist das Kompilieren eines eigenen Linux-Kernels eines der Dinge, die als sehr geeky und technisch angesehen werden. Wir haben bereits ein paar Gründe behandelt 3 Gründe, warum Sie Ihren eigenen Kernel kompilieren sollten [Linux] 3 Gründe, warum Sie Ihren eigenen Kernel kompilieren [Linux] Linux-Systeme sind so lächerlich flexibel und konfigurierbar, es ist geradezu verrückt. Ein großer Teil der Gründe, warum Linux so flexibel ist, liegt in seiner modularen Struktur. Jede einzelne Systemkomponente und jedes Programm ist aufgeteilt ... Lesen Sie mehr, warum Sie dies tun möchten. Bevor wir Sie durch die Schritte führen, finden Sie hier einen kurzen Überblick über einige wichtige Konzepte.

Was ist ein Kernel?

Kurz gesagt, es ist ein wichtiger Teil Ihres Betriebssystems, wenn nicht das wichtigste. Ein Betriebssystem ist dafür verantwortlich, dass Ihre Programme funktionieren, indem Sie ihnen Zugriff auf Ihre Hardware gewähren. Es ist jedoch der Kernel Der Linux-Kernel: Eine Erklärung in Laymans Begriffen Der Linux-Kernel: Eine Erklärung in Laymans Worten Es gibt nur eine Sache, die Linux-Distributionen gemeinsam haben: den Linux-Kernel. Aber obwohl oft darüber gesprochen wird, wissen viele Leute nicht genau, was es tut. Lesen Sie mehr, was tatsächlich alle diese Jobs austrägt.

Der Linux-Kernel ist insofern speziell, als er auf die Hardware zugeschnitten werden kann, die Sie besitzen. Vergleichen Sie dies mit dem Windows NT-Kernel, der auf jedem Computer im Allgemeinen identisch sein wird. Um dies zu tun, muss der Kernel einen Prozess namens Compiling durchlaufen.

Was kompiliert?

Im Allgemeinen werden Programme in einem für Menschen lesbaren Format geschrieben. Dies erleichtert es den Benutzern, Software zu erstellen. Zum Beispiel wird der Linux-Kernel hauptsächlich in einer Programmiersprache namens C geschrieben . Computer können dies jedoch nicht verstehen. Sie erkennen nur eine komplizierte Sprache, genannt Maschinencode . Um die TAR GZ & TAR BZ2 Dateien in Ubuntu Linux zu kompilieren und zu installieren Wie kompiliere und installiere ich TAR GZ & TAR BZ2 Dateien in Ubuntu Linux Lesen Sie mehr unter Verwendung einer speziellen Software namens a Compiler .

Verschiedene Compiler werden verwendet, um verschiedene Programmiersprachen zu konvertieren. Zum Beispiel ist GCC ein Compiler, der C-Code unter anderem in Maschinencode übersetzt. Aber das ist nicht alles - Compiler können auch den übersetzten Code für bestimmte Maschinen optimieren . Damit können sie auch unerwünschte Features aus Programmen entfernen.

In der Regel ist dieser Prozess bereits für viele Software durchgeführt. Stattdessen laden die Benutzer die konvertierten Binäranweisungen herunter, die aus der Box funktionieren. Beispiel: Verwenden Sie den Webbrowser 2016 für den besten Webbrowser für Linux? Verwenden Sie den besten Webbrowser für Linux im Jahr 2016? Die Verwendung des "falschen" Browsers kann zu vielen unnötigen Problemen, vergeudeter Produktivität und sogar verlorenen Daten führen. Welcher Browser ist der beste für Ihren Linux-Computer? Lass es uns herausfinden. Read More du bist gerade läuft ist bereits kompiliert. Dies liegt daran, dass das Kompilieren etwas kompliziert und zeitraubend sein kann. Stellen Sie sich vor, Sie würden ein großes Buch in eine Fremdsprache übersetzen.

Kurz gesagt, das Kompilieren des Kernels bedeutet, seinen Code in etwas umzuwandeln, das tatsächlich auf Ihrem Computer läuft .

Kernelquellen beziehen

Sie können kein Feuer ohne Treibstoff machen. Ebenso können Sie Programme nicht kompilieren, wenn Sie nicht den Code dafür haben. Die Methode ist für die meisten Linux-Betriebssysteme bis auf wenige Ausnahmen identisch. Viele von ihnen liefern ihre eigenen angepassten Kernelquellen. Sie sollten versuchen, das zu verwenden, wenn Sie können. Wenn Sie beispielsweise ein Debian-basiertes Betriebssystem wie Ubuntu verwenden, sollten Sie die Quellen mit folgenden Befehlen installieren:

sudo apt-get update sudo apt-get install linux-source 

Wie kompiliere ich meine eigene Linux Kernel Debian Linux Source

Sie können auch verschiedene Versionen dieses Pakets installieren (zB linux-source-4.8.0 ), wenn Sie möchten . Sie finden die installierten Dateien im Verzeichnis / usr / src /, navigieren Sie dorthin und sehen Sie sich den Inhalt an:

 cd /usr/src/ ls 

Sie sehen eine Datei, die mit .tar.bz2 endet. Dies ist die Quelle, die Sie verwenden werden. Extrahiere es mit diesem Befehl:

 sudo tar xjvf linux-source-4.4.0.tar.bz2 

Stellen Sie sicher, dass Sie die Datei natürlich mit dem korrekten Namen ersetzen. Die Datei wird ziemlich groß sein, also wird der Prozess eine Weile dauern!

Alternative Methode

Wenn Sie möchten, können Sie Ihre Quellen von der offiziellen Linux Kernel-Website beziehen. Ich empfehle dies nur, wenn Ihr Linux-Betriebssystem diese nicht bereitstellt. Wählen Sie die gewünschte Version und laden Sie sie herunter. Wenn Sie diese Route durchlaufen, sollten Sie sie in einen leeren Ordner herunterladen. Wenn Sie in Zukunft weitere Kernel kompilieren möchten, haben Sie einen schönen Ordner, in dem Sie sie organisieren können.

Wie kompilieren Sie Ihre eigenen Linux Kernel Vanilla Kernel Sources

Danach entpacken Sie die Datei mit folgendem Befehl:

 tar xJvf linux-4.9.11.tar.xz 

Wie kompilieren Sie Ihre eigene Linux Kernel Vanilla Linux Source

Stellen Sie sicher, dass Sie den Dateinamen verwenden, der der heruntergeladenen Version entspricht!

Passen Sie den Kernel an

Dies ist der Schritt, in dem Sie auswählen können, welche Teile des Kernels Sie loswerden möchten. Zum Beispiel wird der Kernel mit vielen verschiedenen Treibern für eine Vielzahl von Geräten geliefert. Wenn Sie diese Unterstützung nicht benötigen, können Sie durch das Loswerden von ihnen einige Geschwindigkeitsvorteile erzielen, zusammen mit einem kleineren Kernel.

Voraussetzungen

Bevor Sie fortfahren, müssen Sie einige Programme installieren, mit denen Sie sie anpassen und kompilieren können.

Auf Debian-basierten Systemen benötigen Sie unter anderem das build-essential- Paket:

 sudo apt-get install build-essential gcc libncurses5-dev libssl-dev 

Das libncurses5-dev- Paket wird die Konfiguration des Kernels erleichtern. Stellen Sie daher sicher, dass Sie es installieren. Andere Linux-Betriebssysteme haben ein ähnliches Programm, aber dies kann unter einem anderen Namen sein. Zum Beispiel, wenn Sie Fedora 5 Gründe für die Verwendung von reinen Open Source Distro, Fedora 5 Gründe für die Verwendung von reinen Open Source Distro verwenden, ist Fedora Fedora nicht so bekannt wie Ubuntu und hat den Ruf, schwer zu bedienen. Aber wenn das stimmt, warum setzen so viele Leute Fedora fort? Lesen Sie mehr, es heißt ncurses .

Wenn es noch nicht installiert ist, benötigen Sie auch die GNU Compiler Collection (GCC). Dies ist das Werkzeug, das dafür verantwortlich ist, den rohen Quellcode in etwas zu übersetzen, das für Computer verständlich ist. Das heißt kompilieren.

Nachdem Sie diese Programme installiert haben, öffnen Sie Ihr Terminal, so dass Sie sich im extrahierten Linux-Quellordner befinden. Wenn Sie beispielsweise die linux-source- Methode verwenden, tun Sie Folgendes:

 cd /usr/src/linux-source-4.4.0 

Kernel-Konfigurationsdatei

Bevor Sie den Kernel kompilieren, müssen Sie GCC mitteilen, wie Sie es ausführen möchten. Sie tun dies mit einem Befehlszeilenprogramm namens make . Gib diesen Befehl ein:

 sudo make localmodconfig 

Dadurch wird eine Datei namens .config erstellt, die GCC mitteilt, was von den Kernelquellen zu kompilieren ist. Der Befehl make localmodconfig erkennt aktuell laufende Kernel-Komponenten und markiert sie für die Kompilierung. Wenn sich der Kernel in einem eigenen Ordner befindet, benötigen Sie kein sudo, damit es funktioniert.

Sie können einige Nachrichten wie die unten finden. Drücken Sie einfach die Eingabetaste, um sie zu überspringen - das sind normalerweise nur neue Kernel-Funktionen.

So kompilieren Sie Ihren eigenen Linux-Kernel Erstellen Sie Localmodconfig Neu

Localmodconfig ist jedoch nicht perfekt! Wenn Sie derzeit einige Teile Ihres Computers nicht verwenden, werden möglicherweise nicht alle unterstützten Funktionen erkannt. Daher müssen Sie sie manuell aktivieren. Alternativ können Sie diesen Schritt komplett überspringen und stattdessen den nächsten Befehl verwenden. Dadurch wird der neue Kernel mit den gleichen Optionen kompiliert wie die, die Sie gerade verwenden.

Wenn Sie das bevorzugen, aber zuvor den Befehl localmodconifg verwenden, tun Sie Folgendes:

 sudo make clean 

Dies wird dir einen sauberen Build geben. Sie sollten diesen Befehl auch verwenden, wenn Sie zuvor einen Kernel mit diesen Quellen kompiliert haben.

Weitere Konfiguration

Im Kernel- Quellordner befindet sich eine Datei namens .config . Dies ist, was GCC verwenden wird, um auszuwählen, was zu kompilieren ist. Anstatt es manuell zu bearbeiten (nicht empfohlen), verwenden Sie stattdessen einige Terminal-Tools. Dies erleichtert das Auswählen von Kompilierungsoptionen.

Wenn Sie das getan haben, stimmen Sie es weiter ab:

 sudo make nconfig 

Sie werden ein buntes Menü sehen. Dies ist das Kernel-Konfigurationsmenü. Um zu navigieren, benutzen Sie die Pfeiltasten. Sie können die rechte Pfeiltaste drücken, um Einträge mit einem -> -Zeichen neben ihnen zu erweitern. Navigieren Sie aus diesen Untermenüs, indem Sie die linke Pfeiltaste drücken.

So kompilieren Sie Ihren eigenen Linux-Kernel Erstellen Sie Nconfig

Sie können Menüeinträge mit dem Zeichen oder [] daneben durch Drücken der Leertaste aktivieren. Dadurch werden die verschiedenen Menüoptionen durchlaufen. Wenn Sie ein * oder M im Inneren sehen, wird diese spezifische Kernel-Komponente kompiliert. Der einzige Unterschied zwischen ihnen ist, dass die M- Option geladen wird, wenn sie benötigt wird. Dies kann nützlich sein, wenn Sie beispielsweise einen Treiber kompilieren, der nicht oft verwendet wird.

Wenn Sie mehr darüber erfahren möchten, was ein bestimmter Schalter bewirkt, drücken Sie F2 darüber. Sie sehen eine hilfreiche Beschreibung dessen, was Sie kompilieren.

So kompilieren Sie Ihren eigenen Linux-Kernel Erstellen Sie Nconfig F2

Wenn Sie fertig sind, drücken Sie die F9- Taste, um zu speichern und zu beenden.

So kompilieren Sie Ihren eigenen Linux-Kernel Machen Sie Nconfig Save

Kompilieren und Installieren des Kernels

Nun, da Sie eine benutzerdefinierte make-Datei erstellt haben, müssen Sie kompilieren und installieren TAR GZ & TAR BZ2-Dateien in Ubuntu Linux Übersetzen und Installieren TAR GZ & TAR BZ2-Dateien in Ubuntu Linux Lesen Sie mehr den Kernel. Gib diesen Befehl ein:

 sudo make -j$(nproc --all) 

Sie brauchen kein sudo, wenn Sie die Kernelquellen aus dem Internet heruntergeladen haben. Der zweite Teil des Befehls beschleunigt die Kompilierungszeit des Kernels, indem er alle Ihre CPU-Kerne ausnutzt. Was ist ein Prozessorkern? [MakeUseOf erklärt] Was ist ein Prozessorkern? [MakeUseOf erklärt] Jeder Computer hat einen Prozessor, ob es ein kleines Effizienzpro- oder ein großes Leistungskraftwerk ist, oder es könnte nicht funktionieren. Natürlich, der Prozessor, auch als CPU oder Central Processing ... Lesen Sie mehr. Sie können dies entfernen oder die Nummer in etwas anderes ändern (zB -j2 ), wenn Sie Ihren Computer für andere Aufgaben ohne zu viele Schluckauf verwenden möchten. Dies wird jedoch auch das Kompilieren verlangsamen!

Dieser Prozess kann und wird sehr lange dauern. Je weniger Sie kompilieren, desto kürzer wird es sein. Trotzdem wirst du wahrscheinlich Geduld haben müssen.

Danach geben Sie diesen Befehl ein, um den Rest des Kernels zu kompilieren:

 sudo make modules_install 

Um diesen Kernel tatsächlich zu verwenden, müssen Sie diesen Befehl eingeben:

 sudo make install 

Dadurch wird der Kernel automatisch in den Ordner / boot kopiert und die entsprechenden Dateien generiert, damit er funktioniert.

Wechseln der Kernel mit GRUB

Wenn Sie nach der Installation Ihres neuen Kernels einen Neustart durchführen, funktioniert Ihr System möglicherweise nicht ! Dies liegt normalerweise an einem fehlerhaft kompilierten Kernel (das heißt, Ihren Computer nicht gut genug unterstützt). Ein typisches Beispiel ist mein eigener Laptop. Für den Fall, dass dies passiert, empfehle ich die Bearbeitung von GRUB So passen Sie den GRUB Bootloader mit BURG an [Ubuntu] So passen Sie den GRUB Bootloader mit BURG [Ubuntu] Read More an, damit er zu älteren Kernels wechseln kann. Verwenden Sie dazu diesen Befehl:

 sudo nano /etc/default/grub 

Wie kompiliere ich meinen eigenen Linux Kernel Ubuntu GRUB

Platzieren Sie ein # -Zeichen vor den Zeilen GRUB_HIDDEN_TIMEOUT und GRUB_HIDDEN_TIMEOUT_QUIET . Speichern Sie anschließend diese Änderungen, indem Sie diesen Befehl ausführen:

 sudo grub-mkconfig -o /boot/grub/grub.cfg 

So kompilieren Sie Ihr eigenes Linux-Kernel-GRUB-Menü

Jetzt, wenn Sie Ihren Computer neu starten, können Sie zu einem älteren Kernel wechseln, wenn Ihr neuer nicht funktioniert. Gehen Sie einfach zum Menüpunkt Erweiterte Optionen und wählen Sie den Kernel aus, den Sie booten möchten. Wenn alles gut geht, herzlichen Glückwunsch! Sie verwenden den Kernel, den Sie selbst zusammengestellt haben.

Möchten Sie mehr Kernel kompilieren? Andere Programme? Finden Sie es lohnend?

Bildnachweis: Chombosan / Shutterstock

In this article