Woher bekomme ich die .config-Datei für den 11.04-Kernel?

15

Ich verwende Maverick mit den neuesten verfügbaren Kerneln auf kernel.org und erstelle sie selbst. Bis jetzt habe ich meine Konfiguration auf den Standard-Maverick-Kernel gestützt und die make oldconfigStandardeinstellungen akzeptiert . Ich mache das jetzt für 3 Hauptversionen, also schätze ich, dass ich langsam hinter dem aktuellen "Standard" zurückfalle.

Ich möchte meinen Kernel aus der neuen Natty- .configDatei neu erstellen. Ist dies irgendwo online verfügbar oder muss ich das gesamte Kernelpaket herunterladen und extrahieren?

Bearbeiten: Ich habe die Konfiguration manuell aus dem neuesten Natty-Kernel-Paket gezogen und kann bestätigen, dass ich dies wahrscheinlich früher hätte tun sollen. Viele Unterschiede zwischen meiner alten "entwickelten" Konfiguration und der Natty-Standardeinstellung. Wenn ich das jetzt ohne 20 Minuten Jagen und Herunterladen des Pakets machen könnte, kann ich es in Zukunft wieder aufbauen.

Oli
quelle

Antworten:

30

Jedes linux-imagePaket enthält die genaue Konfigurationsdatei, mit der es erstellt wurde /boot/config-*. Gehen Sie wie folgt vor, um die Konfigurationsdatei für den aktuell ausgeführten Linux-Kernel anzuzeigen:

  • less /boot/config-$(uname -r)

