Wie konfiguriere ich einen Linux-Kernel basierend auf den aktuell verwendeten Modulen?

15

Ich bin bereit, einen minimalen Kernel mit nur den für meine Maschine erforderlichen Dingen zu erstellen. Also begann ich damit, den Kernel von Grund auf zu kompilieren, die Standardkonfiguration zu verwenden und Dinge hinzuzufügen, von denen ich sicher bin, dass ich sie habe (z. B. Ethernet-Karte, WiFi-Karte, ...).

Aber es gibt noch einige andere Dinge, die nicht so einfach zu wissen sind (z. B. den Watchdog-Timer), und so bin ich auf AutoKernConf gestoßen, das angeblich die Hardware des Computers erkennt und eine Kernel-Konfigurationsdatei mit den Einstellungen für die gefundenen Geräte generiert.

Das Problem ist, dass mehrere Einstellungen wiederholt wurden und sogar einige, die ich nicht habe (ich verwende einen Dell-Laptop und eines der Dinge, die es "gefunden" hat, war so etwas wie eine Toshiba-Einstellung).

Also habe ich einen Kernel mit der Konfiguration erstellt, die aus dem make allmodconfigBefehl hervorgegangen ist. Dies ist ein Kernel, bei dem die meisten Dinge als Module kompiliert sind.

Wenn lsmodich in diesen Kernel boote und ihn ausführe, sehe ich alle verwendeten Kernelmodule (die wirklich benötigten) und möchte wissen, ob es ein Tool oder eine Möglichkeit gibt, diese Liste zu analysieren und in die entsprechende Kernelkonfiguration zu konvertieren Datei.

Oder wie man jeden mit den entsprechenden Optionen im Kernel zuordnet, damit ich sie manuell einstellen kann.

Vielen Dank für Ihre Zeit.

Carla
quelle

Antworten:

19

Wenn Sie Linux 2.6.32 und höher verwenden, sollten Sie das Make-Ziel "localmodconfig" überprüfen. Es macht so ziemlich das, was Sie fragen - es bestimmt, welche Module Sie ausführen, und generiert eine .config, die sicherstellt, dass diese Module erstellt werden. Das Ziel "localyesconfig" kompiliert diese Module statisch in den Kernel, anstatt Module zu erstellen.

Weitere Informationen finden Sie hier: Einfache lokale Kernelkonfiguration .

Samat Jain
quelle
Vielen Dank, ich habe eine 2.6.33-Variante verwendet, damit ich dieses Ziel verwenden kann.
Carla