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.222 ]

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


Processo padrão de compilação



Esta é a parte que se repete em todos os artigos sobre compilação de kernel. Se você se sente suficientemente cheio desse tipo de informação, pule para a página seguinte. Por questões didáticas, irei descrever também esta parte.

A sugestão é sempre baixar a última versão estável (que no momento de criação deste artigo é a linux-2.6.32.4), mas isso vai de acordo com sua necessidade e preferência (eu por exemplo escolhi a 2.6.28 por questões de compatibilidade com o driver de minha placa de vídeo). Visite o site kernel.org e baixe a versão desejada em tar.bz2 ou tar.gz para o diretório /usr/src. O mais prático é usar o próprio terminal para isso:

wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.versao_escolhida.tar.bz2

Depois logue-se como super usuário e descompacte tudo para o diretório citado:

# tar -jxvf linux-2.6.versão_escolhida.tar.bz2 -C /usr/src

Remova o link simbólico existente e crie outro conforme o diretório que você acabou de criar:

# rm -rf /usr/src/linux
# ln -sf /usr/src/linux-2.6.versao_escolhida /usr/src/linux


Entre no diretório /usr/src/linux:

# cd /usr/src/linux

Agora vem a compilação propriamente dita. Uma boa opção é copiar o arquivo .config do seu kernel atual para te dar mais segurança. Além de evitar um "kernel panic" na inicialização, isso vale até mesmo para te servir de parâmetro na escolha das opções de configuração adicionais que você fará pelo "make config". Geralmente esta configuração está em /boot, então faça o seguinte:

# cp /boot/config-`uname -r` ./.config
# make clean
<-- Para possíveis resquícios de tentativas frustradas de compilação
# make menuconfig

Ou:

# make xconfig

Com o "xconfig" você fará a configuração do kernel através de uma interface gráfica. Para usá-lo, precisará de um pacote adicional chamado libqt3-devel.

O meu modo preferido é o "menuconfig", pois com ele você configurará o kernel em modo texto, mas um modo texto bem amigável. Não precisa da biblioteca QT3.

Dentro da interface que surgirá, vá em Load an Alternate Configuration File:
Depois digite .config no campo correspondente:
Se quiser parar por aí com a configuração, já estará de bom tamanho. Afinal, as configurações padrões do kernel das distribuições já tendem a ser boas (apesar de genéricas demais). Caso queira se aventurar editando a config, e eu te recomendo que o faça, dê uma olhada nesta dica e procure mais documentação através do Oráculo.

Agora vem a parte mais legal! A hora de compilar um pacote RPM do kernel que você acabou de configurar. Rode o comando e vá dar uma volta, bater uma bolinha na rua, namorar, algo assim... porque vai demorar um pouco dependendo do seu hardware:

# make rpm

Obs.: uma boa dica se você tem um processador multicore, é adicionar o comando -j4 depois do "make" no comando anterior, ficando assim:

# make -j4 rpm

Após finalizada essa parte, é hora de instalar o kernel gerado.

Vire a página =]

Página anterior     Próxima página

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

Kernel 2.6: a instalação mais fácil

Linux Virtual Memory Management e lentidão ao copiar arquivos grandes para mídia lenta

Compilando kernel 2.6.11 no Slackware 10

NetFilter Hook em Kernel 2.6

Compilando kernel com suporte a POM (path-omatic) e Layer7 no Debian e Slackware

  
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