Ottenere la configurazione del kernel dal sistema Linux attualmente in esecuzione?


104

Ho accidentalmente cancellato il mio .config per la mia configurazione del kernel su Linux e sembra ricordare che in qualche modo ci fosse un modo per recuperare la configurazione del kernel tramite il filesystem proc.

È ancora possibile, e se sì, come lo farei?


@Sonny Ordell: ora ci sono due risposte valide. Riesci ad accettarne uno?
Hennes,

3
@Hennes L'utente non è più online da allora Jun 27 '11 at 16:19. Non pensare che accetterà nulla.
DanteTheEgregore,

Risposte:


107

A seconda del tuo sistema, lo troverai in uno di questi:

  1. /proc/config.gz
  2. /boot/config
  3. /boot/config-$(uname -r)

e forse più posti.


4
In alcune distro (Fedora / Redhat) è /boot/config-2.6.18-194.el5 o simile, con la stringa di rilascio del kernel aggiunta.
Phil

1
@Phil Eseguo una distro (Zenwalk) in cui quei nomi di file sono collegati in modo simbolico dall'ultimo pacchetto del kernel a /boot/config. Vado avanti e li aggiungo all'elenco, grazie per avermelo ricordato.
nuovo123456,

in / boot / config - $ (uname -r) per amazon linux e probabilmente RHEL
aeb0

1
File non esistenti su Ubuntu Mate o Kali Linux per RaspBerry Pi.
Sopalajo de Arrierez,

1
Dovresti dire che il tuo primo oggetto (/ proc) è disponibile solo se il modulo "configs" è caricato
Andy,

54

Per un vero kernel in esecuzione, un modo per ottenere il file di configurazione è

cat /proc/config.gz | gunzip > running.config

o,

zcat /proc/config.gz > running.config

Quindi running.configconterrà la configurazione del kernel Linux in esecuzione.

Tuttavia questo è possibile solo se il tuo kernel Linux in esecuzione è stato configurato per avere /proc/config.gz. La configurazione per questo si trova in

  • General setup
    • [*] Kernel .config support
      • [*] Enable access to .config through /proc/config.gz

La maggior parte delle distribuzioni non ha questo set di configurazione. Forniscono i file di configurazione del kernel nei loro pacchetti del kernel e di solito si trovano nella /boot/directory.


5
Questi sono conosciuti come CONFIG_IKCONFIGe CONFIG_IKCONFIG_PROC, se li stai cercando.
Chronospoon,

2
zcat /proc/config.gzfunziona bene.
Quanlong,

35

Un po 'in ritardo ma forse aiuta qualcuno. Non ho avuto /proc/config.gz/boot/config/boot/config-$(uname -r)sul mio computer. Ho dovuto correre modprobe configscome root. Quindi, /proc/config.gzera presente


Può confermare su Intel MIC embedded Linux (BusyBox), questo è necessario e funziona.
Mark Lakata,

4
Lo stesso vale per Raspbian su Raspberry Pi 2
Drew McGowen il

2
FATAL: Module configs not found.su OMV 2.2 (Debian Wheezy) così felice di averlo fornito in / boot / config - $ (uname -r)
tuk0z,

Signore, mi ha salvato la giornata. Prendi un +1
Christian,

'modprobe configs' è molto utile Ho avuto dei test che sondavano automaticamente kconfig che fallivano su un Raspberry Pi 3, ma ora funzionano. Grazie per il consiglio!!
Tim Bird

9

Se non riesci a trovare la configurazione del kernel in / boot / né in /proc/config.gz, puoi provare a estrarre queste informazioni dal kernel stesso.

All'interno di qualsiasi codice sorgente del kernel è presente uno script per l'estrazione della configurazione scripts/extract-ikconfig, passare il kernel che si desidera configurare come parametro per questo script.

Questa soluzione funzionerà solo se è Kernel .config supportstata abilitata nel kernel compilato.


2
Questo è stato estremamente utile e mi ha aiutato a ottenere molte configurazioni che non mi aspettavo di vedere. Grazie!
selurvedu,

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.