Com o recente lançamento do Kernel Linux 2.6.38, que inclui o famoso patch maravilha (melhoria de desempenho em 60x !?) e muitas outras melhorias (7600?), resolvi escrever o procedimento para a compilação deste kernel utilizando o Ubuntu 10.10. E como quase tudo no Ubuntu é muito simples, a compilação do kernel também não será diferente.
Então mãos a obra.
Primeiramente é preciso baixar o Kernel, e isso pode ser feito aqui http://www.kernel.org
Depois abra o terminal ( ALT+F2 ) e para entrar como root digite:
# sudo su
Vamos precisar de alguns pacotes para compilação do kernel e para visualição gráfica do menu de configurações (em Qt)
Para instala-los:
# apt-get install build-essential bin86 kernel-package libqt3-headers libqt3-mt-dev qt3-dev-tools
Agora vá a pasta onde baixou o source do kernel, que no meu caso é a pasta Downloads:
# cd Downloads/
Mova-o para /usr/src, para isso digite:
# cp linux-2.6.38.tar.bz2 /usr/src
Acesse essa mesma pasta:
# cd /usr/src
e descompacte o arquivo:
# tar jxvf linux-2.6.38.tar.bz2
depois entre na pasta criada:
# cd linux-2.6.38
Vamos importar configurações do kernel que esta utilizando para configurar o que iremos compilar
# cp /boot/config-`uname -r` .config
Obs.: A intenção aqui é que o comando fique parecido com isso “sudo cp /boot/config-2.6.35-28-generic .config“, onde o número da versão será a que você estiver usando no momento.
Abra o menu de configurações do Kernel.
Obs.: Se você não entender muito bem no que está mexendo, sugiro que não mexa, pelo menos não muito 🙂
# make xconfig
Se esse comando não abrir uma janela, pode estar faltando algum pacote para rodar o Qt3, mas não se preocupe, você pode abrir o menu de configuração direto pelo terminal com o comando:
# make menuconfig
Em “Processor type and features” -> “Processor family” escolha o modelo do seu processador.
Em “Kernel hacking” desmarque a opção “Kernel debugging”
Podemos ainda pelo menu de configurações do kernel, desmarcar vários tipos de suporte relacionados ao hardware que seu pc tenha ou não tenha. Se não tiver, seria bom desativar, mas não é algo necessário.
Após salvas as modificações, basta fechar o menu.
Agora compilaremos o kernel, e esse passo vai demorar, dependendo do pc pode demorar muito (várias horas!).
# make
Após a compilação é preciso instalá-lo, para isso:
# make modules_install
e depois:
# make install
Agora para o sistema iniciar com o novo kernel precisamos criar um initrd:
# update-initramfs -k 2.6.38 -u
Atualize o grub:
# update-grub
Pronto agora é só reiniciar (comando reboot) que o novo kernel aparecerá na lista de inicialização do Grub.
Com o sistema inicializado, para verificar a versão do kernel basta ir ao terminal e digitar:
# uname -a
Que no meu caso retornou “Linux brenno-laptop 2.6.38 #1 SMP Wed Mar 16 16:00:12 BRT 2011 x86_64 GNU/Linux”
Pronto, kernel novinho instalado!
Mas que coisa mais simples de se fazer hein…
E tem gente tentando meter medo nos outros dizendo que é o “inferno” usar o Linux!
OLá, tenho uma duvida de noob, se compilar o kernel vou perder as outra partições que tenho ?
Não Luckfm, não irá perder nada.
Inclusive você pode optar por carregar o sistema com o kernel antigo na entrada do grub.
Gostei muito da explicação, só senti falta dos comandos para geração dos pacotes .DEB, utilizando o kernel-package, que seria muito útil.
Pra quem não quiser compilar, existe o projeto Ubuntu Mainline kernel que disponibliza os DEB já compilados
http://kernel.ubuntu.com/~kernel-ppa/mainline/v2.6.38-natty/
Onde se lê:
# cp /boot/config-’uname -r’ .config
Deveria ser:
# cp cp /boot/config-`uname -r` .config
Não sei, mas talvez o wordpress tenha substituído as crases ` por acetos agudos ’
Onde se lê:
# cp /boot/config-’uname -r’ .config
Deveria ser:
# cp /boot/config-`uname -r` .config
Não sei, mas talvez o wordpress tenha substituído as crases ` por acetos agudos ’
Correto Fabrício, obrigado.
Entrei no modo html e corrigi a força o ‘acento’. 🙂
https://wiki.ubuntu.com/KernelTeam/GitKernelBuild mostra de um jeito onde tu faz um pacote do kernel, facilitando ainda mais a instalação/remoção do kernel.
Olá Breno,
Só não entendi como se faz isso: “…Abra o menu de configurações do Kernel.”
Dá uma dica aí …
Os comandos ‘make xconfig’ e ‘make menuconfig’ abrem o menu de configurações do kernel.
Luiz, esse “Abra o menu” foi referente ao comando “make xconfig” (para aparecer uma janela que te ajuda a configurar), ou “make menuconfig” para configurar pelo terminal.
Aqui eu precisei instalar o libncurses-dev para rodar o menuconfig (“sudo apt-get install libncurses-dev” deve funcionar em qualquer ubuntu)
Para rodar o xconfig, a dica para quem usa Kubuntu (ou qqr distro que use KDE) é rodar o comando “xhost +” antes do comando “sudo su”.
Brenno, gostaria que voce falasse mais sobre as promessas desse novo Kernel…
Eu não acompanho de perto as listas do kernel linux, mas, tenho lido sobre
grandes mudanças, e acho que todos os usuários linux também gostariam
de saber sobre as novidades…
Desculpe Onofre, eu realmente não quis especificar as mudanças que o kernel trás, mas se você quiser saber a respeito há dois ótimos post sobre isso no IBM DeveloperWorks
Esse: http://goo.gl/JTGuZ
e esse: http://goo.gl/hG4vh
No meu deu a seguinte mensagem na hora de criar o initrd deu o seguinte resultado:
update-initramfs -k 2.6.38 -u
update-initramfs: Generating /boot/initrd.img-2.6.38
grep: /boot/config-2.6.38: Arquivo ou diretório não encontrado
Há algum procedimento específico para remover?
Olá , sou um apaixonado pelo ubuntu maverick , estou instalando o kernel 2.6.38
mas pelo que ví , o maverick passa a ser um lamborgini murcielago! Terminado o teste volto a postar o resultado,
Estou com problema com o grub.
Todo o processo até a instalação do Kernel foi tranquilo.
Após inserir o comando indicado para a atualização do grub ele responde:
/etc/default/grub: 9: nomodeset: not found
Como resolver?
abraços!
cara, é compatível com o nvidia-185? abração
Voce viu o segundo comentário do Fabricio.
oi pessoal eu sou novo e estou tentando. na verdade já estou usando o kernel 2.6.38.4-candela fiz o processo pelo kernelCheck. mas acho que ainda pode melhorar entao eu gostaria de eu mesmo compilar ali eu marquei alguns módulos e desmarquei outros. tudo funcionou bem mas como disse queria realizar o proceso por minhas proṕrias mãos estou om uma dificuldade:
aparece esta mensagem:usr/src# cp /boot/config-`2.6.38.4-candela -r` .config
2.6.38.4-candela: comando não encontrado
cp: impossível obter estado de `/boot/config-‘: Arquivo ou diretório não encontrado
nesta faze eu devo colocar o nome do kernel que estou usando? por que o erro?
Bem simples de entender, parabéns. Obrigado!
Olá, estou tentando compilar mas não vai, ” cp /boot/config- 2.6.35-28-generic. config ” mas não tem que copiar pra algum diretório???
Não esta dando certo…