So kompilieren Sie Ihren eigenen Linux-Kernel

So kompilieren Sie Ihren eigenen Linux-Kernel / Linux

Zusammen mit der Installation von Gentoo Gentoo: Eine Linux-Distribution, in der Sie Ihre eigene optimierte Software kompilieren Gentoo: Eine Linux-Distribution, in der Sie Ihre eigene Optimierte Software kompilieren Die schiere Anzahl von Möglichkeiten, auf denen Linux ausgeführt werden kann, ist erstaunlich, da es viele Möglichkeiten gibt Herumgehen. Während es viele Distributionen gibt, die entweder auf das .deb… Read More zurückgreifen, ist das Kompilieren Ihres eigenen Linux-Kernels eines der Dinge, die als sehr geeky und technisch betrachtet werden. Wir haben bereits ein paar Gründe angesprochen. 3 Gründe, warum Sie Ihren eigenen Kernel [Linux] kompilieren möchten. 3 Gründe, warum Sie Ihren eigenen Kernel [Linux] kompilieren möchten. Linux-Systeme sind so lächerlich flexibel und konfigurierbar, dass sie völlig verrückt sind. Ein Grund, warum Linux so flexibel ist, liegt in seiner modularen Struktur. Jede einzelne Systemkomponente und jedes Programm ist aufgeteilt. Warum sollten Sie dies tun? Bevor wir Sie durch die einzelnen 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 der 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 den Begriffen von Layman Der Linux-Kernel: Eine Erklärung in den Begriffen von Layman Es gibt nur eine De-facto-Sache, die Linux-Distributionen gemeinsam haben: den Linux-Kernel. Aber obwohl oft darüber geredet wird, wissen viele Leute nicht genau, was sie tun. Lesen Sie mehr, was alle diese Jobs tatsächlich erledigt.

Der Linux-Kernel zeichnet sich dadurch aus, dass er auf Ihre Hardware zugeschnitten werden kann. Vergleichen Sie dies mit dem Windows NT-Kernel, der auf jedem Computer im Allgemeinen gleich ist. Dazu muss der Kernel einen Prozess namens Compilieren durchlaufen.

Was wird kompiliert??

Im Allgemeinen werden Programme in einem für Menschen lesbaren Format geschrieben. Dies macht es Menschen leichter, Software zu erstellen. Beispielsweise ist der Linux-Kernel hauptsächlich in einer Programmiersprache geschrieben C. Computer können dies jedoch nicht verstehen. Sie erkennen nur eine komplizierte Sprache, die aufgerufen wird Maschinensprache. Dazu müssen die Textzeilen übersetzt werden. Kompilieren und Installieren von TAR GZ- und TAR-BZ2-Dateien in Ubuntu Linux Kompilieren und Installieren von TAR GZ- und TAR-BZ2-Dateien in Ubuntu Linux Read More mit einer speziellen Software namens a Compiler.

Verschiedene Compiler werden zum Konvertieren verschiedener Programmiersprachen verwendet. Zum Beispiel, GCC ist ein Compiler, der unter anderem C-Code in Maschinencode übersetzt. Aber das ist noch nicht alles - Compiler können das auch optimieren der übersetzte Code für bestimmte Maschinen. Außerdem können sie dabei unerwünschte Funktionen aus Programmen entfernen.

In der Regel wird dieser Prozess für viele Software bereits durchgeführt. Stattdessen laden die Leute die konvertierten herunter binär Anweisungen, die aus der Box heraus funktionieren. Zum Beispiel der Webbrowser Verwenden Sie den besten Webbrowser für Linux im Jahr 2016? Verwenden Sie den besten Webbrowser für Linux im Jahr 2016? Die Verwendung des "falschen" Browsers kann zu unnötigen Kopfschmerzen, Produktivitätseinbußen und sogar zum Verlust von Daten führen. Welcher Browser ist der beste für Ihren Linux-Computer? Lass es uns herausfinden. Lesen Sie mehr Sie laufen gerade ist bereits kompiliert. Dies liegt daran, dass das Kompilieren etwas kompliziert und zeitaufwändig sein kann. Stellen Sie sich vor, ein großes Buch in eine Fremdsprache zu übersetzen.

Kurz gesagt, das Kompilieren des Kernels bedeutet, dass der Code in etwas konvertiert wird, das tatsächlich auf Ihrem Computer ausgeführt wird.

Kernelquellen beziehen

