Aviso :
Este documento não é válido e não é mais mantido.
|
Guia de atualização do kernel do Gentoo Linux
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 |
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 |
# genkernel all
# 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.
O conteúdo deste documento está licenciado pela licença Creative Commons -
Attribution / Share Alike.
|