O guia completo de migração para o Gentoo Linux 2.6
1.
Introdução
O que há de novo no Linux 2.6?
Esta não é uma questão fácil de se responder. O Linux 2.6 é o resultado de mais
de 2 anos de desenvolvimento rápido e estabilização de novas funções, e é
arquiteturalmente muito diferente da versão 2.4. Algumas das mudanças principais
estão listadas abaixo:
-
Melhorias de scheduler/interatividade: o Linux responde muito bem em
sistemas de destkop e funciona muito melhor sob carga que o 2.4
-
Escalabilidade: o Linux agora tem uma escalabilidade muito melhor nos dois
extremos - em pequenos dispositivos embedded e também sistemas com muitos
processadores
- Performance: saída de aplicações comuns é muito melhor
-
Suporte de hardware: agora o Linux suporta mais arquiteturas e dispositivos
de hardware sem modificação que qualquer outro sistema operacional
Joseph Pranevich escreveu um documento muito detalhado, O maravilhoso mundo do Linux
2.6, que você pode ter interesse em ler. Se você estiver interessado nos
detalhes mais técnicos, você pode ler o O
documento pós-halloween - mas saiba que ele está um pouco desatualizado
agora.
O que é o udev?
No passado, o Gentoo instruía seus usuários a usar o devfs para gerenciar
o diretório /dev, que contém uma série de interfaces de dispositivos para
permitir que aplicações de sistema comuniquem-se com o hardware (através do
kernel).
O devfs, embora um bom conceito, tem alguns problemas internos e
tornou-se obsoleto no Linux 2.6.
O udev é o novo jeito de gerenciar nódulos de dispositivos. Ele resolve
problemas dos gerenciadores de dispositivos anteriores, e também tenta resolver
outros problemas.
A parte de cima pode não significar muito para você, mas não se assuste, os
desenvolvedores do Gentoo esforçaram-se para tornar a migração do devfs muito
fácil.
O que é a ALSA?
Com o Linux 2.4, provavelmente você usou drivers OSS (open sound system) para
fazer sua placa de som funcionar. O OSS foi substituído por um conjunto mais
novo e melhor de drivers de som: ALSA.
ALSA, a Arquitetura de Som Avançada do Linux, é o novo conjunto de drivers de
som com uma API nova e melhorada, presente no kernel do Linux 2.6. Ela é
compatível com as aplicações OSS, desde que você selecione as opções de
configuração do kernel corretas!
Nota:
Se você não tem nenhum hardware de som/áudio, você pode pular com segurança
quaisquer instruções relacionadas a ALSA neste documento.
|
O que é o LVM?
Gerenciamento de volumes lógicos (LVM) existe como um conjunto de
ferramentas que permitem que você gerencie seu armazenamento em disco de uma
maneira muito flexível. Entre outras coisas, ele permite um controle poderoso
sobre partições (por exemplo, redimensionar sem reiniciar), e torna operações
como mudanças de dispositivos relativamente simples. O LVM atua como uma
alternativa para o gerenciamento de disco baseado em partições.
O suporte para LVM foi historicamente implementado no Linux 2.4. O Linux 2.6
contém uma nova versão do LVM, chamada de LVM2. O processo de migração
requer que você instale novas versões de ferramentas de usuário (cobertas mais
tarde neste documento), mas deixará seus dados intactos!
Se você não usa LVM para gerenciamento de armazenamento de dados, então a
migração de LVM2 não se aplica a você. Se este for o caso, você pode
ignorar com segurança quaisquer partes do documento fazendo referência a
LVM/LVM2. Atualizar para o Linux 2.6 não requer que você armazene seus
dados em partições LVM - você pode manter seus dados em partições de formato
padrão como sempre manteve.
Se você não é um usuário de LVM, mas acha que o LVM2 parece útil para você, você
pode conveter seus discos para o formato mais tarde, seguindo o Guia de instalação de LVM2 do Gentoo. Por hora,
vamos nos concentrar em fazer uma boa migração para o 2.6.
2.
Preparação
Atualizando o seu sistema
Algumas das atualizações que vieram com o Linux 2.6 também precisaram de algumas
mudanças nas aplicações de base. Antes de continuar, você deve ter certeza de
que seu sistema está relativamente atualizado, e para ter certeza total, você
deve atualizar todos os pacotes de world e system onde atualizações estiverem
disponíveis.
Em particular, certifique-se que você tem as últimas versões estáveis dos
seguintes pacotes:
- sys-apps/baselayout
- sys-apps/util-linux
-
sys-kernel/genkernel (só se você quiser usar o genkernel ao invés
de configuração manual)
Listagem de código 2.1: Atualizando todos pacotes de world |
# emerge --sync
# emerge -ua world
|
modutils e module-init-tools
sys-apps/modutils é o pacote que fornece as ferramentas modprobe,
rmmod e insmod para Linux 2.4.
O Linux 2.6 introduziu um novo formato de módulos, e portanto precisa de novas
ferramentas para lidar com módulos. Elas estão reunidas no pacote
sys-apps/module-init-tools.
Agora você deve remover modutils e instalar module-init-tools:
Listagem de código 2.2: Mudando de modutils para module-init-tools |
# emerge --unmerge sys-apps/modutils
# emerge module-init-tools
|
Nota:
Não se preocupe - embora você tenha acabado de remover o modutils, o
module-init-tools fornece compatibilidade com o Linux 2.4, para que você ainda
possa carregar o Linux 2.4 e lidar com módulos do kernel.
|
Nota:
Pela razão acima, o module-init-tools pode já estar instalado e funcionando com
seu kernel existente do Linux 2.4. Neste caso, não se preocupe sobre este passo
- seu sistema já está pronto para lidar com módulos do Linux 2.6.
|
Instalando o udev
Não há configuração envolvida aqui. Simplesmente use o emerge para
instalar o udev:
Listagem de código 2.3: Instalando o udev |
# emerge -a udev
|
Você agora deve ler o Guia de udev do
Gentoo para ter uma idéia completa das diferenças entre udev e devfs.
Verificando os nódulos de dispositivos essenciais
Quando o sistema carregar, o sistema irá precisar de alguns nódulos de
dispositivos essenciais. Como o udev não é incluído no kernel, ele não é ativado
imediatamente. Para contornar o problema, você deve certificar-se que você tem
alguns nódulos de dispositivos essenciais em seu disco.
Nossos arquivos de estágio de instalação devem ter criados os dispositivos
necessários durante a instalação inicial. No entanto, alguns usuários disseram
que isso não é o caso. Nós iremos aproveitar a oportunidade para verificar se os
arquivos de dispositivos existem, e criá-los se não existirem.
Como seu gerenciador de dispositivos será montado em /dev, nós não podemos
acessá-lo diretamente. Para tanto, iremos fazer bind-mount de sua partição raiz
(root) em outro local e acessar o diretório /dev diretamente de lá.
Listagem de código 2.4: Fazendo bind-mount da sua partição raiz (root) e listando dispositivos estáticos |
# mkdir -p /mnt/temp
# mount -o bind / /mnt/temp
# cd /mnt/temp/dev
# ls -l console null
|
Se o comando ls acima relatou que nem console ou null
existem, você deve criá-los como visto abaixo.
Listagem de código 2.5: Criando os nódulos de console e null que faltam |
# mknod -m 660 console c 5 1
# mknod -m 660 null c 1 3
|
Você agora deve desmontar sua partição raiz (root) que foi bind-mounted, mesmo
se você não teve que criar os dispositivos:
Listagem de código 2.6: Desmontando a raiz (root) bind-mounted |
# cd
# umount /mnt/temp
# rmdir /mnt/temp
|
Instalando utilitários da ALSA
A ALSA precisa de que você tenha alguns pacotes instalados, para que as
aplicações possam usar a API da ALSA. Os pacotes também irão permitir que você
controle os níveis de mixador e volume. Instale os utilitários necessários como
abaixo:
Listagem de código 2.7: Instalando utilitários e bibliotecas da ALSA |
# emerge -a alsa-lib alsa-utils alsa-tools alsa-headers alsa-oss
|
3.
Instalando as fontes do Linux 2.6
Escolhendo e instalando um kernel
A primeira coisa que você precisa fazer é instalar as fontes de um kernel 2.6 de
sua escolha. Os dois kernéis 2.6 suportados pelo Gentoo são atualmente
gentoo-sources (para desktops) e hardened-sources (para
servidores). Existem outros disponíveis, veja o Guia de kernel do Gentoo para mais
escolhas.
Neste guia, iremos usar o gentoo-sources como um exemplo. Instale
as fontes de kernel escolhidas usando o utilitário emerge:
Listagem de código 3.1: Instalando o gentoo-sources |
# emerge -a gentoo-sources
These are the packages that I would merge, in order:
Calculating dependencies ...done!
[ebuild NS ] sys-kernel/gentoo-sources-2.6.10-r4
Do you want me to merge these packages? [Yes/No] y
|
Quando rodar o comando emerge acima, se você vir que ele quer instalar
uma versão 2.4 dos gentoo-sources (como gentoo-sources-2.4.26),
isto significa que o profile (perfil) que você está usando não é desenhado para
usuários de Linux 2.6. Por favor siga o Documento de atualização do Gentoo
para trocar para um profile baseado em 2.6, e tente instalar as fontes de kernel
2.6 novamente.
Atualizando o link simbólico /usr/src/linux
Vários componentes dos utilitários do Gentoo dependem de que o /usr/src/linux
seja um link simbólico para as fontes do kernel que você está rodando (ou contra
as quais deseja compilar).
Nós iremos agora atualizar nosso link /usr/src/linux para que ele aponte para as
fontes de kernel que nós acabamos de instalar. Continuando nosso exemplo:
Listagem de código 3.2: Atualizando o softlink do /usr/src/linux |
# cd /usr/src
# ln -sfn linux-2.6.10-gentoo-r4 linux
|
4.
Armadilhas conhecidas da migração para o Linux 2.6
Antes de prendermo-nos na configuração do kernel, irei tentar detalhar os erros
mais comuns que as pessoas fazem na hora de migrar para o Linux 2.6, já que
alguns desses pontos irão influenciar como você configura o novo kernel.
Nota:
Nem todos dos pontos são relevantes aqui, mas irei detalhar todos em um lugar, e
você pode tomar como referência depois.
|
Não use "make oldconfig" com um .config de 2.4
Nota:
Se você não entende o que isso significa, não se preocupe, você não fará este
erro se você seguir o resto do guia corretamente.
|
Várias perguntas serão feitas, já que houve uma grande quantidade de mudanças.
Muitas pessoas que tentam fazer um make oldconfig de um config de 2.4
acabam criando um kernel que não funciona (como sem saída na tela, sem entrada
no teclado, etc...). Por favor salve-se do problema, e use o método de
configuração tradicional menuconfig só desta vez.
Não use ide-scsi para gravar CDs/DVDs
No Linux 2.4, o único jeito de conseguir bons resultados na gravação de CDs/DVDs
era ativar a (feiosa) emulação de ide-scsi. Para nossa sorte, o layer de
IDE no Linux 2.6 foi estendido com suporte para gravação de CDs/DVDs muito
melhor.
Você não precisa ativar nenhuma opção adicional para ativar o suporte a gravação
de CDs. Só certifique-se de não habilitar ide-scsi como você
costumava.
Alto-falante do PC Speaker agora é uma opção configurável
Você não irá receber seus bipes normais de console (ou qualquer resposta do
alto-falante do PC) se você não ativar especificamente a opção PC speaker
(CONFIG_INPUT_PCSPKR):
Listagem de código 4.1: Local da opção PC speaker |
Device Drivers --->
Input device support --->
[*] Misc
<*> PC Speaker support
|
Nota:
Por "Speaker do PC", estou querendo dizer o alto-falante análogo que bipa quando
o seu sistema está ligando, não estou dizendo o som normal de hardware usado
para tocar músicas, etc...
|
Novo bloco de armazenamento USB às vezes é problemático
Muito recentemente, um novo driver de dispositivos de armazenamento USB foi
adicionado ao kernel. Quando o documento foi escrito, o driver ("ub") ainda
estava em seu estado inicial e alguns usuários acham que ele não é confiável. Se
você tiver problemas para acessar seu disco rígido USB, flash disk USB, leitor de
cartões USB, ou câmera digital USB, então você pode experimentar o driver antigo
no estilo SCSI:
Listagem de código 4.2: Desligando o ub |
Device Drivers --->
Block devices --->
< > Low Performance USB Block driver
|
Nota:
O antigo driver no estilo SCSI (USB Mass Storage support) está ativado por
padrão. Ele pode ser encontrado em "Device Drivers --> USB support", mas
geralmente não irá funcionar quando o ub também estiver presente.
|
usbdevfs renomeado para usbfs
Se você editou seu arquivo /etc/fstab para personalizar o jeito que
o sistema de arquivos do dispositivo USB é montado, você pode ter que modificar
o tipo de sistema de arquivos de usbdevfs para usbfs.
Nota:
Kernéis 2.4 recentes permitem que você use tanto "usbfs" quanto "usbdevfs",
então você não terá problemas de compatibilidade fazendo isso.
|
Não faça renice do X
Se você é um usuário de desktop 2.4, você pode ter hackeado seu sistema para
rodar o X com uma prioridade maior, e em alguns casos isso fornece uma
performance de desktop melhor.
Houve muitas mudanças no scheduler do 2.6 que mudaram este comportamento. Se
você continuar a rodar o X com uma prioridade maior, ele fará exatamente o
contrário que ele deve fazer (rodar o servidor gráfico com uma prioridade
muito alta) e você perceberá as conseqüências como o som gaguejando e tempos de
carregamento demorados de aplicações porque sua CPU está passando muito tempo
servindo o X e somente o X.
No Linux 2.6, você não precisa mais fazer renice de aplicações de desktop para
obter boa interatividade. Por favor remova seus hacks de "niceness"!
Arquivo de configuração de X11 agora deve usar /dev/input/mice para
mouses PS/2 e USB
Uma das mudanças que uma configuração padrão de udev introduz é uma organização
diferente dos nódulos de dispositivos de mouse. Anteriormente, você tinha nódulos
como /dev/psaux e /dev/mouse. Agora você terá
nódulos como /dev/input/mouse0, /dev/input/mouse1,
e um nódulo coletivo /dev/input/mice que combina movimentos
de todos mouses.
Já que as antigas configurações de X tipicamente fazem referência a
/dev/mouse ou /dev/psaux você pode ver um erro
parecido com o mostrado abaixo quando você tentar iniciar o X11:
Listagem de código 4.3: Erro comum na hora de iniciar o X em um sistema udev pela primeira vez |
(EE) xf86OpenSerial: Cannot open device /dev/mouse
No such file or directory.
(EE) Mouse0: cannot open input device
(EE) PreInit failed for input device "Mouse0"
No core pointer
|
Para corrigir isso, abra sua configuração de X11 em um editor de texto, e
atualize a seção de mouse InputDevice para usar o dispositivo
/dev/input/mice. Um exemplo é mostrado abaixo:
Listagem de código 4.4: Abrindo seu arquivo de configuração X11 |
# nano -w /etc/X11/xorg.conf
|
Nota:
Se você ainda estiver usando XFree86, seu arquivo de configuração será
/etc/X11/XF86Config
|
Listagem de código 4.5: Amostra de seção de mouse InputDevice |
Section "InputDevice"
Identifier "Mouse0"
Driver "mouse"
Option "Protocol" "auto"
Option "Device" "/dev/input/mice"
EndSection
|
Nota:
Se você estiver usando um mouse serial, o novo caminho de dispositivo será
/dev/tts/0 ao invés de /dev/ttyS0.
|
Novos drivers de Serial-ATA (SATA) dão nomes diferentes aos dispositivos
Se você usou os drivers originais de Serial ATA no Linux 2.4, você provavelmente
observou que seus dispositivos de SATA tinham nomes como /dev/hde.
O Linux 2.6 introduziu novos drivers de SATA (libata) que são baseados no
subsistema de SCSI. Como os drivers são baseados em SCSI, seus discos de SATA
irão agora aparecer como dispositivos de SCSI. Seu primeiro disco de SATA será
chamado de /dev/sda. Você precisará atualizar seu arquivo
/etc/fstab para refletir isso, e você precisará ter isso em mente quando
for escolher o parâmetro de inicialização de kernel root/real_root mais adiante.
Nota:
O libata foi portado para as versões recentes do Linux 2.4, então talvez você
esteja familiar com os novos nomes de dispositivos.
|
O bootsplash não funciona mais
Se você usava um kernel gentoo-sources-2.4, você pode ter usado a
funcionalidade de bootsplash para ter um console com um framebuffer
colorido.
O desenvolvedor do bootsplash parece ter perdido o interesse em seu projeto,
dado alguns problemas de design. No entanto, o desenvolvedor do Gentoo
Michal Januszewski está desenvolvendo um sucessor, gensplash, que
é incluído no kernel gentoo-sources-2.6. Você pode seguir as instruções do
Michal em
Gensplash em 5 passos fáceis no documento para familiarizar-se com a
operação do gensplash.
Drivers de I2C agora incluídos no kernel
Se você usa o lm-sensors para monitorar temperaturas e níveis de
energia, você antes precisava instalar o pacote i2c para ter o suporte
de hardware.
Os drivers de hardware de I2C agora são incluídos no kernel do Linux 2.6, sem a
necessidade de um pacote i2c externo. Lembre-se de compilar suporte para seus
dispositivos I2C específicos na configuração do kernel. Você então poderá usar o
lm-sensors como normalmente.
5.
Configurando, construindo e instalando o kernel
Com o Linux 2.4, você tem duas opções para gerenciar sua nova construção de
kernel.
-
O método padrão é configurar o kernel manualmente. Isto pode parecer ousado,
mas é o melhor método contanto que você conheça seu sistema. Se você
quiser configurar seu kernel manualmente, por favor continue com o próximo capítulo.
-
A opção alternativa é usar o utilitário genkernel para configurar,
compilar e instalar um kernel automaticamente para você. Se você deseja
usar o genkernel, pule o próximo capítulo e continue com
usando o genkernel.
6.
Padrão: configuração manual
Configurando o kernel
Agora vamos continuar com a configuração do kernel. Abra o menuconfig da maneira
normal:
Listagem de código 6.1: Rodando o menuconfig |
# cd /usr/src/linux
# make menuconfig
|
Você provavelmente deve estar familiar com o uso do menuconfig de configurar
kernéis 2.4. Felizmente, a front-end pouco mudou, mas você irá observar uma
organização muito melhor das opções de kernel, mais muitas novas opções
que não existiam no 2.4.
Certifique-se de ativar as seguintes importantes opções de kernel:
Listagem de código 6.2: Opções de kernel necessárias |
File systems --->
Pseudo Filesystems --->
[*] /proc file system support
[*] Virtual memory file system support (former shm fs)
General setup --->
[*] Support for hot-pluggable devices
Device Drivers --->
Sound --->
<*> Sound card support
Advanced Linux Sound Architecture --->
<M> Advanced Linux Sound Architecture
<M> Sequencer support
<M> OSS Mixer API
[*] OSS Sequencer API
Device Drivers --->
Multi-device support (RAID and LVM) --->
[*] Multiple devices driver support (RAID and LVM)
<*> Device mapper support
|
Aviso:
Antigamente você pode ter incluído suporte para o /dev file system
(agora marcado OBSOLETO). Não ative suporte de devfs. Nós instalamos o udev,
que usaremos no lugar do devfs deste ponto em diante.
|
Também, lembre-se de ativar suporte para os sistemas de arquivo que você usar, e
o hardware presente em seu sistema. Certifique-se de ativar suporte para seu
controlador IDE em sua placa-mãe se você deseja ter os benefícios de acesso
rápido de disco DMA. Veja a seção Configurando o
kernel do Manual do Gentoo
para assistência adicional aqui.
Construindo o kernel
Agora que nós configuramos o kernel, nós podemos começar o processo de
compilação:
Listagem de código 6.3: Compilando a fonte do kernel |
# make && make modules_install
|
Nota:
Você talvez lembre-se de ter de rodar make dep com fontes de Linux 2.4.
Isto não é mais necessário.
|
Espere a compilação do kernel terminar (e observe a saída da compilação muito
mais legível).
Instalando o kernel
O próximo passo é montar sua partição /boot e copiar a imagem do
kernel. Você deve então atualizar sua configuração de gerenciador de
inicialização manualmente.
Listagem de código 6.4: Instalando o kernel |
# mount /boot
# cp arch/i386/boot/bzImage /boot/bzImage-2.6.10-gentoo-r4
# cp System.map /boot/System.map-2.6.10-gentoo-r4
|
Note que as instruções acima são somente exemplos, você deve seguir seu
procedimento normal de atualização de kernéis seguindo as instruções no Manual do Gentoo (veja o capítulo Configurando
o kernel).
Quando atualizar sua configuração de gerenciador de inicialização, não remova a
entrada antiga que aponta para seu kernel 2.4. Desta forma, você poderá
facilmente trocar entre os dois se algo não estiver funcionando.
Agora continue com a seção Configuração de módulos.
7.
Alternativa: usando o genkernel
Se você prefere usar o genkernel ao invés de configurar seu kernel manualmente,
você ficará feliz de ouvir que usar o genkernel para produzir kernéis 2.6 é
muito semelhante ao processo que você fez para produzir seu kernel 2.4 antigo.
Você pode rodar o genkernel como mostrado abaixo:
Listagem de código 7.1: Rodando o genkernel com alguns argumentos comuns |
# genkernel --udev --menuconfig --bootloader=grub all
|
No exemplo acima, aproveitamos as funções do genkernel de abrir o menuconfig
para permitir que você personalize a configuração do kernel (se você desejar), e
atualizar a configuração do gerenciador de inicialização do grub depois da
compilação.
Você deve escolher os argumentos do genkernel que atendem às suas necessidades,
mas não se esqueça de incluir o argumento --udev! Veja o Guia de genkernel do Gentoo Linux e o
capítulo Configurando o
kernel do Manual do Gentoo
para mais informações.
Se você escolher atualizar a configuração do gerenciador de inicialização você
mesmo, você deve lembrar-se de incluir o parâmetro de kernel udev. Uma
amostra de seção de configuração do grub é mostrada abaixo, mas lembre-se
de ajustar o parâmetro real_root de acordo com seu sistema.
Listagem de código 7.2: Amostra de configuração do GRUB para genkernel + udev |
title=Gentoo Linux (kernel 2.6)
root (hd0,0)
kernel /kernel-2.6.10-gentoo-r4 udev root=/dev/ram0 init=/linuxrc ramdisk=8192 real_root=/dev/hda3
initrd /initrd-2.6.10-gentoo-r4
|
8.
Configuração de módulos
Instalando módulos externos
Muitos usuário irão ainda depender de módulos de kernel que são construídos fora
da árvore do kernel. Exemplos comuns são os drivers gráficos binários da ATI e
Nvidia. Você agora precisa instalar os módulos, que irão compilar contra as
fontes de 2.6 encontradas em /usr/src/linux. Este normalmente é o
caso de emerge nomedopacote para todos módulos externos que você costuma
usar com o 2.4.
Refira-se de novo ao capítulo Configurando o
kernel do Manual do
Gentoo para mais informações.
Carregando módulos automaticamente
Você pode ter decidido compilar alguns componentes do kernel como módulos (ao
invés de compilá-los diretamente no kernel) e gostaria de tê-los carregando
automaticamente na inicialização como você fazia com o 2.4. Também, se você
instalou quaisquer módulos externos da árvore do portage (como descrito acima),
você provavelmente quer que eles também carreguem automaticamente.
Você pode fazer isso de maneira parecida com o que você fez com o 2.4.
Simplesmente abra o arquivo /etc/modules.autoload.d/kernel-2.6 em
um editor de texto e liste os nomes dos módulos que você quer carregar
automaticamente.
Listagem de código 8.1: Abrindo a lista de módulos carregados automaticamente no nano |
# nano -w /etc/modules.autoload.d/kernel-2.6
|
Listagem de código 8.2: Lista de amostra de módulos para carregar automaticamente os módulos 3c59x e nvidia |
# /etc/modules.autoload.d/kernel-2.6: módulos de kernel para carregar quando o sistema iniciar.
#
# Note que este arquivo é para kernéis 2.6.
#
# Adicione os nomes dos módulos que você deseja carregar quando o
# sistema iniciar neste arquivo, um por linha. Comentários começam com # e
# são ignorados. Leia man modules.autoload para mais detalhes.
3c59x
nvidia
|
9.
Migração de LVM para LVM2
Atualizando as ferramentas para LVM2
Nota:
Se você não usa LVM para gerenciar seu armazenamento de disco, você pode pular
este capítulo com segurança e ir para o próximo.
|
Felizmente, atualizar das ferramentas de usuário de LVM1 para a versão LVM2 é
muito simples:
Listagem de código 9.1: Atualizando ferramentas de usuário de LVM1 para LVM2 |
# emerge --unmerge lvm-user
# emerge lvm2
|
Nota:
As ferramentas de LVM2 são totalmente compatíveis com LVM1. Seus dados de disco
não serão tocados. Você não irá quebrar compatibilidade com versões anteriores
fazendo isso, você continuará podendo carregar o 2.4 como normalmente.
|
10.
Iniciando o Linux 2.6
Agora está na hora de iniciar no Linux 2.6. Feche todas aplicações e reinicie:
Listagem de código 10.1: Reiniciando |
# umount /boot
# reboot
|
Quando você reiniciar, se você seguiu este documento corretamente até aqui, você
terá a opção de escolher carregar o Linux 2.4 ou Linux 2.6 de seu gerenciador de
inicialização. Escolha Linux 2.6.
Uma vez que o sistema tiver iniciado, verifique se as coisas estão funcionando.
Se você fez um erro na configuração do kernel, não se preocupe, você pode voltar
à parte Configurando, construindo e instalando o kernel,
fazer suas mudanças, recompilar e instalar a nova imagem de kernel, reiniciar e
tentar novamente!
Configurando e ligando a ALSA
Nós iremos agora completar a configuração da ALSA e ligar os canais de áudio. Os
pacotes da ALSA fornecem um utilitário para tornar o processo relativamente
simples:
Listagem de código 10.2: Rodando o utilitário de configuração automática da ALSA |
# alsaconf
|
O processo é simples: permitir que o arquivo /etc/modules.d/alsa seja
atualizado automaticamente, e que permitir que a ALSA seja recarregada. O
alsaconf irá então terminar. No entanto, você precisará rodá-lo várias vezes se
você tiver dispositivos de som múltiplos instalados em seu sistema.
Você deve agora adicionar alsasound ao runlevel boot, para que os volumes
sejam salvos na hora de desligar e restaurados na inicialização:
Listagem de código 10.3: Adicionando alsasound ao runlevel boot |
# rc-update add alsasound boot
|
Nota:
O utilitário alsaconf escolhe volumes de som iniciais para seus
dispositivos. Se eles não forem adequados, você pode modificá-los a qualquer
hora com o utilitário alsamixer.
|
Qualquer problema imediato?
Neste estágio você pode voltar à seção Armadilhas
conhecidas da migração para o Linux 2.6 que pode ser útil com problemas
que você encontrar imediatamente.
11.
Arquivos de cabeçalho e NPTL
Agora você deve estar rodando Linux 2.6 e espera-se que todos os problemas foram
resolvidos. Você deve agora atualizar seus arquivos de cabeçalho do Linux e
reinstalar o glibc para que aplicações de usuário possam tirar proveito das
novas funções do Linux 2.6.
Listagem de código 11.1: Atualizando os linux-headers |
# emerge -u linux-headers
|
Depois de atualizar o pacote de cabeçalhos, você geralmente deve reinstalar o
glibc. Existe uma nova função aqui em que você deve estar interessado - NPTL. O
NTPL é um novo modelo de threading presente no Linux 2.6, que tem funções de
criação e destruição de threads muito mais rápidas. Isso não fará muita
diferença na maior parte dos sistemas, mas você pode querer ativar durante o
processo de migração! Para ativar o NPTL, edite o /etc/make.conf,
adicionando a opção nptl a sua variável de USE.
Aviso:
Se você escolher ativar a variável "nptlonly", esteja ciente de que você não
poderá mais carregar um kernel 2.4.
|
Agora reinstale o glibc (você deve fazer isso mesmo se você escolheu não ativar
o NPTL).
Listagem de código 11.2: Reinstalando o glibc contra os novos cabeçalhos de kernel |
# emerge -a glibc
|
Se você ativou o NPTL, os binários existentes não irão usá-los até eles serem
recompilados. No entanto, qualquer binário compilado daqui para frente
irá usar NTPL. Você pode querer recompilar todos binários agora, assim:
Listagem de código 11.3: Recompilando todos pacotes no sistema |
# emerge -e world
|
Alternativamente, você pode deixar seu sistema converter-se "naturalmente" para
NTPL conforme você for atualizando novas versões de pacotes quando elas foram
lançadas.
12.
Notas finais
Problemas?
Com a incrível quantidade trabalho que foi dada ao Linux 2.6, às vezes é
inevitável que coisas que antes funcionavam bem, não funcionem mais como
esperado.
Se você tiver problemas com seu kernel 2.6, e você pode confirmar que o
problema não existe com o Linux 2.4, por favor abra um bug conosco em nosso
Bugzilla. Nós iremos investigar o
problema, e se nós descobrimos que o problema é com a versão do kernel normal,
nós podemos pedir que você relate-o no bugzilla central do kernel.
Conclusão
Espera-se que você tenha tido uma migração fácil e que você está colhendo os
benefícios que o Linux 2.6 traz sobre o 2.4.
Eu gostaria de dizer obrigado aos vários usuários que realmente 'testaram' este
documento quando estava em seus estágios iniciais e deram feedback sobre como o
processo de migração foi. Sinto não poder ter respondido a todos emails (foram
muitos!), mas eu li cada um, e redefini este documento onde apropriado.
Aproveitem seus sistemas 2.6 :)
Removendo o Linux 2.4 de seu sistema
Depois que você estiver rodando o 2.6 por um tempo, você pode decidir que você
não precisa mais poder usar o Linux 2.4 Os passos que você pode tomar para
limpar seu sistema são detalhados abaixo. Só siga o procedimento na seção se
você tiver certeza que você não quer/precisa usar o 2.4 novamente!
O código-fonte do kernel 2.4 pode ser removido usando o utilitário emerge como
sempre. Por exemplo, presumindo que você tem as versões 2.4 do vanilla-sources e
do gentoo-sources instaladas, você pode usar o seguinte comando para removê-las
mantendo as versões 2.6 intactas:
Listagem de código 12.1: Exemplo: removendo fontes de Linux 2.4 |
# emerge --unmerge =vanilla-sources-2.4.* =gentoo-sources-2.4.*
|
O Portage não irá limpar as instalações de fonte 2.4 completamente, porque
alguns arquivos temporários são criados durante a compilação. É seguro remover
os restos com o seguinte comando:
Listagem de código 12.2: Removendo arquivos temporários restantes |
# rm -rf /usr/src/linux-2.4.*
|
Você adicionalmente pode remover módulos e arquivos de informação relacionados a
sua antiga instalação de kernel 2.4, já que não são mais necessários.
Listagem de código 12.3: Removendo módulos de 2.4 instalados anteriormente |
# rm -rf /lib/modules/2.4.*
|
Os binários de kernel 2.4 usados para iniciar podem também ser removidos
com segurança. Você deve montar sua partição de /boot, e remover as
imagens. Você também deve atualizar sua configuração de gerenciador de
inicialização para que não mais faça referência às imagens de kernel apagadas.
Alguns usuários de Linux 2.4 terão instalado o pacote alsa-driver para
tirar proveito das novas capacidades de áudio inclusas no Linux 2.6. Se você é
um desses usuários, e você seguiu o conselho dado mais cedo no documento sobre
construir a ALSA com as fontes 2.6 do kernel (ao contrário de usar o pacote
alsa-driver), então você pode removê-lo com segurança para prevenir
conflitos no futuro.
Adicionalmente, usuários de lm-sensors terão usado anteriormente o pacote
i2c para fornecer os drivers de hardware. Como já mencionamos, os drivers
de I2C são agora incluídos no kernel, então o pacote também pode ser removido
para prevenir conflitos no futuro.
O daemon de gerenciamento devfs, devfsd, também pode ser removido com
segurança agora que estamos usando udev para gerenciamento de
dispositivos.
Listagem de código 12.4: Removendo o alsa-driver, i2c, e devfsd |
# emerge --unmerge alsa-driver i2c devfsd
|
Se você é um usuário de LVM2, você pode querer converter seus dados no formato
de dados do LVM2 para poder tirar vantagem dos benefícios do LVM2. No entanto, a
operação irá impedir que você acesse seus dados LVM de um kernel 2.4. Se você
quiser continuar com a conversão (isso é totalmente opcional!), você deve
examinar a página de man vgconvert para ver instruções de como fazê-lo.
Um exemplo é mostrado abaixo, onde main é o nome do grupo de volume.
Listagem de código 12.5: Convertendo um volume de formato LVM1 para LVM2 |
# vgconvert -M2 main
|
|