Linux-Kernel maßgeschneidert

Test & Kaufberatung | Test

Das Make-Target "localmodconfig" spart Zeit und Arbeit, wenn man einen eigenen Kernel kompilieren will.

Die universellen Kernel von Linux-Distributionen sind für die meisten Systeme eine gute Wahl. Um neue Treiber auszuprobieren oder Fehlern nachzujagen, muss man manchmal aber doch einen Kernel selbst kompilieren. Die dazu benötigte Konfigurationsdatei komplett selbst zu erstellen ist zeitraubend und fehlerträchtig. Das umgeht man, wenn man von der Kernel-Konfiguration des Distributionskernels ausgeht – bei den werden aber Tausende nicht benötigter Treiber als Module kompiliert, was lange dauert.

Das bei Linux 2.6.32 eingeführte und maßgeblich von Steven Rostedt entwickelte Make-Target localmodconfig weist einen Ausweg aus diesem Dilemma, denn es greift sich die Konfigurationsdatei des Distributionskernels als Basis und deaktiviert die Konfigurationseinträge für Module, die das jeweilige System nicht benötigt; den Rest der Konfigurationsdatei lässt es unverändert.

Vergrößern Ein "make localmodconfig" erzeugt eine gut zum eigenen System passende Kernel-Konfiguration, die deutlich schneller compiliert als die Konfiguration des Distributions-Kernels.

Innerhalb von Sekunden entsteht so eine gut zur eigenen Hardware und der eingesetzten Linux-Distribution passende Konfiguration, bei der der Compiler nur das anfasst, was höchstwahrscheinlich benötigt wird. Ein System mit Intel Core i5-750 kompilierte solch eine Konfiguration in knapp fünfeinhalb Minuten und war damit ungefähr zehn Minuten früher fertig als beim Übersetzen mit der Konfigurationsdatei des Distributionskernels.

Die als Basis verwendete Konfigurationsdatei des Distributionskernels findet Localmodconfig typischerweise automatisch, da alle großen Distributoren sie nach dem Schema

/boot/config-$(uname -r)

ablegen. Soll eine andere Datei als Starthilfe dienen, kopiert man sie als .config in das oberste Verzeichnis der entpackten Kernel-Quellen.

Bevor man das Makefile-Target zur Konfiguration aufruft, sollte man alle per USB, FireWire und Co. angebundenen Geräte anschließen und einschalten. Der aktuell laufende Kernel lädt dadurch die zugehörigen Treiber, sodass Localmodconfig die Konfigurationseinträge für diese Treiber eingeschaltet lässt; alle anderen werden deaktiviert. Daher wird möglicherweise selbst der für USB- Datenträger benötigte USB-Storage-Treiber lahm gelegt, wenn dieser Treiber beim Make-Aufruf nicht geladen ist, weil kein USB-Datenträger angeschlossen war.

Der folgende Befehl erstellt die zugeschnittene Konfiguration:

Vergrößern Ähnlich wie beim "make oldconfig" fragt "make localmodconfig" nicht festgelegte Optionen ab.
make localmodconfig 

Ähnlich wie beim Make-Target oldconfig fragt das Programm dabei alle Optionen ab, die in der als Basis genutzten Konfigurationsdatei nicht festgelegt sind. Wer sich damit nicht aufhalten will, drückt bei jeder Frage einfach die Enter-Taste, um die vorgegebene Antwort zu übernehmen – das ist in fast allen Fällen eine sinnvolle Einstellung. Wer die Parameter der von Localmodconfig angelegten Konfigurationsdatei noch beeinflussen will, der ruft nach dem Make-Aufruf noch eines der regulären Konfigurationsprogramme auf – etwa über die Make-Targets menuconfig oder xconfig.

Forum zum Thema

Kommentare

Infos zum Artikel

Kapitel
  1. Linux-Kernel maßgeschneidert
    1. Zuschneiden
  2. Übersetzen & Localyesconfig
23Kommentare
Kommentare lesen (23 Beiträge)
  1. Avatar
  2. Avatar
  3. Avatar
Anzeige

Anzeige

Anzeige