5 Nützliche Tipps beim Kompilieren Ihres eigenen Linux-Kernels

Der Linux-Kernel ist ein brillantes Stück Software-Engineering. Mit mehr als einer Million Zeilen Code ist er arguably eines der komplexesten Programme, die heute noch aktiv entwickelt werden. Seit den späten 1990er Jahren wird der Linux-Kernel sowohl in rechenintensiven Projekten als auch in einfachen Embedded-Anwendungen verwendet.
Inhaltsverzeichnis
- Was ist ein Kernel und warum sollte man ihn konfigurieren?
- Verwenden Sie das Hilfesystem
- Deaktivieren Sie unnötige HID-Unterstützung
- Deaktivieren Sie unnötige Dateisystemunterstützung
- Deaktivieren Sie unnötige Grafiktreiber
- Installieren Sie Treiber als Module
- Häufig gestellte Fragen
Lesen Sie auch: 5 Beste Linux-Libre-Distributionen für bessere Sicherheit
Was ist ein Kernel und warum sollte man ihn konfigurieren?
Trotz all dem ist der Linux-Kernel nur ein Programm, das als Verbindung zwischen der Hardware in Ihrem Computer und der Software, die Sie täglich verwenden, dient. Er ermöglicht es Ihnen, eine Vielzahl von Geräten für die Programme zu verwenden, die Sie täglich nutzen.
Ein Beispiel für diese Hardware-Software-Verknüpfung ist die Advanced Linux Sound Architecture (ALSA). ALSA ist ein Soundtreiber-Framework, das im Linux-Kernel integriert ist. Es ermöglicht Ihnen unter anderem, eine Soundkarte einfach zu installieren und sie sofort mit Ihrem Lieblingsprogramm zu konfigurieren.

Wissen Sie, dass der Linux-Kernel ein Programm ist, das für den normalen Benutzer weitgehend unbekannt ist. In den meisten Fällen erhalten Sie beim Installieren einer Distribution einen Kernel, der sofort funktioniert. Dies kann nützlich sein, wenn Sie einfach nur möchten, dass Ihr System funktioniert.
Wenn Sie jedoch Distributionen wie Arch und Gentoo verwenden, ist es auf lange Sicht vorteilhaft, Ihren Kernel konfigurieren zu können. Beispielsweise kann das Aktivieren nur der Funktionen, die Sie möchten, die Bootzeiten beschleunigen.
Mit diesem Ziel bietet dieser Artikel fünf nützliche Tipps beim Kompilieren Ihres eigenen Linux-Kernels.
Hinweis: Schauen Sie sich diesen Artikel an, um herauszufinden, wie Sie mit dem Kompilieren Ihres eigenen Kernels beginnen können.
1. Verwenden Sie das Hilfesystem
Eine der nützlichsten Funktionen beim Konfigurieren Ihres Linux-Kernels ist das Hilfesystem. Dies ist eine integrierte Funktion, auf die Sie im Kernel-Konfigurationsmenü zugreifen können. Damit können Sie eine Beschreibung jeder Funktion und jedes Treibers anzeigen, den Sie in Ihrem Kernel installieren können.

Um dieses System zu verwenden, müssen Sie nur Shift + / drücken, während Sie eine bestimmte Kernel-Option hervorheben. Von dort aus wird das Konfigurationsmenü eine kurze Folie darüber drucken, was diese Funktion tut. Zum Beispiel kann ich Shift + / bei der Option “PCI-Unterstützung” drücken, um alle Optionen zu sehen, die ich aktivieren muss, um sie zu verwenden.

Damit können Sie dasselbe Hilfesystem auch verwenden, um nach Informationen über bestimmte Kernel-Funktionen zu suchen. Dies kann besonders nützlich sein, wenn Sie mehr über alle Optionen erfahren möchten, die eine bestimmte Funktion erfordert.
Um dies zu tun, können Sie / drücken, während Sie sich im Konfigurationsmenü befinden. Dies öffnet dann eine kleine Eingabeaufforderung, in die Sie den Namen einer bestimmten Option eingeben können. Zum Beispiel kann ich / drücken und dann “PCI” eingeben, um nach Optionen zu suchen, die das PCI-Flag verwenden.

Lesen Sie auch: Was ist Gentoo Linux und wie installiert man es?
2. Deaktivieren Sie unnötige HID-Unterstützung
Der Linux-Kernel rühmt sich oft, eine Software mit nahezu universeller Hardwareunterstützung zu sein. Damit sind Sie sich oft sicher, dass er in der Lage ist, jedes Gerät zu steuern, das Sie anschließen.

