¿Dónde se almacenan las opciones actuales de compilación del núcleo?

23

¿Hay alguna manera de saber si el núcleo se compiló con una determinada opción activada (es decir CONFIG_PROC_EVENTS=y) sin tener que extraer el paquete de fuentes del núcleo y buscar en el archivo de configuración?

Alicia
fuente

Respuestas:

18

Si mira a través de su /bootdirectorio, notará estos archivos:

$ 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

Observe qué versión del Kernel está usando:

$ uname -r
2.6.35.14-106.fc14.x86_64

Si greputiliza el uname -rarchivo "config- " apropiado , puede ver con qué opciones se creó el Kernel:

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

Referencias

slm
fuente
44
Eso es cierto en las distribuciones basadas en Debian, pero puede no ser cierto en otros, es decir, Arch Linux.
Alicia
1
@ntrrgc: no puedo confirmar para ArchLinux, pero es así para RedHat, Debian y Ubuntu. Estas 3 distribuciones cubren la mayor parte del mundo * nix. Si alguien tiene una distribución ArchLinux, ¿puede confirmar este enfoque?
slm
44
Uso Arch Linux y puedo confirmar que esto no funciona en Arch Linux.
Alicia
@slm esto ni siquiera es cierto para Ubuntu, al menos Kubuntu. Acabo de comprobar, lo único que tengo /boot/es el grubdirectorio.
Hola Angel
¿@slm quizás son estas configuraciones parte de algún paquete? Entonces sería suficiente enumerar los archivos de ese paquete.
Hola Angel
14

Las opciones del kernel se pueden encontrar en /proc/config.gz.

zgrep CONFIG_PROC_EVENTS= /proc/config.gz

si el núcleo fue compilado con CONFIG_IKCONFIG_PROC=y.

Alicia
fuente
66
Esto solo funciona si el núcleo se compila con el conjunto CONFIG_IKCONFIG_PROC.
Bruce Ediger
1
Esto no funcionó para mí en ninguna de las distribuciones que tenía disponibles: Debian, basado en RedHat, ni Ubuntu. Todos estos son sistemas de valores, por lo que no creo que este enfoque sea tan útil a menos que usted mismo haya creado su núcleo o su distribución particular lo proporcione.
slm
1
En los núcleos de distribución, la opción IKCONFIG puede habilitarse solo como un módulo. Intente modprobe configsy compruebe si aparece /proc/config.gz.
XZS
0

Si su kernel fue construido con CONFIG_IKCONFIG_PROC, puede encontrar la configuración en la lista/proc/config.gz

zless /proc/config.gz

Debian y RedHat paquetes del núcleo basados generalmente instalar un config-$versionarchivo en /boot,

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

En Debian también puede encontrar las opciones predeterminadas en kernel-package's ./kernel/Config/configasí como las opciones de configuración específicas de la arquitectura en ./kernel/Config/.

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

sudo find / -xdev -name .config(-xdev lo mantiene en un sistema de archivos)

Generalmente será bajo /usr/src/some-specific-kernel-header-version/.config

Simplemente léalo como cualquier texto, busque con grep o vea cómo difieren dos versiones diff -y -suppress-common-lines /path/linux2.6-r3/.config /path/linux2.6-r4/.config

Máximo poder
fuente