Dove posso trovare il file .config del kernel 11.04?


15

Sto usando Maverick con gli ultimi kernel disponibili su kernel.org e li sto costruendo da solo. Fino ad ora ho basato la mia configurazione sul kernel Maverick di serie e ho accettato le make oldconfigimpostazioni predefinite. Lo sto facendo per 3 versioni principali ora quindi immagino che sto iniziando a scivolare dietro l'attuale "standard".

Vorrei basare nuovamente i miei kernel sul nuovo .configfile Natty . È disponibile da qualche parte online o devo scaricare l'intero pacchetto del kernel ed estrarlo?

Modifica: ho inserito manualmente la configurazione dall'ultimo pacchetto del kernel Natty e posso confermare che probabilmente avrei dovuto farlo prima. Molte differenze tra la mia vecchia configurazione "evoluta" e l'impostazione predefinita di Natty. Ora, se solo potessi farlo senza 20 minuti di caccia e download del pacchetto in modo da poter rifare la base in futuro.

Risposte:



30

Ogni linux-imagepacchetto contiene il file di configurazione esatto con cui è stato creato /boot/config-*. Per vedere il file di configurazione per il kernel Linux attualmente in esecuzione, eseguire:

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

Ho verificato con le persone del kernel di Ubuntu (su Freenode #ubuntu-kernel) e hanno confermato la mia convinzione che non ci sia davvero " la configurazione", ma in realtà è costruita al momento della compilazione / compilazione includendo un numero di Kconfigfile; questi dipendono dall'architettura e dal target esatti (desktop / server / cloud). Dovresti essere in grado di leggere quella (breve) conversazione su:

Un elenco di quella varietà può essere trovato usando pacchetti.ubuntu.com e la seguente ricerca:

A caccia, in giro, sembrerebbe che .configsia incluso anche nei linux-headers-*pacchetti. Questi sono .debfile (che sono semplici .ararchivi che si apriranno con file-roller) e solo circa 800 kB ciascuno. Se conosci il target, l'architettura e la versione che stai cercando, puoi prenderli direttamente da Launchpad o dall'archivio stesso:

  1. archive.ubuntu.com/ubuntu/pool/main/l/linux/ linux-header-2.6 * .deb
  2. poi guarda dentro /usr/src/linux-headers-2.6*/.config

Se si desidera automatizzare l'intero processo in un solo comando, è possibile provare quanto segue; assicurati di tenere tutto su una riga!

Spero possa aiutare!


Grazie per aver studiato questo. Dopo aver letto l'irclog, non sembra che avrò quello che voglio senza un download significativo. Per quanto riguarda l'automazione, è ancora più semplice afferrare il pacchetto ed estrarlo /boot-config-*piuttosto che provare a emulare la procedura guidata che usano per autogenerarli in fase di compilazione. È un peccato che non ci sia modo di prendere un file da un pacchetto online (o c'è?)
Oli

Penso che lo farò in una domanda separata.
Oli


1

Repository del kernel di Ubuntu git

I debian/metadati che contengono le configurazioni e l'albero del kernel sono tracciati in un unico repository git per versione: http://kernel.ubuntu.com/git/ubuntu/ubuntu-bionic.git/

Il repository ha quindi un tag per ogni pacchetto del kernel, ad esempio nel mio Ubuntu 18.04, ho il pacchetto linux-image-4.15.0-36-generic, che suppongo corrisponda al tag:Ubuntu-4.15.0-36.39 .

https://help.ubuntu.com/community/Kernel/Compile spiega come compilare il kernel, e quindi come configurarlo e come le config vengono unite nella configurazione finale.

Le configurazioni sembrano essere tutte sotto le debian.master/config/ARCHquali contiene:

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

quindi immagino che linux-image-4.15.0-36-genericsi fonderanno config.common.ubuntu, config.common.amd64econfig.flavour.generic .

Lo script che esegue l'unione sembra essere debian / scripts / misc / kernelconfig e contiene il commento:

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

TODO: c'è anche un debian.master/config/annotations file che sembra contenere il valore di ogni configurazione per ogni arco, come viene utilizzato?

Qualcuno dovrebbe confermare tutto ciò eseguendo gli script di build in modalità dettagliata in qualche modo, ma ora sono pigro, puoi costruire con:

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

Ho quindi confermato che questo produce esattamente la stessa configurazione che ho localmente:

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

Nota che il repository git del kernel Ubuntu ha anche migliaia di patch su Linux upstream, quindi ottenere la giusta configurazione non sarà sufficiente per riprodurre il comportamento.

Possiamo anche verificare tre volte che il kernel che abbiamo creato corrisponda a quello impacchettato guardando l'inizio del dmesgboot, che contiene:

[    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 .deb

Come menzionato da altri, la configurazione completa finale è presente anche sotto:

/boot/config-4.15.0-36-generic

che corrispondono a ciascuna immagine del kernel Linux:

/boot/vmlinuz-4.15.0-36-generic

Quindi, per altre versioni, possiamo trovare da quale pacchetto provengono:

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

che dà:

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

e quindi puoi semplicemente scaricare .debda https://packages.ubuntu.com/bionic-updates/linux-modules-4.15.0-36-generic ed estrarlo per ottenere la configurazione:

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

Testato su Ubuntu 18.04.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.