Gentoo Logo

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


O guia completo de migração para o Gentoo Linux 2.6

Conteúdo:

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.

  1. 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.
  2. 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)
    
(o seguinte é necessário para o udev):
General setup  --->
 [*] Support for hot-pluggable devices

(o seguinte é necessário para a ALSA):
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
(e não se esqueça de selecionar sua placa de som dos submenus!)

(os seguintes são necessários se voc6e usar LVM para gerenciamento de discos):
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


Imprimir

Atualizado 24 de agosto de 2005

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

Resumo: Este documento irá ajudar você no processo de migração do Linux 2.4 para Linux 2.6, devfs para udev, OSS para ALSA, e LVM para LVM2.

Daniel Drake
Autor

Sergey Galkin
Colaborador

Sergey Kuleshov
Colaborador

Xavier Neys
Editor

Benny Chuang
Editor

Marcelo Góes
Tradutor

Donate to support our development efforts.

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