terça-feira, 8 de fevereiro de 2011

Como instalar a versão mais recente do kernel no Ubuntu Lucid sem recompilar

O Ubuntu Lucid Lynx, versão 10.04, é a versão de suporte de longo termo (ou LTS) do sistema da Canonical. Ele possui 3 anos de suporte técnico em desktops e 5 anos em servidores, ao contrário dos 18 meses das versões regulares da distro. Isso é bom para empresas, que geralmente não gostam de ficar atualizando ou trocando os sistemas de seus servidores a cada seis meses, mas também é útil para usuários finais que, assim como o mundo corporativo, não gostam de ficar atualizando seus micros a cada semestre. Eu posso dizer que estou usando o sistema 10.04 - que recebeu recentemente sua segunda atualização - desde seu lançamento e não tenho do que reclamar.

Um ponto neste sistema que pode preocupar os usuários domésticos é a política de atualizações: a Canonical não insere novas versões de software durante o ciclo de vida mas, sim, apenas vai atualizando e corrigindo as versões originais (isso também ocorre com as versões regulares). Por exemplo: o kernel original do 10.04 é o 2.6.32 e é esta a versão que será mantida nesta distro durante todo o seu ciclo de vida. Com o tempo, a Canonical vai adicionando patches e correções ao kernel, mas ela nunca vai colocar uma versão mais recente do que esta: o Ubuntu 10.10 veio com a versão 2.6.35 e esta não será adicionada ao Lucid - nem a mais recente, quando o Natty for lançado, será disponibilizada às anteriores.

Mas você quer continuar usando a distro LTS e ter o kernel mais atual, seja para melhorar a performance ou para adicionar suporte a um hardware que não funciona. O que fazer?

Alguém pode pensar: "é só instalar o kernel da versão mais recente!", mas isso não funciona por dois motivos: primeiro: as versões mais recentes tem pacotes mais recentes, o que pode acabar quebrando as dependências e, segundo, o kernel destas versões pode ter alguns detalhes não presentes na distro anterior que podem causar um funcionamento incorreto em algumas partes do sistema. E agora?

Uma das saídas seria, evidentemente, recompilar o kernel: baixar os sources do kernel.org e mandar a ver. No entanto, compilar um kernel não é uma tarefa trivial para todos e, mesmo para aqueles que tem experiência, pode haver alguns inconvenientes, visto que o kernel do Ubuntu tem alguns patches exclusivos - por exemplo, para o App Armor ou o Plymouth - que não estão presentes no kernel vanilla e, portanto, podem gerar mensagens de erro durante a inicialização e aumentar o tempo de boot (digo isso por experiência própria).

Já na lista de pacotes oficiais, existem algumas versões mais recentes, chamadas backports, voltadas ao Lucid. Mas estas versões acabam na 2.6.35.

Felizmente, existe um jeito simples de se instalar a versão mais recente do kernel - neste momento, 2.6.37 - sem muito esforço: basta utilizar o repositório kernel-ppa do site UbuntuUpdates.org.

A instalação é muito simples e é como se fosse a de qualquer outro repositório: abra o terminal e digite as linhas:

sudo add-apt-repository ppa:kernel-ppa/ppa
sudo apt-get update


Note que, neste PPA, existem diversos kerneis. Assegure-se de, após adicionar o PPA, digitar:

sudo apt-get install linux-lts-backport-natty


Para ter sempre a versão mais recente do kernel da versão de desenvolvimento do Ubuntu instalado. Se, ao invés disso, você digitar o nome de outro pacote, como por exemplo linux-image-2.6.37-7-generic, esta versão não será atualizada automaticamente. E quando a distribuição Natty sair? Basta, pois, mudar o nome do pacote a ser instalado.

Após instalar o kernel, o atual e oficial da distro será mantido; desta forma, você pode testar seu novo kernel à vontade e voltar ao anterior se alguma coisa não der certo (fique pressionando Shift esquerdo durante o boot para exibir o menu do Grub e selecionar o kernel, se necessáro). Quando você tiver certeza de que tudo está funcionando dentro dos conformes, pode desinstalar o kernel anterior pelo Synaptic. Caso não faça isso, o kernel original continuará recebendo atualizações, embora não seja mais selecionado automaticamente durante o boot.

Apenas lembre-se de que este kernel não é suportado pela Canonical e, portanto, sua instalação não é recomendada em um ambiente de produção corporativo - principalmente se a máquina em questão for um servidor de missão crítica ;) .

2 comentários:

  1. POr exemplo, quem usa o linux-backports-module-wireless nao é atualizado junto com o novo kernel certo?

    ResponderExcluir
  2. Pesquise no repositório para ver se há pacote disponível.

    ResponderExcluir