Erro “Módulos não encontrados” durante a instalação do kernel

Erro “Módulos não encontrados” durante a instalação do kernel

Eu tenho uma pergunta sobre a instalação do kernel. Baixei uma nova versão do net-next kernel source e executei as seguintes etapas:

  • make allyesconfig
  • make -j16
  • make modules_install
  • make install

O problema é que quando tento executar make install, recebo um erro "módulos não encontrados". Estou confuso aqui, pois outra pessoa conseguiu criar o kernel com o mesmo procedimento e eu não consigo fazer o mesmo (ambos temos permissão de root). Preciso fazer algo extra para garantir que esses módulos estejam visíveis/disponíveis?

Responder1

Quando make installfor invocado, ele invocará um script específico da distribuição para construir o initrd.img, este script irá procurar todos os módulos exigidos por esta distribuição, mas como você acabou de compilar todos os módulos no kernel como integrados via make allyesconfig, o script falha ao pesquisar módulos.

Não consigo reproduzir seu problema agora, lembro que "módulos não encontrados" são apenas avisos, sempre ignoro porque o initrd.img foi compilado com sucesso e o novo kernel foi inicializado com sucesso. Se você falhar em "módulos não encontrados", você deve reconfigurar esses módulos de módulos integrados para módulos carregáveis ​​reais manualmente make menuconfigdesta maneira: a mensagem "módulos não encontrados" contém o nome do módulo, use o nome para pesquisar Makefiles para descobrir qual CONFIG_XXX, e transformar esse CONFIG_XX em =m.

Por fim, se você deseja apenas um kernel recém-construído, sugiro que você use a configuração da distribuição make allyesconfig:

cd your_kernel_src
cp /boot/your_distribution_config .config
make menuconfig             # can exit it directly with nothing changed
make -j16
make modules_install
make install
# update the grub, if it is required for your distribution.

Responder2

Você compilou o kernel com plain make, mas não com os módulos. Correr make -j16 all modules.

Responder3

Você precisa ter certeza de que o conjunto de ferramentas conhece a árvore de origem do kernel com a qual você está trabalhando. Você deve definir a variável de ambiente KERNEL_TREEpara o diretório onde estão suas fontes. Verhttps://unix.stackexchange.com/a/147700/37538para referência.

informação relacionada