Dove sono archiviate le opzioni di build del kernel correnti?


23

C'è un modo per sapere se il kernel è stato compilato con una determinata opzione attivata (cioè CONFIG_PROC_EVENTS=y) senza dover estrarre il pacchetto dei sorgenti del kernel e guardare nel file di configurazione?

Risposte:


18

Se guardi attraverso la tua /bootdirectory noterai questi file:

$ ls -l /boot/|grep config
-rw-r--r--  1 root root   109919 Oct 21  2011 config-2.6.35.14-100.fc14.x86_64
-rw-r--r--  1 root root   109919 Oct 27  2011 config-2.6.35.14-103.fc14.x86_64
-rw-r--r--  1 root root   109919 Nov 23  2011 config-2.6.35.14-106.fc14.x86_64

Nota quale versione del kernel stai usando:

$ uname -r
2.6.35.14-106.fc14.x86_64

Se grepattraverso il uname -rfile "config- " appropriato puoi vedere con quali opzioni è stato creato il kernel:

$ grep CONFIG_PROC_EVENTS= /boot/config-`uname -r`
CONFIG_PROC_EVENTS=y

Riferimenti


4
Questo è vero nelle distribuzioni basate su Debian, ma potrebbe non essere vero in altri, ad esempio Arch Linux.
Alicia,

1
@ntrrgc - Non posso confermare per ArchLinux, ma è così per RedHat, Debian e Ubuntu. Queste 3 distro coprono la maggior parte del mondo * nix. Se qualcuno ha una distribuzione ArchLinux, per favore, può confermare questo approccio?
slm

4
Uso Arch Linux e posso confermare che non funziona in Arch Linux.
Alicia,

@slm questo non è nemmeno vero per Ubuntu, almeno Kubuntu. Ho appena controllato - l'unica cosa che ho dentro /boot/è la grubdirectory.
Ciao-Angelo,

@slm forse queste configurazioni fanno parte di alcuni pacchetti? Quindi sarebbe sufficiente elencare i file di quel pacchetto.
Ciao-Angelo,

14

Le opzioni del kernel sono disponibili in /proc/config.gz.

zgrep CONFIG_PROC_EVENTS= /proc/config.gz

se il kernel è stato compilato CONFIG_IKCONFIG_PROC=y.


6
Funziona solo se il kernel è compilato con il set CONFIG_IKCONFIG_PROC.
Bruce Ediger,

1
Questo non ha funzionato per me in nessuna delle distro che avevo a disposizione: Debian, basato su RedHat, né Ubuntu. Questi sono tutti sistemi stock quindi non penso che questo approccio sia così utile a meno che tu non abbia compilato il kernel da solo o la tua particolare distribuzione non lo fornisca.
slm

1
Nei kernel di distro, l'opzione IKCONFIG può essere abilitata solo come modulo. Prova amodprobe configs controllare se /proc/config.gz appare.
XZS,

0

Se il tuo kernel è stato compilato CONFIG_IKCONFIG_PROC, puoi trovare la configurazione elencata in/proc/config.gz

zless /proc/config.gz

I pacchetti del kernel basati su Debian e Redhat generalmente installano un config-$versionfile in /boot,

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

In Debian puoi anche trovare le opzioni predefinite in kernel-package 's ./kernel/Config/configcosì come le opzioni di configurazione specifica architettura in ./kernel/Config/.

mkdir /tmp/k
cd /tmp/k
apt-get source kernel-package
find . -path '*/kernel/Config/*' -type f

-1

sudo find / -xdev -name .config(-xdev lo mantiene su un file system)

Generalmente sarà sotto /usr/src/some-specific-kernel-header-version/.config

Basta leggerlo come qualsiasi testo, cercare con grep o per vedere come differiscono due versioni diff -y -suppress-common-lines /path/linux2.6-r3/.config /path/linux2.6-r4/.config

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.