Ohne Brennstoff kann man kein Feuer machen. Ebenso können Sie keine Programme kompilieren, wenn Sie nicht über den Code dafür verfügen. Die Methode ist im Allgemeinen für die meisten Linux-Betriebssysteme mit wenigen Ausnahmen die gleiche. Viele von ihnen liefern ihre eigenen Kernel-Quellen. Sie sollten das versuchen und verwenden, wenn Sie können. Zum Beispiel, wenn Sie eine Debian-basiertes Betriebssystem Wie Ubuntu sollten Sie die Quellen mit folgenden Befehlen installieren:

Sudo Apt-Get Update Sudo Apt-Get installieren Linux-Quelle 

Sie können auch verschiedene Versionen dieses Pakets installieren (z. Linux-Source-4.8.0) wenn du möchtest. Sie finden die installierten Dateien im / usr / src / Verzeichnis, navigieren Sie dort und sehen Sie sich den Inhalt an:

cd / usr / src / ls 

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

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

Stellen Sie sicher, dass Sie die Datei durch den richtigen Namen ersetzen. Die Datei wird ziemlich groß sein, daher dauert der Vorgang etwas!

Alternative Methode

Wenn Sie möchten, können Sie Ihre Quellen von der offiziellen Linux-Kernel-Website erhalten. Ich empfehle dies nur, wenn Ihr Linux-Betriebssystem sie 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. Auf diese Weise haben Sie einen schönen Ordner, wenn Sie in Zukunft weitere Kernel kompilieren möchten.

Extrahieren Sie anschließend die Datei mit diesem Befehl:

tar xJvf linux-4.9.11.tar.xz

Vergewissern Sie sich, dass Sie den Dateinamen verwenden, der der heruntergeladenen Version entspricht!

Passen Sie den Kernel an

In diesem Schritt können Sie auswählen, welche Teile des Kernels Sie entfernen möchten. Zum Beispiel wird der Kernel mit vielen verschiedenen Treibern für verschiedene Geräte ausgeliefert. Wenn Sie diese Unterstützung nicht benötigen, kann das Herausnehmen von ihnen einige Geschwindigkeitsvorteile mit sich bringen, zusammen mit einem kleineren Kernel.

Voraussetzungen

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

Auf Debian-basierten Systemen benötigen Sie die Build-Essential Paket, unter anderem:

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

Das libncurses5-dev Das Paket erleichtert die Konfiguration des Kernels. Installieren Sie ihn daher. Andere Linux-Betriebssysteme haben ein ähnliches Programm, dies kann jedoch unter einem anderen Namen erfolgen. Wenn Sie beispielsweise Fedora 5-Gründe für die Verwendung von Pure Open Source Distro und Fedora 5 für die Verwendung von Pure Open Source Distro verwenden, ist Fedora Fedora nicht so bekannt wie Ubuntu und hat den Ruf, schwer zu verwenden. Aber wenn dies wahr ist, warum benutzen so viele Leute Fedora weiter? Lesen Sie mehr, heißt es 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, damit Sie es können Innerhalb der extrahierte Linux-Quellordner. Zum Beispiel, wenn Sie die Linux-Quelle Methode, würden Sie das tun:

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. Dazu verwenden Sie ein Befehlszeilentool namens machen. Geben Sie diesen Befehl ein:

sudo make localmodconfig 

Dies erstellt eine Datei namens .Konfig, was sagt GCC, was aus den Kernel-Quellen zu kompilieren ist. Das Machen Sie localmodconfig Der Befehl erkennt die aktuell ausgeführten Kernel-Komponenten und markiert sie zum Kompilieren. Wenn sich der Kernel in einem Ordner befindet, den Sie besitzen, können Sie brauche nicht sudo damit es funktioniert.

Sie können auf einige Nachrichten wie die unten stehende stoßen. Drücken Sie einfach die Eingeben Schlüssel zum Überspringen - normalerweise sind es nur neue Kernel-Funktionen.

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 vollständig überspringen und stattdessen den nächsten Befehl verwenden. Dadurch wird der neue Kernel mit den gleichen Optionen wie der gerade verwendete kompiliert.

Wenn Sie dies vorziehen, den Befehl localmodconifg jedoch zuvor verwendet haben, führen Sie folgende Schritte aus:

Sudo sauber machen 

Dadurch erhalten Sie einen sauberen Build. 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 mit dem Namen .Konfig. Dies ist, was GCC verwenden wird, um auszuwählen, was kompiliert werden soll. Anstatt sie manuell zu bearbeiten (nicht empfohlen), verwenden Sie stattdessen einige Terminal-Tools. Dies erleichtert die Auswahl der Kompilierungsoptionen.