Ein Problem mit diesem Ansatz ist jedoch, dass die Einbeziehung jeder Unterstützung die Gesamtgröße und den Fußabdruck des Kernels erhöht. Dies kann wiederum zu langsamen Binärdateien führen, die böswillige Hacker leicht ausnutzen und in Ihr System eindringen können.
Eine Möglichkeit, mit diesem Problem umzugehen, besteht darin, die Hardwareunterstützung zu entfernen, die Sie in Ihrem Gerät nicht verwenden. Zum Beispiel enthält der Linux-Kernel standardmäßig Firewire-Unterstützung. Dennoch haben die meisten Maschinen heutzutage standardmäßig keinen Firewire-Anschluss.

Wissen Sie, dass eine schnelle Möglichkeit, zu sehen, welche Hardwaregeräte Sie deaktivieren können, darin besteht, den Abschnitt “Spezielle HID-Treiber” zu durchlaufen. Dies ist eine Kategorie, auf die Sie unter “Gerätetreiber” und “HID-Unterstützung” im Konfigurationsmenü zugreifen können. Hier wird der Kernel alle seltenen und ungewöhnlichen Geräte auflisten, die er unterstützen kann.

Damit können Sie auch Shift + / und / verwenden, um nach jeder Option zu suchen, die in diesem Abschnitt aufgeführt ist. Zum Beispiel kann ich “ELECOM-Geräte” auswählen und Shift + / drücken, um zu sehen, was diese Option tut.

Sie können dann die Geräte auswählen, die Sie möchten, und N drücken, um deren Funktionen zu deaktivieren. In meinem Fall werde ich alle speziellen HID-Unterstützungen deaktivieren, da ich keines dieser Geräte benutze.

Lesen Sie auch: 5 der besten Linux-Distributionen für Entwickler und Programmierer
3. Deaktivieren Sie unnötige Dateisystemunterstützung
Eine weitere schnelle Möglichkeit, die Größe Ihres Kernels zu reduzieren, besteht darin, die Unterstützung für Dateisysteme zu entfernen, die Sie nicht verwenden. Standardmäßig wird der Linux-Kernel mit optionaler Unterstützung für die meisten Arten von Dateisystemen erstellt. Dazu gehören das alte BSD FFS sowie einige der Hochleistungs-Systeme wie BTRFS.

In den meisten Fällen verwendet ein normaler Benutzer nur eine Handvoll von Dateisystemen für den täglichen Gebrauch. Zum Beispiel verwendet ein Linux-System im Allgemeinen EXT2, EXT4, FAT32 und NTFS für alle seine Datenspeicher. Daher ist es möglich, die Unterstützung für andere Dateisysteme zu entfernen und eine angemessene Menge an zusätzlicher Leistung aus dem Kernel zu gewinnen.
Um unnötige Dateisystemunterstützung im Kernel zu entfernen, müssen Sie nur zur Kategorie “Dateisysteme” gehen.

Von dort aus können Sie dann die Dateisysteme auswählen, die Sie von Ihrem System entfernen möchten, indem Sie sie hervorheben und N drücken. In meinem Fall werde ich nur die Unterstützung für EXT2, EXT3, EXT4 und JFS belassen.

4. Deaktivieren Sie unnötige Grafiktreiber
Neben der Deaktivierung sowohl der speziellen HID- als auch der Dateisystemunterstützung können Sie auch das Konfigurationsmenü verwenden, um alle Grafiktreiber zu entfernen, die Sie nicht verwenden. Dies liegt daran, dass der Linux-Kernel Unterstützung für die meisten modernen Grafikgeräte bündelt. Das bedeutet, dass selbst wenn Ihre Maschine keine Grafikkarte verwendet, Ihr Kernel immer noch so läuft, als hätten Sie eine.

Ähnlich wie oben führt dies zu einer Kernel-Binärdatei, die Funktionen ausführt, die Sie nicht unbedingt benötigen. Dies kann ein Problem sein, wenn Sie Linux auf alter oder schwacher Hardware ausführen.
Um unnötige Grafikunterstützung zu entfernen, müssen Sie zuerst zum Abschnitt “Gerätetreiber” des Konfigurationsmenüs gehen. Von dort aus müssen Sie nach unten scrollen und “Grafikunterstützung” auswählen.

Sobald dies erledigt ist, zeigt der Kernel eine Liste aller Grafikhardware an, für die er einen Treiber bereitstellt. Von hier aus können Sie dann entweder Y oder N drücken, um einen bestimmten Treiber zu aktivieren oder zu deaktivieren.
In meinem Fall werde ich nur sowohl die “Intel 8XX Grafik” als auch den “Intel GMA500 Framebuffer” aktivieren, da dies die einzigen Grafikgeräte in meinem Laptop sind.

