Inicializando um kernel Linux recém compilado

6

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

Aqui estão os passos que estou tomando, conforme descrito no livro (estou usando o kernel 2.6.24, pois é sobre isso que o livro é baseado):

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:

You might need to alert your bootloader about the arrival of the new boot image. If you are using the GRUB bootloader, it figures this out automatically.

Bem, ele não foi resolvido automaticamente no meu caso, já que não havia opção de selecionar esse kernel no GRUB. Então eu fiz isso manualmente digitando update-grub no terminal. E isso não funcionou também. No entanto, uma vez que eu mudei o nome do arquivo de vmlinuz para vmlinuz-2.6.24 e digite update-grub ele pegou. Então, na página 11 do livro, parece que já há 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 eu disse acima, ele não inicializa corretamente, a tela fica em branco e nunca muda. Então estou faltando alguma coisa? Eu segui as instruções do livro exatamente. Eu estou depois de gastar € 50 neste livro e agora não posso passar da página 11 por causa desta questão.

Eu entendo que eu estou usando o Ubuntu no VirtualBox não é um problema? Eu só entro no grub durante o boot da máquina virtual Ubuntu e, em seguida, seleciono o kernel recém-compilado, não consigo ver como isso poderia ser um problema.

    
por Jim_CS 24.06.2012 / 15:55

3 respostas

3

O Ubuntu tem um script importado do Debian que faz a instalação para você. Depois de compilar o kernel, execute sudo make modules_install install e seu kernel será instalado corretamente.

Mais tarde editar: Aqui é o script que o Ubuntu e o Debian usam. É automaticamente chamado pelo Makefile do kernel quando você emite os comandos de instalação acima e faz a instalação específica da distribuição.

    
por 24.06.2012 / 18:41
0

Seu arquivo grub.conf deve ter o simulador de entrada para isso

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 me comentar seu arquivo grub.conf e eu vou dar uma olhada nele. caso contrário, sua configuração pode ser a culpa.

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

Um sistema ubuntu mais recente não retornará àquela antiga versão do kernel sem muitos problemas.

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

    
por 25.06.2012 / 00:37
0

Cada distribuição do Linux tem seu próprio mecanismo e política sobre implementação de pacotes. Isso é o mesmo com o Kernel. A maior parte da distro está escondendo o processo de compilação com suas ferramentas, que geralmente fornecem pacotes binários.

Se você quiser compilar um kernel personalizado em uma distribuição linux específica, você deve seguir este tutorial de distribuição sobre como fazê-lo sem quebrar seu sistema.

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

Então, para o Ubuntu, siga a documentação aqui link

    
por 19.09.2016 / 13:39