Onde estão armazenadas as opções atuais de compilação do kernel?

23

Existe uma maneira de saber se o kernel foi compilado com uma certa opção ativada (ou seja CONFIG_PROC_EVENTS=y) sem ter que retirar o pacote de fontes do kernel e procurar no arquivo de configuração?

Alicia
fonte

Respostas:

18

Se você procurar no seu /bootdiretório, notará estes arquivos:

$ 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 qual versão do Kernel você está usando:

$ uname -r
2.6.35.14-106.fc14.x86_64

Se você greppassar pelo uname -rarquivo " config-" apropriado, poderá ver com quais opções o Kernel foi construído:

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

Referências

slm
fonte
4
Isso é verdade nas distribuições baseadas no Debian, mas pode não ser verdade em outras, como o Arch Linux.
Alicia
1
@ntrrgc - Não posso confirmar para o ArchLinux, mas é assim para RedHat, Debian e Ubuntu. Essas três distribuições cobrem a maior parte do mundo * nix. Se alguém tiver uma distribuição do ArchLinux, você pode confirmar esta abordagem?
Slm
4
Eu uso o Arch Linux e posso confirmar que isso não funciona no Arch Linux.
Alicia
@ slm isso nem é verdade para o Ubuntu, pelo menos o Kubuntu. Acabei de verificar - a única coisa que tenho /boot/é o grubdiretório.
Hi-Angel
@slm talvez essas configurações façam parte de algum pacote? Então, basta listar os arquivos desse pacote.
Hi-Angel
13

As opções do kernel podem ser encontradas em /proc/config.gz.

zgrep CONFIG_PROC_EVENTS= /proc/config.gz

se o kernel foi compilado com CONFIG_IKCONFIG_PROC=y.

Alicia
fonte
6
Isso funciona apenas se o kernel for compilado com o conjunto CONFIG_IKCONFIG_PROC.
precisa
1
Isso não funcionou para mim em nenhuma das distribuições que eu tinha disponível: Debian, RedHat, nem Ubuntu. Estes são todos os sistemas de estoque, então eu não acho que essa abordagem seja útil, a menos que você construa seu kernel por conta própria ou por sua distribuição específica.
Slm
1
Nos kernels de distribuição, a opção IKCONFIG pode ser ativada apenas como um módulo. Tente modprobe configsverificar se /proc/config.gz aparece.
XZS 5/09
0

Se seu kernel foi construído CONFIG_IKCONFIG_PROC, você pode encontrar a configuração listada em/proc/config.gz

zless /proc/config.gz

Pacotes de kernel baseados no Debian e Redhat geralmente instalam um config-$versionarquivo /boot,

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

No Debian você também pode encontrar as opções padrão em kernel-package's ./kernel/Config/config, bem como opções de configuração específicas da arquitetura em ./kernel/Config/.

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

sudo find / -xdev -name .config(-xdev mantém em um sistema de arquivos)

Geralmente estará sob /usr/src/some-specific-kernel-header-version/.config

Basta ler como qualquer texto, pesquisar com grep ou ver como as duas versões diferem diff -y -suppress-common-lines /path/linux2.6-r3/.config /path/linux2.6-r4/.config

Poder maximo
fonte