//
you're reading...
Hacker, Linux

Kernel 3.0 no Debian Squeeze

Instalação dos programas essenciais para compilação do kernel:
root@razer:/home/yuri# aptitude install kernel-package

Download do código fonte do kernel Linux no site http://www.kernel.org/
root@razer:/home/yuri/Downloads# cp linux-3.0.1.tar.bz2 /usr/src/
root@razer:/home/yuri/Downloads# cd /usr/src/
root@razer:/usr/src# tar -jxvf linux-3.0.1.tar.bz2
root@razer:/usr/src# ln -s linux-3.0.1 linux
root@razer:/usr/src# cd linux

O primeiro passo da compilação em si é gerar um arquivo de configurações, com as opções específicas do kernel que será compilado. Você pode fazer uma configuração do zero, ou utilizar a configuração do seu sistema atual, modificando apenas os parâmetros necessários. A configuração de kernel atual no Debian fica no diretório /boot. Copie-a para a pasta corrente (/usr/src/linux) antes de continuarmos.
root@razer:/usr/src/linux# cp /boot/config-2.6.32-5-686 .config

Para criar o novo arquivo de configurações do kernel, podemos utilizar três alvos do comando make:

  • make config – utilitário de mais baixo nível. O usuário será perguntado sobre cada opção, se deseja adicioná-la na compilação diretamente no kernel, como módulo ou não incluí-la.
  • make menuconfig – utilitário baseado em menu ncurses. Mais fácil e rápido. É possível carregar um arquivo .config já existente.
  • make xconfig – utilitário gráfico. O jeito mais elegante e simples de se gerar um arquivo .config de configurações do kernel.

Eu optei por utilizar o make menuconfig por ser altamente simples e precisar de menos aplicativos para funcionar, basta instalar o ncurses dev:
root@razer:/usr/src/linux# aptitude install libncurses5-dev

Depois basta digitar:
root@razer:/usr/src/linux# make menuconfig

Utilize a penúltima opção “Load an Alternate Configuration File” para carregar o arquivo .config copiado:

Esta parte pode ser bem demorada pois exije algum conhecimento e cuidado de quem estiver executando-a. Devemos desmarcar os itens que não serão necessários ao sistema e, para os que serão marcados, escolher entre incluí-los diretamente no kernel ou como módulos que só serão carregados caso seja necessário. Mas como saber quais itens são descessários? Em primeiro lugar, algumas funções que você tem certeza que não vai usar, como por exemplo opções relacionadas a rádio amador ou fireware, podem ser desabilitadas. Em segundo lugar, conheça bem o seu hardware, utilize ferramentas tais como lspci e lsmod para ver os dispositivos e módulos do seu equipamento.

Caso não seja sua primeira tentativa de compilação, utilize o seguinte comando, para limpar compilações anteriores:
root@razer:/usr/src/linux# make clean

O próximo passo é criar o kernel base. A não ser em casos muito específicos, onde a imagem de kernel será muito pequena (até 512 bytes), você utilizará o tipo zImage, em todos os outros casos utilize o comando:
root@razer:/usr/src/linux# make bzImage

Copie a imagem gerada para o diretório boot do sistema:
root@razer:/usr/src/linux# cp /usr/src/linux/arch/i386/boot/bzImage /boot/vmlinuz-3.0.1

Pode demorar bastante, dependendo do poder de processamento do computador. O próximo passo é construir todos os módulos carregáveis do kernel:
root@razer:/usr/src/linux# make modules

Depois, copie os módulos compilados para o diretório /lib/modules/3.0.1 – 3.0.1 corresponde à versão do kernel que você está compilando. Para isso, utilize o seguinte comando:
root@razer:/usr/src/linux# make modules_install

Pronto, o seu novo kernel está compilado. Mas existem alguns ajustes finais que devem ser feitos. Se você compilou drivers de boot importantes como módulos, será necessário criar uma imagem de ramdisk inicial para ser carregada diretamente para a memória ram no início do sistema, antes de montar o sistem raíz do Linux. Para criar a imagem inicial do sistema, utilize:
root@razer:/usr/src/linux# mkinitramfs -o /boot/initrd.img-3.0.1 3.0.1

Copie o arquivo bzImage do diretório /usr/src/linux/arch/i386/boot para o diretório boot. O ideal é colocar a identificação igual à da imagem de ramdisk, que, no meu caso foi:
root@razer:/usr/src/linux/arch/i386/boot# cp bzImage /boot/vmlinuz-3.0.1

Copie o System.map do diretório /usr/src/linux para o diretório /boot. Novamente utilize a mesma nomenclatura de kernel:
root@razer:/usr/src/linux# cp System.map /boot/System.map-3.0.1

O último passo adicionar o novo kernel ao carregador de boot. Como no Debian Squeeze eu uso o Grub2 por padrão, o comando é:
root@razer:/usr/src/linux# update-grub

As mensagens exibidas na tela confirmam que o novo kernel foi encontrado:
Generating grub.cfg ...
Found background image: /usr/share/images/desktop-base/desktop-grub.png
Found linux image: /boot/vmlinuz-3.0.1
Found initrd image: /boot/initrd.img-3.0.1
Found linux image: /boot/vmlinuz-2.6.32-5-686
Found initrd image: /boot/initrd.img-2.6.32-5-686
done

Pronto! Agora basta reiniciar seu sistema e curtir o seu novo kernel. Quando você reiniciar seu sistema e escolher o seu novo kernel da lista de sistemas para inicialização, após o sistema iniciar, confirme a versão do kernel Linux com o seguinte comando:
root@razer:/home/yuri# uname -r
3.0.1

Anúncios

Discussão

Um comentário sobre “Kernel 3.0 no Debian Squeeze

  1. Parabéns Yuri.

    Um guia conciso e preciso.

    Estou tendo dificuldades em compilar o kernel 3.0 para o Ubuntu 10.04LTS. Tentei pelo kernel-source-3.0.0-9-14 da versão 11.04, mas está apresentando erro. Segui uma dica do ubuntuforum-br.org, mas não consegui. É como se a a versão que uso não suportasse a compilação, embora eu já use o seu kernel 3.0 genérico.

    Então:
    Qual a versão do GCC você usou na compilação?

    Em outros guias de compilação os comandos são ligeiramente diferentes, make-kpkg (inclusive no guia do Carlos E. Morimoto http://www.hardware.com.br/guias/debian-desktops/compilando-kernel-debian.html) e isso me fez pensar sobre as causas para essa dificuldade.

    Estou pensando sinceramente em migrar para o Debian…

    Publicado por Luís Fernando de Lima Jr. | 28/09/2011, 2:19

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

Twitter

Erro: o Twitter não respondeu. Por favor, aguarde alguns minutos e atualize esta página.

%d blogueiros gostam disto: