Gentoo Logo

Aviso : Este documento não é válido e não é mais mantido.


Guia de atualização do kernel do Gentoo Linux

Conteúdo:

1.  Introdução

O kernel é um das poucas classes de pacotes no portage que necessita de alguma intervenção manual para completar a atualização. O Portage irá baixar e instalar a fonte de kernel para você, mas cabe a você compilar o novo kernel antes de quaisquer mudanças tomarem efeito.

Embora este guia seja feito para usuários atualizando de um lançamento do kernel para outro, ele também será útil para usuários migrando de um pacote kernel para outro.

gentoo-sources é usado como exemplo no documento, todavia, as instruções aqui também aplicam-se a outros pacotes presentes em nossa árvore.

2.  Por que atualizar o kernel?

Geralmente, atualizar de uma versão menor do kernel para a próxima não trará quaisquer grandes diferenças. Existem várias razões para atualizar o kernel. Uma é tirar vantagem de uma nova função ou driver específico; outra é estar protegido contra uma vulnerabilidade de segurança, ou simplesmente manter um sistema atualizado e saudável.

Mesmo se você escolher não atualizar a cada revisão do kernel, é recomendado que você ao menos atualize de vez em quando. É altamente recomendado que você atualize imediatamente para um novo kernel se a nova versão resolver um problema de segurança.

3.  Obtendo as novas fontes através do Portage

Você atualiza as fontes do kernel como você atualizaria qualquer outro pacote - usando o utilitário emerge. Provavelmente será o caso que você deseja atualizar seu kernel quando uma nova atualização aparecer na sua lista de atualizações de world. Por exemplo:

Listagem de código 3.1: Novas fontes de kernel aparecendo na lista de atualizações

# emerge -Dup world
Calculating dependencies ...done!
[ebuild    NS ] sys-kernel/gentoo-sources-2.6.9-r2 [2.6.8-r5]

Nota: A marcação "NS" na saída acima significa que o novo kernel será instalado em um Novo Slot, isto é, as fontes de seu kernel antigo serão mantidas, até você removê-las manualmente.

Você pode então seguir em frente e instalar a atualização, como:

Listagem de código 3.2: Atualizando suas fontes de kernel

# emerge -u gentoo-sources

As fontes de kernel irão então ser instaladas em um subdiretório de /usr/src. No exemplo acima, as fontes de kernel serão instaladas em /usr/src/linux-2.6.9-gentoo-r2.

4.  Atualizando o link simbólico /usr/src/linux

O Gentoo requer que o link simbólico /usr/src/linux aponte para as fontes do kernel que você está rodando.

O Portage pode atualizar o link simbólico automaticamente quando você instalar as novas fontes de kernel. Tudo que você tem que fazer é adicionar a opção symlink à variável de USE no /etc/make.conf.

Listagem de código 4.1: Exemplo de variável de USE no /etc/make.conf

(Adicione a palavra-chave symlink)
USE="symlink x86 3dnow 3dnowex X aac aalib adns alsa apache2"

Se você realmente quiser fazer você mesmo, o exemplo seguinte mostra como fazer o link apontar para linux-2.6.9-gentoo-r2:

Listagem de código 4.2: Atualizando o softlink /usr/src/linux manualmente

# cd /usr/src
# ln -sfn linux-2.6.9-gentoo-r2 linux

5.  Configurando, compilando e instalando o novo kernel

Para qualquer uma dessas opções, você deve usar como referência as instruções dadas no Manual do Gentoo com relação a Configurando o kernel e Configurando o gerenciador de inicialização. Abaixo está um guia das ações necessárias.

Opção 1: configuração automática do kernel com genkernel

Se você for um usuário de genkernel, você só precisa repetir os estágios que você fez para instalar seu kernel da primeira vez.

Simplesmente rode o genkernel da maneira normal:

Listagem de código 5.1: Rodando o genkernel

(Para kernéis 2.4:)
# genkernel all

(Para kernéis 2.6:)
# genkernel --udev all

Você também pode usar parâmetros adicionais para outras funções do genkernel. Por exemplo, se você quiser configurar alguns opções de kernel adicionais usando o menuconfig e você quiser que o genkernel atualize sua configuração do grub automaticamente, então rode o genkernel como a seguir:

