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 install
for 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 menuconfig
desta 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_TREE
para o diretório onde estão suas fontes. Verhttps://unix.stackexchange.com/a/147700/37538para referência.