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

5 Kernel Tipps 00 Titelbild

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?
    1. Verwenden Sie das Hilfesystem
    1. Deaktivieren Sie unnötige HID-Unterstützung
    1. Deaktivieren Sie unnötige Dateisystemunterstützung
    1. Deaktivieren Sie unnötige Grafiktreiber
    1. 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.

5 Kernel Tipps 02 Alsamixer Fenster

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.

5 Kernel Tipps 03 Beispiel Kernel Hilfe

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.

5 Kernel Tipps 04 Linux Pci Beispiel Hilfe

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.

5 Kernel Tipps 05 Kernel Suchaufforderung

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.

5 Kernel Tipps 06 Beispiel Linux Hardwareunterstützung

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.

5 Kernel Tipps 07 Linux Firewire Unterstützung

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.

5 Kernel Tipps 08 Spezielle Hid Kategorie

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.

5 Kernel Tipps 09 Beispiel Elecom Hilfe

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.

5 Kernel Tipps 10 Deaktivierte spezielle Hid-Treiber

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.

5 Kernel Tipps 12 Linux Dateisystemunterstützung

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.

5 Kernel Tipps 13 Kernel Dateisystem Kategorie

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.

5 Kernel Tipps 14 Wenige Linux-Dateisysteme aktiviert

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.

5 Kernel Tipps 15 Linux Grafikunterstützung

Ä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.

5 Kernel Tipps 16 Kernel Grafik Kategorie

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.

5 Kernel Tipps 17 Nur Intel Grafikunterstützung

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.

5 Kernel Tipps 18 Linux Moduldateien

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.

5 Kernel Tipps 19 Kernel Drahtlos Kategorie

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

5 Kernel Tipps 20 Linux Kernel Modulfunktion

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.

5 Kernel Tipps 21 Kernel-Konfiguration speichern

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

5 Kernel Tipps 11 Linux Kernel Kompilieren

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