Ich habe mich bei den Ubuntu-Kernel-Leuten (auf Freenode #ubuntu-kernel) erkundigt und sie haben meine Überzeugung bestätigt, dass es nicht wirklich " die Konfiguration" gibt, aber sie wird tatsächlich zur Erstellungs- / Kompilierungszeit erstellt, indem eine Reihe von KconfigDateien eingeschlossen werden. Diese hängen von der genauen Architektur und dem Ziel ab (Desktop / Server / Cloud). Sie sollten diese (kurze) Konversation lesen können unter:

Eine Liste dieser Sorte kann mit packages.ubuntu.com und der folgenden Suche gefunden werden:

Bei der Jagd scheint es, dass das .configauch in den linux-headers-*Paketen enthalten ist. Hierbei handelt es sich um .debDateien (einfache .arArchive, die geöffnet werden file-roller) mit jeweils nur ca. 800 kB. Wenn Sie das Ziel, die Architektur und die Version kennen, die Sie suchen, können Sie diese direkt aus Launchpad oder dem Archiv selbst abrufen:

  1. archive.ubuntu.com/ubuntu/pool/main/l/linux/ linux-header-2.6 * .deb
  2. dann schau rein /usr/src/linux-headers-2.6*/.config

Wenn Sie den gesamten Prozess in einem Befehl automatisieren möchten, können Sie Folgendes versuchen: Stellen Sie sicher, dass Sie alles in einer Zeile halten!

Ich hoffe, das hilft!

sladen
quelle
Vielen Dank für Ihre Untersuchung. Nachdem ich den Irclog gelesen habe, sehe ich nicht so aus, als würde ich ohne nennenswerten Download bekommen, was ich will. Automatisierungstechnisch ist es immer noch einfacher, das Paket /boot-config-*zu erfassen und zu extrahieren, als zu versuchen, die Assistenten zu emulieren, mit denen sie beim Erstellen automatisch generiert werden. Es ist eine Schande, dass es keine Möglichkeit gibt, eine Datei aus einem Paket online abzurufen (oder gibt es?)
Oli
Ich denke, ich werde das in einer separaten Frage stellen.
Oli
4

Auf meinem Ubuntu 11.10-System befindet sich die Kernel-Konfiguration in der Datei '/boot/config-3.0.0-12-generic'.

Marat BN
quelle
1
Die Frage ist für 11.04, nicht 11.10.
Christopher Kyle Horton
1

Ubuntu Git-Kernel-Repository

Die debian/Metadaten, die die Configs und den Kernelbaum enthalten, werden in einem einzigen Git-Repository pro Release nachverfolgt: http://kernel.ubuntu.com/git/ubuntu/ubuntu-bionic.git/

Der Repo hat dann einen Tag für jedes Kernel - Paket, zum Beispiel in meinem Ubuntu 18.04, habe ich das Paket linux-image-4.15.0-36-generic, das ich entspricht den Tag bin zu raten: Ubuntu-4.15.0-36.39.

https://help.ubuntu.com/community/Kernel/Compile erklärt, wie der Kernel kompiliert wird und wie er konfiguriert wird und wie die Konfigurationsdateien in die endgültige Konfiguration eingefügt werden.

Die Configs scheinen alle unter debian.master/config/ARCHdenen zu sein:

config.common.ubuntu
config.common.ports
amd64/config.common.amd64
amd64/config.flavour.generic
amd64/config.flavour.lowlatency

Ich vermute also, dass linux-image-4.15.0-36-genericdas verschmelzen wird config.common.ubuntu, config.common.amd64und config.flavour.generic.

Das Skript, das das Zusammenführen durchführt, scheint debian / scripts / misc / kernelconfig zu sein und enthält den Kommentar:

# Merge configs
# We merge config.common.ubuntu + config.common.<arch> +
# config.flavour.<flavour>

TODO: Es gibt auch eine debian.master/config/annotationsDatei, die den Wert für jede Konfiguration für jeden Bogen zu enthalten scheint. Wie wird das verwendet?

Jemand sollte das alles bestätigen, indem er Build-Skripte im ausführlichen Modus ausführt, aber ich bin faul, Sie können mit Folgendem arbeiten:

git clone git://kernel.ubuntu.com/ubuntu/ubuntu-bionic.git linux
cd linux
git checkout Ubuntu-4.15.0-36.39
fakeroot debian/rules clean
debian/rules updateconfigs
fakeroot debian/rules build-generic

Ich habe dann bestätigt, dass dies genau die gleiche Konfiguration erzeugt, die ich lokal habe:

diff debian/build/build-generic/.config /boot/config-4.15.0-36-generic

Beachten Sie, dass der Ubuntu-Kernel-Git-Repo auch Tausende von Patches auf Linux-Upstreams enthält. Daher reicht es nicht aus, die richtige Konfiguration zu verwenden, um das Verhalten zu reproduzieren.

Wir können auch überprüfen, ob der Kernel, den wir erstellt haben, mit dem gepackten Kernel übereinstimmt, indem wir uns den Start des dmesgBootes ansehen, der Folgendes enthält:

[    0.000000] Linux version 4.15.0-36-generic (buildd@lgw01-amd64-031) (gcc version 7.3.0 (Ubuntu 7.3.0-16ubuntu3)) #39-Ubuntu SMP Mon Sep 24 16:19:09 UTC 2018 (Ubuntu 4.15.0-36.39-generic 4.15.18)

Config in der .deb

Wie von anderen erwähnt, ist die endgültige vollständige Konfiguration auch verfügbar unter:

/boot/config-4.15.0-36-generic

die jedem Linux-Kernel-Image entsprechen:

/boot/vmlinuz-4.15.0-36-generic

Für andere Versionen können wir also herausfinden, aus welchem ​​Paket diese stammen:

dpkg -S /boot/config-4.15.0-36-generic

was gibt:

linux-modules-4.15.0-36-generic: /boot/config-4.15.0-36-generic

und dann können Sie einfach die .debvon https://packages.ubuntu.com/bionic-updates/linux-modules-4.15.0-36-generic herunterladen und extrahieren, um die Konfiguration zu erhalten:

mkdir config
cd config
wget http://mirrors.kernel.org/ubuntu/pool/main/l/linux/linux-modules-4.15.0-36-generic_4.15.0-36.39_amd64.deb
ar x linux-modules-4.15.0-36-generic_4.15.0-36.39_amd64.deb
tar -xvf data.tar.xz
cat ./boot/config-4.15.0-36-generic

Getestet in Ubuntu 18.04.

Ciro Santilli ist ein Schauspieler
quelle