Recompilando o núcleo (=Kernel) do Ubuntu 9.04
Autor: Felipe Martins | Publicado: 2010-08-30T18:02:00-07:00

Se forem tentar replicar o que eu fiz, recomendo que criem também máquinas virtuais e não saiam testando tudo no seu próprio SO. Seguem minhas experiências.Primeira tentativa:Criei uma instância da Virtual Box com a seguinte configuração:Nome: UbuntuSistema Operacional: LinuxVersão: UbuntuRAM: 640 MBArmazenamento de Tamanho Fixo com 4.5 GBInstalei o Ubuntu 9.04 através do CD. (até aqui tudo bem...)Utilizei 4.5 GB porque estava com pouco espaço em disco e esta limitação gerou um problemadurante a compilação do núcleo. Houve um erro, e quando verifiquei pela manhã, o espaço em discoda máquina virtual estava zerado. Achei interessante colocar essa experiência aqui.Segunda tentativa:Nome: UbuntuSistema Operacional: LinuxVersão: UbuntuRAM: 1 GBArmazenamento de Tamanho Fixo com 8 GBUtilizei 8 GB porque estava ainda com pouco espaço em disco e esta limitação gerou um outro problema masdurante a instalação do núcleo. Não houve erros desta vez, mas o espaço do HD foi zerado novamente.Mas como precisava de mais espaço para gerenciar as versões do núcleo após algumas modificações, ainda achei8 GB pouco espaço.Terceira tentativa:Nome: UbuntuSistema Operacional: LinuxVersão: UbuntuRAM: 1 GBArmazenamento de Tamanho Fixo com 16 GBComo eu sou um cara que gosta de potências de 2. Para a terceira tentativa coloquei 16 GB do HD para a Virtual Machine.Instalei o Ubuntu 9.04 através do CD.Versão do núcleo: 2.6.28-11Desta vez não houveram problemas.CompilaçãoO processo de compilação do núcleo é um pouco demorado. Inicialmente precisaremos baixar alguns pacotes. Segue uma breve descrição de cada um deles e o comando utilizado para baixar os pacotes.Utilitário para a construção do núcleo Linux.> apt-get install kernel-packageBibliotecas e documentação para desenvolvedores ncurses (biblioteca de desenvolvimento de aplicações em linha de comando com um estilo GUI)> apt-get install libncurses5-devPossibilita um ambiente root falso.> apt-get install fakerootEntra no diretório onde será armazenado o código-fonte baixado.cd /usr/srcBaixa o código fonte do Linux.apt-get install linux-sourceDescompacta o código-fonte baixado.tar -xjvf linux-source-2.6.28.tar.bz2Cria um link simbólico para o diretório descompactado e entra no diretório através do link simbólico.sudo ln -s linux-source-2.6.28 linuxcd linuxCria uma cópia do arquivo de configuração que contém informações específicas do hardware utilizado reconhecidas durante o boot.sudo cp /boot/config-2.6.28-11-generic ./.configO comando seguinte permite abrir uma tela de configuração de recursos específicos do núcleo. Como não conhecemos muito, não faremos nenhuma alteração nesta tela.make menuconfigAo concluir, será salvo um novo arquivo config.O comando seguinte realiza uma limpeza antes de iniciar a compilação.make-kpkg cleanO comando seguinte compila o código. É muito importante incluir o parâmetro--apend-to-version pois ele quem identificará o seu núcleo nas entradas do arquivo de configuração da GRUB.fakeroot make-kpkg --initrd --revision=nomedasuaversao --append-to-version=-fms-version núcleo_image núcleo_headersDepois de compilar, basta instalar a versão customizada do núcleo com osseguintes comandos:dpkg -i linux-image...NomeDoPacoteGeradoParaImagem.debdpkg -i linux-headers...NomeDoPacoteGeradoParaHeaders.debApós a instalação, podemos ver o novo núcleo como entrada no arquivo de configuração da grub. Verifique o arquivo /boot/grub/menu.lst.Reinicie o sistema da máquina virtual. Pressione 'ESC' na tela do GRUB.Neste momento, deverá ser exibido o núcleo que foi compilado por você. No meu caso, o que aparece de novo é:Ubuntu 9.04, núcleo 2.6.28.10-fms-versionUbuntu 9.04, núcleo 2.6.28.10-fms-version (recovery mode)Achei interessante deixar também o tempo gasto na última compilação:Hora inicial: 22:12Hora final: 02:10Bom, é isso pessoal.Espero ter sido claro em todas as etapas.Se eu aprender mais sobre a configuração em si, postarei aqui. =)Referências:http://easylinuxcds.com/blog/?p=3244https://help.ubuntu.com/9.04/installation-guide/i386/núcleo-baking.html