Como encontrar a origem de um kernel atualmente em execução na minha máquina?

2

Eu tenho um Linux 3.14.0 kernel(CentOS 6.2) em execução na minha máquina, mas a fonte não está em /usr/src/ .

Existe alguma maneira de descobrir a fonte a partir da qual foi compilado?

A fonte está definitivamente em algum lugar na máquina, foi compilada por um dos meus colegas. Além disso, essas máquinas de laboratório não estão conectadas à Internet, portanto, o código-fonte precisa ser copiado e instalado manualmente.

Eu só preciso localizá-lo com base na imagem atual do kernel.

    
por Stark07 23.09.2014 / 09:52

1 resposta

3

/lib/modules/$(uname -r)/source deve ser um link simbólico para a árvore de origem do kernel (se ela foi instalada de maneira razoável).

Além disso

find / -type d -name "linux-3.14.0"

irá procurar pelo diretório de distribuição do kernel do Linux 3.14.0 - que é aquele que você obtém quando descompacta o tarball. Se isso falhar,

find / -type d -name "linux-*"
find / -type f -name "Kbuild"

não deve lhe dar muitos falsos positivos.

Se você precisar compilá-lo, então você pode transferir os fontes para a máquina e fazer isso do zero, desde que ele tenha compilado com .config (a opção CONFIG_IKCONFIG ). Você pode extrair isso de /proc/config.gz (se suportado pelo kernel - veja a opção CONFIG_IKCONFIG_PROC ), ou com o script scripts/extract-ikconfig do diretório fonte do kernel.

Além disso, está pedindo ao seu colega totalmente fora de questão?

    
por 23.09.2014 / 10:04

Tags