Questão Obtém a configuração do kernel do sistema Linux atualmente em execução?


Eu apaguei acidentalmente meu .config para minha configuração de kernel no Linux, e parece que lembro que havia uma maneira de recuperar a configuração do kernel através do sistema de arquivos proc de alguma forma.

Isso ainda é possível, e se sim, como eu faria isso?


92


origem


@Sonny Ordell: Agora existem duas respostas válidas. Você pode aceitar um deles? - Hennes
@Hennes Usuário não está online desde Jun 27 '11 at 16:19. Não pense que ele aceitará alguma coisa. - DanteTheEgregore
superuser.com/questions/577307/… || askubuntu.com/questions/163304/… || stackoverflow.com/questions/14376540/… || unix.stackexchange.com/questions/83319/… || serverfault.com/questions/51032/… - Ciro Santilli 新疆改造中心 六四事件 法轮功


Respostas:


Dependendo do seu sistema, você encontrará em qualquer um destes:

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

e possivelmente mais lugares.


91



Em algumas distros (Fedora / Redhat) é /boot/config-2.6.18-194.el5 ou similar, com a string de lançamento do kernel anexada. - Phil
@Phil Eu corro uma distro (Zenwalk) onde esses nomes de arquivos são linkados pelo pacote do kernel mais recente para /boot/config. Eu vou em frente e adiciono estes à lista - obrigado por me lembrar. - new123456
em / boot / config - $ (uname -r) para amazon linux e provavelmente RHEL - aeb0
Não existem tais arquivos no Ubuntu Mate ou no Kali Linux para o RaspBerry Pi. - Sopalajo de Arrierez
Você deve mencionar que seu primeiro item (/ proc) só está disponível se o módulo "configs" estiver carregado - Andy


Para um kernel em execução, uma maneira de obter o arquivo de configuração é

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

ou,

zcat /proc/config.gz > running.config

Então running.config irá conter a configuração do kernel linux em execução.

No entanto, isto só é possível se o seu kernel Linux estiver configurado para ter /proc/config.gz. A configuração para isso é encontrada em

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

A maioria das distribuições não possui esse conjunto de configurações. Eles fornecem arquivos de configuração do kernel em seus pacotes do kernel e geralmente são encontrados em /boot/ diretório.


48



Estes são conhecidos como CONFIG_IKCONFIG e CONFIG_IKCONFIG_PROC, se você está procurando por eles. - chronospoon
zcat /proc/config.gz funciona bem. - Quanlong


Um pouco atrasado, mas talvez ajude alguém. Eu não tive /proc/config.gz nem /boot/config nem /boot/config-$(uname -r) no meu computador. Eu tive que correr modprobe configs como root. Então, /proc/config.gz estava presente


30



Pode confirmar no Linux Intel embarcado MIC (BusyBox), isso é necessário e funciona. - Mark Lakata
Mesmo para Raspbian em Raspberry Pi 2 - Drew McGowen
FATAL: Module configs not found. no OMV 2.2 (Debian Wheezy) tão feliz que eles forneceram em / boot / config - $ (uname -r) - tuk0z
Você senhor, salvou meu dia. Tem um +1 - Christian


Se você não conseguiu encontrar a configuração do kernel em / boot / nem em /proc/config.gz, você pode tentar extrair esta informação do próprio kernel.

Dentro de qualquer código-fonte do kernel há um script para extrair a configuração localizada em scripts/extract-ikconfig, passe o kernel que você quer sua configuração como parâmetro para este script.

Esta solução só funcionará se Kernel .config support foi ativado no kernel compilado.


7



Isso foi extremamente útil e me ajudou a obter muitas configurações que eu não esperava ver. Obrigado! - selurvedu