Lesen Sie auch: 9 der besten Linux-Distributionen für Windows-Benutzer
5. Installieren Sie Treiber als Module
Schließlich ist eine der besten Funktionen des Linux-Kernels seine Fähigkeit, Teile von sich selbst zu entfernen und sie als Module neu zu laden. Dieser Ansatz reduziert nicht nur die Größe des Kernels, sondern ermöglicht Ihnen auch Flexibilität bei den Kernel-Funktionen.
Zum Beispiel können Sie Ihren Wireless-Treiber in ein Modul umwandeln, was es Ihnen ermöglicht, ihn zu aktualisieren, ohne den Kernel neu zu kompilieren. Daher können Module besonders nützlich für Benutzer sein, die einen schnellen Kernel haben möchten, aber auch die hervorragende Hardwarekompatibilität von Linux beibehalten möchten.

Um integrierte Funktionen in Module zu konvertieren, müssen Sie zum Abschnitt und zur Option gehen, die Sie in ein Modul umwandeln möchten. Zum Beispiel, um meinen Wireless-Treiber zu konvertieren, muss ich zum Abschnitt “Netzwerkunterstützung” und dann “Drahtlos” gehen.

Von dort aus kann ich dann M bei den “cfg80211”-Treibern drücken, um sie in ein Kernelmodul zu konvertieren.

Sobald dies erledigt ist, können Sie sechs Mal Esc drücken, um das Konfigurationsmenü zu verlassen. Dies wird dann eine Eingabeaufforderung anzeigen, die fragt, ob Sie die Änderungen speichern möchten, die Sie vorgenommen haben. In meinem Fall werde ich “Ja” auswählen.

Damit können Sie jetzt eine Version des Linux-Kernels mit den Funktionen, die Sie möchten, kompilieren, indem Sie den folgenden Befehl ausführen:
make&&make modules_install
makeinstall
Lesen Sie auch: 5 Tools, um eine benutzerdefinierte Linux-Distribution einfach zu erstellen
Häufig gestellte Fragen
Ist es möglich, die Gerätetreiber zu kennen, die mein Linux-Kernel benötigt?
Ja! Ein Hindernis für Benutzer, die gerade anfangen, ihren eigenen Kernel zu kompilieren, ist es, die genaue Art von Hardware zu kennen, die sie verwenden. Obwohl dies wie eine schwierige Aufgabe erscheinen mag, gibt es eine Menge Programme, die Sie jetzt verwenden können, um diesen Prozess zu erleichtern.
Zum Beispiel können Sie sowohl lspci als auch lsusb verwenden, um alle angeschlossenen Hardwareperipheriegeräte in Ihrer Maschine zu betrachten. Darüber hinaus können Sie auch den Befehl sudo dmesg ausführen, um zu überprüfen, ob der Kernel Ihre Geräte richtig erkennt.
Ist es möglich, eine Funktion, die ich aus dem Linux-Kernel entfernt habe, wiederherzustellen?
Ja! Es ist möglich, eine Funktion erneut zu installieren, nachdem Sie sie aus dem Linux-Kernel entfernt haben. Um dies zu tun, müssen Sie zum Konfigurationsmenü zurückkehren und entweder Y oder M bei der Funktion drücken, die Sie wieder aktivieren möchten. Dadurch wird dem Kernel mitgeteilt, dass diese bestimmte Funktion entweder als integriert oder als Modul enthalten werden soll.
Damit müssen Sie dann den Kernel neu kompilieren, um eine Binärdatei mit allen neuen Funktionen zu erstellen. Dazu müssen Sie das Konfigurationsmenü speichern und verlassen, indem Sie sechs Mal Esc drücken. Von dort aus können Sie nun mit dem Neu-Kompilieren des Kernels beginnen, indem Sie make ausführen.
Wann sollte ich eine Linux-Kernel-Funktion als Modul installieren?
Das Installieren von Funktionen als Module hängt weitgehend davon ab, was Sie aus Ihrem Kernel benötigen. Dabei ist eine gute Faustregel, dass Sie nur Module für Funktionen erstellen sollten, die nicht kritisch für den Bootprozess sind.
Das liegt daran, dass der Linux-Kernel im Kern darauf angewiesen ist, als ein einzelnes Image zu booten. Zum Beispiel kann das Entfernen kritischer Teile wie der Unterstützung für mehrere Prozessoren zu einer Situation führen, in der Ihr Kernel nicht mehr bootfähig wird.
Aus diesem Grund sind die Kernelkomponenten, die häufig zu Modulen werden, entweder Grafik- und andere Hardwaretreiber oder Netzwerkschnittstellen.
Bildnachweis: Unsplash