Der make localmodconfig
Befehl ist immer noch das richtige Werkzeug für den Job. In der Tat make localmodconfig
läuftscripts/kconfig/streamline_config.pl
.
Dateieingabe
Beim Lesen des streamline_config.pl
(Perl-) Quellcodes gibt es eine undokumentierte Funktion my $lsmod_file = $ENV{'LSMOD'};
, die anstelle der Ausgabe des lsmod
Befehls die Dateieingabe für die Erkennung geladener Module ermöglicht .
Live-CD
Weil localmodconfig die Ausgabe verwendet lsmod
, um die geladenen Module zu erkennen. Wir führen eine Ubuntu Live-CD auf jedem der verschiedenen Hardware-Setups aus, öffnen ein Terminal ( Ctrl+ Alt+ T), führen es aus lsmod
und speichern seine Ausgabe.
Ausgabe verketten
Durch Verketten der lsmod
Ausgabedateien beim Entfernen aufeinanderfolgender Kopfzeilen können Sie schnell eine Eingabedatei erstellen, die alle erforderlichen Kernelmodule abdeckt. Wir möchten die Modulliste von Hand überprüfen und ein manuelleres Rezept verwenden:
$ cd linux-3.11.0/
oder gehen Sie in das Verzeichnis, in dem Sie Ihren Befehl make ausführen
$ lsmod > lsmod.txt
Erstellt eine Textdatei mit Ihren geladenen Modulen
$ nano lsmod.txt
öffnet den Nano-Texteditor, natürlich können Sie Ihre Lieblingseditor-Anwendung verwenden
Hängen Sie die gewünschten Module, die noch nicht vorhanden sind, am Ende dieser Datei an (siehe Beispiel am Ende dieser Antwort) und speichern Sie sie, wenn Sie bereit sind.
Hinweis: Verwenden Sie Leerzeichen und keine Tabulatoren, um die Positionen der Spaltentabellen anzupassen.
$ make LSMOD="lsmod.txt" localmodconfig
Dadurch wird localmodconfig angewiesen, Ihre Datei lsmod.txt als Eingabe für die Erkennung geladener Module zu verwenden
In Bezug auf Steven Rostedt - den Autor von steamline_config.pl - für den Vorschlag einer kürzeren Notation in Schritt 5.
Beispiel für das Anhängen und nicht das Anhängen an lsmod.txt (Schritt 4):
Da die Intel D33217CK-Hauptplatine über Intel-Wärmesensoren verfügt, die wir gerne lesen würden, fügen wir folgende Zeilen hinzu:
x86_pkg_temp_thermal 13810 0
intel_powerclamp 14239 0
Wir möchten jedoch keine virtuellen Maschinen auf dieser Hardware ausführen. Deshalb überspringen wir die folgenden Zeilen:
kvm_intel 128218 0
kvm 364766 1 kvm_intel
Es hat einen Gibabit-Ethernet-Adapter von Apple (Broadcom) an seinen Thunderbolt-Port angeschlossen, daher fügen wir Folgendes hinzu:
tg3 152066 0
ptp 18156 1 tg3
pps_core 18546 1 ptp
Wir denken, wir brauchen keine Volumenspiegelung und fügen daher nicht hinzu:
dm_mirror 21715 0
dm_region_hash 15984 1 dm_mirror
dm_log 18072 2 dm_region_hash,dm_mirror
Außerdem benötigen wir keine Grafikausgabe (Text reicht auf einem Headless-Server aus), daher enthalten wir nicht:
i915 589697 3
i2c_algo_bit 13197 1 i915
drm_kms_helper 46867 1 i915
drm 242354 4 i915,drm_kms_helper
Für eine andere Maschine benötigen wir zusätzlich diesen Realtek-Ethernet-Treiber:
r8169 61434 0
mii 13654 1 r8169