Bom, resolvi começar este tópico já que as regras de compilação mudaram bastante desde a versão 2.6.34 do tópico do HqxRiven!
Conto com a colaboração de todos os colegas interessados e que já realizam suas compilações!
Este tópico não serve para iniciantes que não sabem nada de linha de comando e compilação de kernel Linux!!! Aqui vamos colocar as dicas e fazer as devidas alterações até que tudo funcione! Contudo nada impende o iniciante de aprender, então por favor, antes estude um pouco!
Temos muita coisa a acrescentar, pretendo fazer nesse tópico todas as alterações que os colegas julgarem necessárias, quando estiver tudo direitinho eu bloqueio este tópico e crio outro "final" com todos os créditos e méritos de quem ajudou!
Por favor testem nas diferentes versões do Ubuntu e do Linux Mint e reportem erros e acertos! Assim coloco em que versões esse tuto funcionou!
Introdução!Felizmente para uns e infelizmente para outros as regras para compilação do kernel Linux foram bastante alteradas para facilitar a vida dos desenvolvedores! Agora você deve usar o Git para compilar o kernel. Para quem não sabe o Git se encaixa na categoria de ferramentas de gestão de código fonte distribuído, ou seja, com ele você consegue controlar todas as revisões do kernel sem depender da rede ou de um servidor central! Infelizmente isso implica em baixar de 400MB a mais de 700MB em códigos fontes do kernel Linux só para poder compilar uma única versão do kernel! E se eu não quiser utilizar esse método? Se quiser apenas baixar uma versão do kernel linux para customizá-lo para a minha máquina? Este tópico vai tentar cobrir essa lacuna, a de quando você quer compilar o kernel Linux mas sem usar o Git, contudo, utilizando das novas regras criadas pelos desenvolvedores com o Git!
Vou usar como base este Blog:
http://duopetalflower.blogspot.com/2010/10/ubuntu-maverick-64bit-kernel.htmlAssim teríamos:
1) Instalando as dependências para compilar o kernel:$ sudo apt-get install fakeroot build-essential crash kexec-tools makedumpfile kernel-wedge libncurses5 binutils-dev libelf-dev libdw-dev libnewt-dev libncurses5-dev
Depois instale os seguintes pacotes sem as recomendações, que são muitas:
$ sudo apt-get --no-install-recommends install asciidoc xmlto
2) Baixando o código fonte do Kernel Linux:Aqui você tem duas opções, você pode baixar um arquivo fonte do
www.kernel.org e assim customizar a sua versão pretendida do kernel oficial ou baixar o fonte do kernel do Ubuntu, se pretende customizar a versão do kernel em uso do seu Ubuntu!
a) Visite o site
www.kernel.org e baixe a versão
"Full Source" com extensão *.tar.bz2 que você pretende compilar! Depois de baixada a versão pretendida, dentro do seu diretório /home, crie uma pasta para realizar todo o processo como usuário comum. Não precisa ser mais root ou usar o diretório /usr/src para compilar o kernel!
Neste exemplo vamos criar o diretório "Builds", mas você pode dar o nome que quiser!
$ mkdir Builds
Copie o arquivo fonte do kernel com extensão *.tar.bz2 para esta pasta e depois descompacte o mesmo. Você pode fazer isso em modo gráfico ou em modo texto se preferir!
b) Se você vai usar uma versão do kernel do Ubuntu, crie a pasta "Builds", entre nela e depois execute:
$ mkdir Builds
$ cd Builds
$ apt-get source linux-image-$(uname -r)
Assim você vai baixar o fonte do kernel do Ubuntu em uso! Note que está tudo sendo executado como usuário comum!
3) Crie uma cópia do arquivo fonte em outra pasta por segurançaSe houver qualquer erro você simplesmente deleta a pasta cópia e começa tudo novamente.
$ cp *nome_do_kernel* linux -r
4) Criando um novo .config!OBs.: Aqui temos o primeiro problema do tutorial que usei como base. O autor diz que devemos copiar o .config do
debian.master! Mas ele não existe se não estamos usando o Git! Encontrei outra dica que acho que serve melhor para quem vai usar o kernel do Ubuntu! Ele copia o .config do Ubuntu e depois altera o seu nome!
Exemplos:
Dica original do Blog:
cp debian.master/config/amd64/config.flavour.generic debian.master/config/amd64/config.flavour.i7
Dica do outro Blog (
http://blog.avirtualhome.com/2008/10/28/how-to-compile-a-custom-kernel-for-ubuntu-intrepid/) :
cp /boot/config-$(uname -r) .
make menuconfig
Por falta de tempo ainda não testei o segundo método. Alguém confirma?
E quando você quiser utilizar outro .config que não o do Ubuntu?
No aguardo de soluções e dicas para prosseguir!