Como eu mudo o diretório de módulos que o kernel procura?

1

Eu sou novo em reconstruir o kernel e os módulos do kernel, por isso peço desculpas se esta é uma pergunta ruim.

Estou executando o Centos 6.8, 2.6.32.642.el6.x86_64. Eu estou tentando aprender sobre drivers de dispositivo e tal, e meu texto de referência começa com a reconstrução do kernel. As instruções parecem meio desatualizadas, então também estive pesquisando no Google.

Eu reconstruí o kernel, com uma pequena alteração para main.c Então movi o bzImage resultante para o diretório de inicialização:

cp arch/x86/boot/bzImage /boot/vmlinuz-2.6.32-custom.el6.x86_64

Em seguida, adicionei uma entrada ao arquivo etc / grub.conf, que é idêntica à que já existe, mas com o nome diferente do kernel.

Eu então reinicio, e na reinicialização, eu recebo um kernel panic, que indica que ele não pode encontrar modules.dep em /lib/modules/2.6.32

Mas tudo que li indica que os módulos devem estar localizados em /lib/modules/2.6.32-custom.el6.x86_64,

Então, para tentar isso, eu criei um link para /lib/modules/2.6.32-642.el6.x86_64 para /lib/modules/2.6.32-custom.el6.x86_64:

ln -s /lib/modules/2.6.32-642.el6.x86_64 /lib/modules/2.6.32-642.el6.x86_64 

mas, como esperado, não corrigiu o erro, porque ele (o kernel?) está procurando em /lib/modules/2.6.32/ em vez de /lib/modules/2.6.32-custom.el6_x86_64

A minha pergunta é: onde o kernel deve procurar módulos e / ou como alterá-lo, e / ou o que o leva a procurar onde está procurando?

    
por Jotorious 19.08.2017 / 03:28

1 resposta

0

Ele obtém a versão do Makefile na raiz da árvore de origem do kernel, concatenando VERSION e EXTRAVERSION juntos (essa é uma parte padrão da compilação do kernel). Isso se torna o nome do subdiretório usado para localizar os módulos. Os RPMs do kernel da Red Hat são construídos usando o programa rpmbuild, que coloca a EXTRAVERSÃO correta no arquivo durante o processo de compilação. Você pode querer construir seu kernel personalizado dessa maneira. Caso contrário, você terá que editar o Makefile e aplicar todos os patches manualmente.

    
por 22.08.2017 / 23:10