Listagem de código 5.2: Rodando o genkernel com argumentos comuns

# genkernel --menuconfig --bootloader=grub all

Para mais informações, siga o Guia de Genkernel do Gentoo Linux, ou refira-se ao Manual do Gentoo. Muitas das opções podem ser configuradas no arquivo de configuração do genkernel, /etc/genkernel.conf.

Opção 2: configuração manual

Para começar, abra o utilitário menuconfig na árvore da fonte do kernel:

Listagem de código 5.3: Rodando menuconfig

# cd /usr/src/linux
# make menuconfig

Selecione as opções necessárias para seu hardware e sistema operacional. Para informações adicionais sobre configuração de kernéis, refira-se ao capítulo chamado Configurando o kernel do Manual do Gentoo.

A seguir, compile seu kernel e copie-o para sua partição de inicialização (boot). Novamente, siga as instruções do Manual do Gentoo apontadas no capítulo Configurando o gerenciador de inicialização. Se /boot for uma partição separada, certifique-se de que está montada antes de copiar o kernel compilado neste diretório! Não fazê-lo impedirá que você possa carregar o sistema com seu novo kernel.

Listagem de código 5.4: Compilando e instalando o novo kernel

# make && make modules_install
# mount /boot
# cp arch/i386/boot/bzImage /boot/bzImage-2.6.9-gentoo-r2

Finalmente, você deve atualizar sua configuração de gerenciador de inicialização, adicionando uma entrada para o novo kernel (não apague a antiga ainda!) e desmontar a partição /boot Novamente, refira-se ao Manual do Gentoo para instruções detalhadas do procedimento.

6.  Re-instalando módulos externos

Se você usa quaisquer módulos de kernel que não são incluídos na árvore fonte do kernel, mas são providenciados em outro lugar do portage (como drivers gráficos da NVIDIA ou ATI), você precisa reinstalá-los depois de atualizar o kernel. Isto é tão fácil quanto fazer novo emerge do pacotes envolvidos. Para mais informações, refira-se ao capítulo sobre Configurando o kernel no Manual do Gentoo. Para ter certeza de que os pacotes irão ser construídos contra a árvore fonte em /usr/src/linux, primeiro desinstale os pacotes, então reinstale-os. Se as fontes velhas dos pacotes forem mantidas pelo portage, este procedimento de desinstalação/reinstalação irá garantir que são reconstruídos para o novo kernel.

É fornecido o utilitário (sys-kernel/module-rebuild), que reconstrói todos os módulos do kernel que você instalou usando ebuilds separadas (para o kernel que está rodando atualmente, não necessariamente no /usr/src/linux). Seu uso é direto. Depois de fazer emerge dele, execute module-rebuild populate para popular a base com a lista de pacotes que necessitarão ser reconstruídos após a atualização do kernel. Assim que você terminou a sua atualização ou recompilou o seu kernel, execute module-rebuild rebuild para reconstruir os drivers para o seu novo kernel antes de reinicializar.

Para mais informações, execute module-rebuild sem nenhuma opção para ver a lista de comandos que podem ser utilizados.

7.  Reiniciando no novo kernel

A seguir, feche todas aplicações e reinicie seu sistema. Se você seguiu as instruções acima corretamente, o gerenciador de inicialização deve incluir uma entrada para o novo kernel. Selecione o novo kernel e deixe o sistema iniciar.

Espera-se que seu sistema irá iniciar com sucesso o novo kernel, e você poderá fazer log-in para continuar o que você estava fazendo. Se este for o caso, então a atualização está completa.

Se você cometeu um erro e o sistema não carrega o novo kernel com sucesso, reinicie o sistema e selecione a entrada do gerenciador de inicialização que corresponde ao último kernel que funcionava. Você pode então reiniciar do estágio Configurando, compilando e instalando o novo kernel -- fazendo as mudanças apropriadas para corrigir seu erro. Em alguns casos, você pode não ter que reiniciar para fazer isso (por exemplo, você esqueceu de um driver para um dispositivo de áudio, adaptador de Ethernet, etc...)

