Où sont stockées les options de construction du noyau actuelles?

23

Existe-t-il un moyen de savoir si le noyau a été compilé avec une certaine option activée (c'est-à-dire CONFIG_PROC_EVENTS=y) sans avoir à extraire le paquetage des sources du noyau et à chercher dans le fichier de configuration?

Alicia
la source

Réponses:

18

Si vous regardez dans votre /bootrépertoire, vous remarquerez ces fichiers:

$ 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

Notez la version du noyau que vous utilisez:

$ uname -r
2.6.35.14-106.fc14.x86_64

Si vous grepparcourez le uname -rfichier "config- " approprié , vous pouvez voir avec quelles options le noyau a été construit:

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

Les références

slm
la source
4
C'est vrai dans les distributions basées sur Debian, mais peut ne pas être vrai dans d'autres, c'est-à-dire Arch Linux.
Alicia
1
@ntrrgc - Je ne peux pas confirmer pour ArchLinux, mais c'est de cette façon pour RedHat, Debian et Ubuntu. Ces 3 distributions couvrent la plupart du monde * nix. Si quelqu'un a une distribution ArchLinux, pouvez-vous confirmer cette approche?
slm
4
J'utilise Arch Linux et je peux confirmer que cela ne fonctionne pas sous Arch Linux.
Alicia
@slm, ce n'est même pas vrai pour Ubuntu, du moins Kubuntu. Je viens de vérifier - la seule chose que j'ai dans /boot/est le grubrépertoire.
Hi-Angel
@slm est-ce que ces configurations font partie d'un paquet? Il suffirait alors de lister les fichiers de ce package.
Hi-Angel
14

Les options du noyau se trouvent dans /proc/config.gz.

zgrep CONFIG_PROC_EVENTS= /proc/config.gz

si le noyau a été compilé avec CONFIG_IKCONFIG_PROC=y.

Alicia
la source
6
Cela ne fonctionne que si le noyau est compilé avec l'ensemble CONFIG_IKCONFIG_PROC.
Bruce Ediger
1
Cela n'a fonctionné pour moi sur aucune des distributions disponibles: Debian, basé sur RedHat, ni Ubuntu. Ce sont tous des systèmes de stock, donc je ne pense pas que cette approche soit si utile à moins que vous ayez construit votre noyau vous-même ou que votre distribution particulière le fournisse.
slm
1
Dans les noyaux de distribution, l'option IKCONFIG peut être activée uniquement en tant que module. Essayez de modprobe configsvérifier si /proc/config.gz apparaît.
XZS
1

Si votre noyau a été construit avec CONFIG_IKCONFIG_PROC, vous pouvez trouver la configuration répertoriée dans/proc/config.gz

zless /proc/config.gz

Les packages de noyau basés sur Debian et Redhat installent généralement un config-$versionfichier dans /boot,

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

Dans Debian, vous pouvez également trouver les options par défaut dans kernel-package's ./kernel/Config/configainsi que les options de configuration spécifiques à l'architecture dans ./kernel/Config/.

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

sudo find / -xdev -name .config(-xdev le garde sur un système de fichiers)

En général, ce sera sous /usr/src/some-specific-kernel-header-version/.config

Il suffit de le lire comme n'importe quel texte, de rechercher avec grep ou de voir comment deux versions diffèrent diff -y -suppress-common-lines /path/linux2.6-r3/.config /path/linux2.6-r4/.config

Maximum d'énergie
la source