Nachdem Sie dies getan haben, passen Sie es weiter an:

sudo make nconfig 

Sie sehen ein buntes Menü. Dies ist das Kernel-Konfigurationsmenü. Verwenden Sie zum Navigieren die Pfeiltasten. Sie können die Taste drücken Recht Pfeiltaste, um Einträge mit einem zu erweitern -> neben ihnen anmelden. Navigieren Sie aus diesen Untermenüs, indem Sie die drücken links Pfeiltaste.

Sie können Menüeinträge umschalten, die über das Symbol verfügen <> oder [] neben ihnen durch Drücken der Leertaste. Dadurch werden die verschiedenen Menüoptionen durchlaufen. Wenn Sie ein sehen * oder M Im Inneren wird diese spezifische Kernelkomponente kompiliert. Der einzige Unterschied zwischen ihnen ist, dass die M Option wird geladen, wenn sie benötigt wird. Dies kann nützlich sein, wenn Sie beispielsweise einen Treiber kompilieren, der nicht häufig verwendet wird.

Wenn Sie mehr über die Funktionsweise eines bestimmten Schalters erfahren möchten, drücken Sie F2 darüber. Sie erhalten eine hilfreiche Beschreibung des Kompilierens.

Wenn Sie fertig sind, drücken Sie die Taste F9 Taste zum Speichern und Beenden.

Kernel kompilieren und installieren

Nachdem Sie nun eine benutzerdefinierte Make-Datei erstellt haben, müssen Sie TAR GZ- und TAR-BZ2-Dateien in Ubuntu Linux kompilieren und installieren. So kompilieren und installieren Sie TAR GZ- und TAR BZ2-Dateien in Ubuntu Linux. Geben Sie diesen Befehl ein:

sudo make -j $ (nproc --all) 

Du wirst brauche nicht sudo wenn Sie die Kernelquellen aus dem Internet heruntergeladen haben. Der zweite Teil des Befehls beschleunigt die Kompilierungszeit des Kernels, indem alle CPU-Kerne genutzt werden. Was ist ein Prozessorkern? [MakeUseOf erklärt] Was ist ein Prozessorkern? [MakeUseOf erklärt] Jeder Computer verfügt über einen Prozessor, unabhängig davon, ob es sich um einen kleinen Effizienz-Profi oder um ein großes Leistungskraftwerk handelt oder er nicht funktionsfähig ist. Natürlich kann der Prozessor auch CPU oder Central Processing genannt werden. Sie können dies entfernen oder die Nummer in etwas anderes ändern (z. -j2), wenn Sie Ihren Computer für andere Aufgaben ohne zu viele Probleme verwenden möchten. Dadurch wird das Kompilieren jedoch auch langsamer!

Dieser Vorgang kann und wird sehr lange dauern. Je weniger Sie zum Kompilieren wählen, desto kürzer wird es sein. Trotzdem müssen Sie wahrscheinlich Geduld haben.

Geben Sie anschließend diesen Befehl ein, um den Rest des Kernels fertigzustellen:

sudo make modules_install 

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

sudo make installieren 

Dadurch wird der Kernel automatisch in Ihren kopiert /Stiefel Ordner und generieren Sie die entsprechenden Dateien, damit es funktioniert.

Kernel mit GRUB wechseln

Wenn Sie nach der Installation Ihres neuen Kernels einen Neustart durchführen, Ihr System funktioniert möglicherweise nicht! Dies liegt in der Regel an einem nicht ordnungsgemäß kompilierten Kernel (dh, der Computer wird nicht ausreichend unterstützt). Ein Beispiel dafür ist mein eigener Laptop. Für den Fall, dass dies der Fall ist, empfehle ich die Bearbeitung von GRUB. So passen Sie den GRUB Bootloader mit BURG [Ubuntu] an. Verwenden Sie dazu diesen Befehl:

sudo nano / etc / default / grub 

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

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

Wenn Sie jetzt Ihren Computer neu starten, können Sie zu einem älteren Kernel wechseln, falls Ihr neuer nicht funktioniert. Geh einfach zum Erweiterte Optionen und wählen Sie den Kernel, den Sie booten möchten. Wenn alles gut geht, herzlichen Glückwunsch! Sie verwenden den von Ihnen selbst kompilierten Kernel.

Interessieren Sie sich für die Kompilierung weiterer Kernel? Andere Programme? Findest du es wert??

Bildnachweise: Chombosan / Shutterstock

Erfahren Sie mehr über: Linux.