8.  Rodando kernéis múltiplos

Você deve ter percebido que ao instalar as fontes para seu novo kernel, as fontes de seu kernel antigo não foram removidas. Isto é desenhado assim -- permite que você troque facilmente entre os diferentes kernéis.

Trocar entre kernéis múltiplos é tão simples quanto deixar as fontes de kernel em /usr/src/ e deixar os binários de bzImage em sua partição /boot (com referência em entradas na configuração de seu gerenciador de inicialização). Cada vez que você iniciar, você verá uma escolha de que kernel iniciar.

9.  Removendo kernéis antigos

Continuando da última seção, você pode estar feliz com seu novo kernel e não precisar manter versões antigas de seu kernel antigo. Para remover todas as fontes de um kernel particular com a exceção da última, você pode tirar proveito da opção prune disponível através do emerge. Continuando o exemplo usando gentoo-sources:

Listagem de código 9.1: Limpando versões antigas

# emerge -P gentoo-dev-sources

Na maior parte dos casos, arquivos temporários usados durante a compilação ainda ficarão no diretório fonte apropriado em /usr/src. É seguro removê-los usando rm.

Você também pode seguramente apagar quaisquer módulos que foram usados pelo kernel. Isto pode ser feito removendo os diretórios apropriados em /lib/modules/ que relacionam-se às versões de kernel que você está removendo. Tenha cuidado para não apagar módulos da versão de kernel que você está usando!

Finalmente, você pode montar sua partição /boot e apagar o arquivo bzImage do(s) kernel(is) que você está limpando. Você também deve editar sua configuração de gerenciador de inicialização para que ele não faça mais referências a esse(s) kernel(s).

10.  Avançado: Usando o .config de seu kernel antigo para configurar um novo

Às vezes é possível economizar tempo reutilizando o arquivo de configuração de seu kernel antigo na hora de configurar um novo. Note que isto geralmente não é seguro -- há muitas mudanças entre cada lançamento de kernel para este ser um caminho de atualização confiável.

A única situação onde isto é adequado é na hora de atualizar de uma revisão de kernel do Gentoo para outra. Por exemplo, as mudanças entre gentoo-sources-2.6.9-r1 e gentoo-sources-2.6.9-r2 serão normalmente pequenas, então não costuma haver problemas com o método a seguir. No entanto, não é apropriado usá-lo no exemplo dado neste documento: atualizar do 2.6.8 para o 2.6.9. Há muitas mudanças entre os lançamentos oficiais, e o método descrito abaixo não mostra contexto suficiente para o usuário, normalmente resultando em problemas de usuário porque desativaram opções que não deviam.

Para reutilizar seu .config antigo, você simplesmente precisa copiá-lo e rodar make oldconfig. No exemplo seguinte, nós tiramos proveito da configuração do gentoo-sources-2.6.9-r1 e importamos-na no gentoo-sources-2.6.9-r2.

Listagem de código 10.1: Reutilizando seu config antigo

# cd /usr/src/linux-2.6.9-gentoo-r2
# cp ../linux-2.6.9-gentoo-r1/.config .
# make oldconfig

Neste ponto, você pode ser pedido para produzir respostas às opções de configuração que foram mudadas entre as duas versões. Uma vez que você fizer isto, você pode compilar e instalar seu kernel como normalmente, sem ter que ir no processo de configuração do menuconfig.

11.  Problemas depois de uma atualização do kernel?

Com o rápido desenvolvimento do kernel do Linux, é inevitável que algumas mudanças feitas de um lançamento para outro causem alguns problemas. Se você tiver problemas com as últimas versões dos kernéis suportados pelo Gentoo, por favor relate-os para nós.



Imprimir

Atualizado 6 de janeiro de 2006

A versão original desta tradução não é mais mantida

Resumo: Este documento descreve o processo de atualização de seu kernel de uma versão para outra.

Daniel Drake
Autor

Marcelo Góes
Tradutor

Claudio Pereira da Costa
Tradutor

Donate to support our development efforts.

Copyright 2001-2014 Gentoo Foundation, Inc. Questions, Comments? Contact us.