Inicializando um kernel Linux recém-compilado

Inicializando um kernel Linux recém-compilado

Comecei a ler o livro Essential Linux Device Drivers. Estou seguindo o processo de compilação e inicialização em um novo kernel. No entanto, não consigo inicializar no kernel recém-compilado - seleciono o novo kernel no grub e então ..nada... a tela permanece a mesma.

Aqui estão as etapas que estou executando, conforme descrito no livro (estou usando o kernel 2.6.24, pois é nele que o livro se baseia):

cd /usr/src/linux-2.6.24 # the base dir of the kernel I downloaded
make clean
cp arch/x86/configs/i386_defconfig .config
make bzImage
cp arch/x86/boot/bzImage /boot/vmlinuz

O livro diz que:

Pode ser necessário alertar seu gerenciador de inicialização sobre a chegada da nova imagem de inicialização. Se você estiver usando o bootloader GRUB, ele descobrirá isso automaticamente.

Bem, no meu caso não foi resolvido automaticamente, pois não havia opção para selecionar este kernel no GRUB. Então fiz isso manualmente digitando update-grub no terminal. E isso também não funcionou. No entanto, uma vez que mudei o nome do arquivo de vmlinuz para vmlinuz-2.6.24 e digite update-grub, ele o pegou. Portanto, na página 11 do livro parece já haver várias coisas deixadas de fora.

O livro diz para reiniciar a máquina.

De qualquer forma, agora posso selecionar este kernel no GRUB, mas como disse acima ele não inicializa corretamente, a tela fica em branco e nunca muda. Então estou faltando alguma coisa? Eu segui exatamente as instruções do livro. Já gastei 50€ neste livro e agora não consigo passar da página 11 por causa deste problema.

Presumo que o fato de estar usando o Ubuntu no VirtualBox não seja um problema? Acabei de entrar no grub durante a inicialização da máquina virtual Ubuntu e, em seguida, seleciono o kernel recém-compilado, não vejo como isso poderia ser um problema.

Responder1

O Ubuntu possui um script importado do Debian que faz a instalação para você. Depois de compilar o kernel, basta executar sudo make modules_install installe seu kernel será instalado corretamente.

Edição posterior:Aquié o script que o Ubuntu e o Debian usam. Ele é chamado automaticamente pelo Makefile do kernel quando você executa os comandos de instalação acima e faz a instalação específica da distribuição.

Responder2

Seu arquivo grub.conf deve ter uma entrada semelhante a esta

title My Linux Kernel
root (hd0,0)
kernel /boot/gentoo-kernel root=/dev/sda1

seu kernel do Ubuntu pode ter algo como

initrd /boot/initrd.img

você não deve precisar disso ao compilar um kernel em seu hardware. Isso pode estar causando o seu problema.

Você deveria comentar seu arquivo grub.conf e eu darei uma olhada nele. caso contrário, sua configuração pode ser a culpada.

O kernel mais antigo também pode não ter os drivers necessários para o hardware mais recente.

Um sistema Ubuntu mais recente não voltará para a versão antiga do kernel sem muitos problemas.

você pode tentar um Ubuntu mais antigo que execute uma versão próxima dessa versão do kernel ou a versão mais recente do kernel em kernel.org.

Responder3

Cada distribuição Linux tem seu próprio mecanismo e política sobre implantação de pacotes. Isto é o mesmo com o Kernel. A maior parte das distros esconde o processo de compilação com suas ferramentas, que fornecem principalmente pacotes binários.

Se você deseja compilar um kernel personalizado em uma distribuição Linux específica, você deve seguir este tutorial de distribuição sobre como fazer isso do jeito deles, sem quebrar seu sistema.

O Ubuntu tem seu jeito específico, o mesmo para o Achlinux, o mesmo para o Redhat ou o Gentoo.

Então para Ubuntu siga a documentação aquihttps://wiki.ubuntu.com/Kernel/BuildYourOwnKernel

informação relacionada