Compilando um novo kernel em distribuições RPM-like

Este pode parecer um artigo inútil (me fiz essa contestação antes de criá-lo), mas resolvi postar pois a compilação de um kernel personalizado em distribuições como Fedora, SuSE, Mandriva, PCLinuxOS etc é algo menos explorado (em português pelo menos) que em distros baseadas no Debian, Gentoo ou Slackware.

[ Hits: 18.224 ]

Por: Augusto André Souza em 28/01/2010 | Blog: http://www.google.com


Instalando e adicionando ao boot



Agora, basta instalar o pacote .rpm gerado como um pacote RPM comum:

# rpm -ivh /usr/src/rpm/RPMS/i386/kernel-2.6.versao_escolhida.rpm

Obs.: o diretório em que é armazenado o pacote RPM pode variar! Mas não se aflija, pois o próprio script mostra essa informação na tela no fim da compilação.

Crie o arquivo initrd necessário para dar boot no seu novo sistema. Para tanto, digite o seguinte:

# mkinitrd /boot/initrd-2.6.versao_escolhida.img 2.6.versao_escolhida <-- Verifique o espaço!

Nesse ponto não vou entrar em detalhes de como adicionar as referências do novo kernel ao boot, pois como estou tentando criar uma artigo de forma genérica para distros RPM-like, e cada uma tem suas peculiaridades, seria pecar pelo excesso mostrar o procedimento de adição do kernel ao boot de cada uma delas. Algumas usam o grub, outras o grub2... No Mandriva ou PCLinuxOS seria algo assim:

Abra o arquivo /boot/grub/menu.lst:

# gedit /boot/grub/menu.lst

Use o mesmo padrão das referências já existentes para o kernel padrão da distribuição e adicione a sua. Por exemplo, lá vai ter algo assim:

title Mandriva One 2010
kernel (hd0,2)/boot/vmlinuz BOOT_IMAGE=linux root=UUID=775b9b5e-c386-4998-8bb0-8c2b7f863cc1 acpi=on resume=UUID=1e0ebf7b-7d10-4e52-91ba-52da6baed439 splash=silent vga=788
initrd (hd0,2)/boot/initrd.img

Seguindo o mesmo princípio, no fim do arquivo você adicionaria:

title Mandriva One 2010 Kernel Personalizado
kernel (hd0,2)/boot/vmlinuz-2.6.versao_escolhida dev=/root/sda3 ro splash=silent vga=788
initrd (hd0,2)/boot/initrd-2.6.versao_escolhida.img

Mas é coisa simples e está mais bem explicada em outros artigos aqui no VOL e em outras fontes como:

Considerações

Espero que compreendam que este é meu primeiro artigo e que, portanto, é passível de uma maior quantidade de equívocos, inclusive quanto ao uso de termos "inadequados" em algum momento do texto. Desde já me desculpo por isso, afinal sou apenas iniciante no mundo GNU/Linux, mas meu intuito foi meramente o de evitar que outras pessoas tenham as dificuldades que tive para compilar um kernel personalizado.

Fontes:
Página anterior    

Páginas do artigo
   1. Introdução e ferramentas necessárias
   2. Processo padrão de compilação
   3. Instalando e adicionando ao boot
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Atualizando o kernel no Slackware

Kernel 2.6.9 no Slackware

Conheçendo o sistema operacional GNU/Fiwix

Layer7 e compilação do kernel mole-mole com Conectiva 10

Gerência e criação de módulos do kernel

  
Comentários
[1] Comentário enviado por cristiano.moraes em 28/01/2010 - 08:23h

Parabéns Augusto. É sempre bom termos um passo a passo de compilação do kernel. E o seu esta bem didático.

[2] Comentário enviado por joaopaulo999 em 08/10/2010 - 08:49h

fiz este passo a passo quando vou criar o mkinitrd

ele mi da o seguinte erro


Kernel image: /boot/vmlinuz-2.6.31.14-0.1-default
Initrd image: /boot/initrd-2.6.31.14-0.1-default
Kernel Modules: <not available>
Could not find map /boot/initrd-2.6.35.7-0.1.img/boot/System.map, please specify a correct file with -M.

Kernel image: /boot/vmlinuz-2.6.35.7-0.1-default
Initrd image: /boot/initrd-2.6.35.7-0.1-default
Kernel Modules: <not available>
Could not find map /boot/initrd-2.6.35.7-0.1.img/boot/System.map, please specify a correct file with -M.

estou tentando usar kernel 2.6.35.7

estou usando um suse 11.2


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts