Minimaler, benutzerdefinierter Kernel

  Patrice Coni   Lesezeit: 5 Minuten

Anleitung zur Kompilierung eines minimalen, benutzerdefinierten Kernels.

minimaler, benutzerdefinierter kernel

Wer den Linux-Kernel selbst kompilieren möchte und Wert darauf legt, dass dieser schlank und ganz an die eigenen Bedürfnisse angepasst ist, indem dieser nur die Treiber enthält, die für die Hardware des eigenen Computers, sowie der eigenen Geräte benötigt werden, der kann die Kernelkonfiguration so vornehmen, dass nur die erforderlichen Treiber mitkompiliert werden. Dies verkürzt nicht nur die Dauer des gesamten Kompiliervorgangs um ein Vielfaches, sondern der Bedarf an Speicherplatz ist dafür wesentlich geringer.

Während die Speichergrösse des Ordners, in welchem die Treiber des Generic-Kernel von Slackware Linux 15.0 enthalten sind, bei mehr als 320 MB liegt, so liegt sie beim Ordner des selbst kompilierten, minimalen Kernels, bei weniger als 63 MB. Bei meinem Computer ist der Startvorgang mit dem neuen Kernel zudem schneller, wobei der Unterschied hierbei eher gering ist.

Neulingen, die den Linux-Kernel zum ersten Mal selbst kompilieren möchten, sei die Anleitung von der Webseite www.linuxkurs.ch sehr empfohlen. Nachdem das Kernel-Paket, das die Quellen enthält, heruntergeladen und entpackt wurden, wird im weiteren Schritt die Kernelkonfiguration durch das Ausführen des Befehls make localmodconfig eine Konfigurationsdatei automatisch erstellt, in der nur für die verwendete Hardware des derzeit verwendeten Computers, sowie der daran angeschlossenen Geräten erforderlichen Treiber markiert sind.

# cd /usr/src/linux-{VERSION}
# make localmodconfig

Es können Fehlermeldungen auftreten, wenn Treiber mit dem derzeit verwendeten Linux-Kernel verwendet werden, die nachträglich installiert wurden, wie beispielsweise proprietäre Grafiktreiber. Diese Fehlermeldungen können ignoriert und die Optionen, die vorgeschlagen werden, mit Enter bestätigt werden.

Minimalanforderungen an den Kernel

Ist man im Besitz von zusätzlicher Hardware, die während der automatischen Erstellung der Kernelkonfigurationsdatei nicht am Computer angeschlossen war und möchte diese erst zu einem späteren Zeitpunkt verwenden, dann müssen die Treiber dazu nachträglich manuell in der Kernelkonfiguration markiert werden, damit diese dann ebenfalls mitkompiliert werden. Mit dem Befehl make menuconfig können diese Konfigurationen nun vorgenommen werden:

# make menuconfig

Nachfolgend aufgelistet ist ein Konfigurationsvorschlag, wenn zu einem späteren Zeitpunkt Speichermedien wie CD’s, DVD’s oder USB-Massenspeichergeräte verwendet werden. Wird ein UEFI basiertes System verwendet, dann ist es zwingend erforderlich, dass die Unterstützung für das VFAT Dateisystem aktiviert wird:

Device Drivers  --->
 [*] USB support  --->
<*>   USB Mass Storage support

File systems --->
 CD-ROM/DVD Filesystems  --->
<M> ISO 9660 CDROM file system support
      [*]   Microsoft Joliet CDROM extensions
      [*]   Transparent decompression extension
      <M> UDF file system support
 DOS/FAT/EXFAT/NT Filesystems  --->
<M> MSDOS fs support
<M> VFAT (Windows-95) fs support
[*] Enable FAT UTF-8 option by default
<M> exFAT filesystem support
<M> NTFS file system support
<M> NTFS Read-Write file system support

Wünscht man weder die Amateur Radio noch die Bluetooth Subsystem Unterstützung, dann müssen die Markierungen manuell deaktiviert werden:

[*] Networking support  --->
 [ ]   Amateur Radio support  ----
 < >   Bluetooth subsystem support  ----

Nun können die Einstellungen gespeichert, mit dem Kompiliervorgang begonnen sowie die nachfolgenden Schritte zur Installation und der anschliessenden Konfiguration des Bootloaders durchgeführt werden, wie zum Beispiel auf www.linuxkurs.ch erklärt. Nachdem der Computer mit dem neuen Kernel erfolgreich neu gestartet wurde, müssen die Header-Dateien des neuen Kernels noch installiert werden:

# cd /usr/src/linux-{VERSION}
# make headers_install ARCH=x86_64 INSTALL_HDR_PATH=/usr

Im weiteren Verlauf kann der alte Kernel deinstalliert und eventuell erforderliche proprietäre Treiber, die beim alten Kernel verwendet wurden, erneut kompiliert/installiert werden.

Quellen:
https://linuxkurs.ch/kurs/Kernel.html
https://unix.stackexchange.com/questions/253245/what-does-make-localmodconfig-do
https://git.kernel.org/cgit/linux/kernel/git/stable/linux-stable.git/tree/README?id=refs/tags/v4.3.3

Tags

Kernel, Kompilieren, Minimal

Es wurden noch keine Kommentare verfasst, sei der erste!