Gentoo Logo

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


[ << ] [ < ] [ Início ] [ > ] [ >> ]


7. Configurando o kernel

Conteúdo:

7.a. Fuso horário

Você deve primeiro selecionar seu fuso horário para que seu sistema saiba onde está localizado. Procure seu fuso horário em /usr/share/zoneinfo, então copie-o para /etc/localtime. Por favor evite as zonas de fuso horário em /usr/share/zoneinfo/Etc/GMT*, já que seus nomes não refletem as zonas esperadas. Por exemplo, GMT-8 é na verdade GMT+8.

Listagem de código 1.1: Configurando informação de fuso horário

# ls /usr/share/zoneinfo
(Suponha que você queira usar GMT)
# cp /usr/share/zoneinfo/GMT /etc/localtime

7.b. Instalando as fontes

Escolhendo um kernel

O centro através do qual todas distribuições são construídas é o kernel do Linux. Ele fica entre os programas de usuário e o hardware do sistema. O Gentoo permite que seus usuários escolham dentro de uma variedade de fontes de kernel. Uma lista completa com descrições pode ser encontrada no Guia de Kernel do Gentoo.

Para sistemas baseados em x86 nós temos, entre outros kernéis, vanilla-sources (a fonte de kernel padrão como desenvolvida pelos desenvolvedor do kernel do Linux) gentoo-sources (fonte de kernel com patches de melhoria de performance e funções), ...

Escolha sua fonte de kernel e instale-a usando o comando emerge. USE="-doc" é necessário para evitar instalar xorg-x11 ou outras dependências neste ponto. USE="symlink" não é necessário para uma nova instalação, mas garante a criação correta do link simbólico /usr/src/linux.

Listagem de código 2.1: Instalando uma fonte de kernel

# USE="-doc symlink" emerge gentoo-sources

Quando você olhar em /usr/src você deve perceber um link simbólico chamado linux apontando para a seu fonte do kernel. Neste caso, as fontes de kernel instaladas apontam para gentoo-sources-2.6.12-r10. Sua versão pode ser diferente, mantenha isto em mente.

Listagem de código 2.2: Vendo o link simbólico para a fonte do kernel

# ls -l /usr/src/linux
lrwxrwxrwx    1 root     root      12 Oct 13 11:04 /usr/src/linux -> linux-2.6.12-gentoo-r10

Agora está na hora de configurar e compilar sua fonte do kernel. Você pode usar o comando genkernel para fazer isto, que irá construir um kernel genérico parecido com o do CD de instalação. Iremos, porém, explicar a configuração manual primeiro, já que é a melhor maneira de otimizar seu ambiente.

Se você quiser configurar seu kernel manualmente, continue agora com Padrão: Configuração manual. Se você quiser usar o comando genkernel, você deve ler Alternativa: Usando o genkernel.

7.c. Padrão: Configuração manual

Introdução

Configurar um kernel manualmente é freqüentemente tido como o procedimento mais difícil que um usuário de Linux tem de fazer. Grande mentira -- depois de configurar uns dois kernéis você nem lembrará que foi difícil ;)

No entanto, uma coisa é verdade: você deve conhecer seu sistema quando você começar a configurar o kernel manualmente. A maior parte das informações pode ser obtida instalando o pciutils (emerge pciutils), que contém o lspci. Você poderá usar o lspci dentro do ambiente de chroot. Você pode seguramente ignorar quaisquer avisos de pcilib (como pcilib: cannot open /sys/bus/pci/devices) que o lspci der. Alternativamente, você pode rodar lspci de um ambiente fora do chroot. Os resultados são os mesmos. Você também pode rodar lsmod para quer ver módulos de kernel o CD de Instalação usa (pode dar uma boa dica sobre o que ativar).

Agora vá para o diretório da fonte do kernel e execute make menuconfig. Isto irá iniciar um menu de configuração baseado em ncurses.

Listagem de código 3.1: Rodando o menuconfig

# cd /usr/src/linux
# make menuconfig

Você verá várias seções de configuração. Iremos primeiro listar algumas opções que você deve ativar (ou o Gentoo não irá funcionar, ou não irá funcionar sem mudanças adicionais).

Ativando as opções necessárias

Antes de tudo, ative o uso de código/drivers em desenvolvimento e experimentais. Você precisa disso, senão muito código/drivers importantes não irão aparecer:

Listagem de código 3.2: Selecionando código/drivers experimentais, General setup

Code maturity level options --->
  [*] Prompt for development and/or incomplete code/drivers
General setup  --->
  [*] Support for hot-pluggable devices

Certifique-se de que todo driver que é vital no processo de inicialização de seu sistema (como controlador SCSI, ...) está compilado no kernel e não como módulo, caso contrário seu sistema não será capaz de inicializar completamente.

Agora escolha a família correta de processador:

Listagem de código 3.3: Selecionando a família correta de processador

 Processor type and features --->
   (Change according to your system)
   (Athlon/Duron/K7) Processor family
 

Agora vá para File Systems e selecione suporte para o sistema de arquivos que você usa. Não os compile como módulos, caso contrário seu sistema Gentoo não será capaz de montar suas partições. Também selecione Virtual memory e /proc file system. Se você estiver usando um kernel 2.4, você precisa selecionar /dev file system já que kernéis 2.4 não suportam udev.

Listagem de código 3.4: Selecionando sistemas de arquivos necessários

(Com um kernel 2.4.x)
 File systems --->
  [*] Virtual memory file system support (former shm fs)
  [*] /proc file system support
  [*] /dev file system support (EXPERIMENTAL)
  [*]   automatically mount /dev at boot
  [ ] /dev/pts file system for Unix98 PTYs
 
(Com um kernel 2.6.x)
File systems --->
  Pseudo Filesystems --->
    [*] /proc file system support
    [*] Virtual memory file system support (former shm fs)


(Selecione uma ou mais das seguintes opções conforme necessárias ao seu sistema)
  <*> Reiserfs support
  <*> Ext3 journalling file system support
  <*> JFS filesystem support
  <*> Second extended fs support
  <*> XFS filesystem support

Se sua BIOS não puder lidar com discos rígidos grandes e você colocou jumpers para relatar um tamanho limitado, você tem que ativar a seguinte opção para ter acesso a seu disco inteiro:

Listagem de código 3.5: Selecionando suporte de redimensionamento de autogeometria

(só kernel 2.4.x)
ATA/IDE/MFM/RLL support --->
  IDE, ATA and ATAPI Block devices --->
    <*>   Include IDE/ATA-2 DISK support
    [ ]     Use multi-mode by default
    [*]     Auto-Geometry Resizing support

Não se esqueça de ativar DMA para seus discos:

Listagem de código 3.6: Ativando DMA

Device Drivers --->
  ATA/ATAPI/MFM/RLL support --->
    [*] Generic PCI bus-master DMA support
    [*]   Use PCI DMA by default when available

Se você estiver usando PPPoE para conectar à Internet ou estiver usando um modem discado, você irá precisar das seguintes opções no kernel:

Listagem de código 3.7: Selecionando drivers necessários para PPPoE

(Com um kernel 2.4.x)
Network device support --->
  <*> PPP (point-to-point protocol) support
  <*>   PPP support for async serial ports
  <*>   PPP support for sync tty ports

(Com um kernel 2.6.x)
Device Drivers --->
  Networking support --->
    <*> PPP (point-to-point protocol) support
    <*>   PPP support for async serial ports
    <*>   PPP support for sync tty ports

As duas opções de compressão não fazem mal, mas não são absolutamente necessárias, bem como a opção PPP over Ethernet, que somente pode ser usada pelo comando rp-pppoe quando configurado para fazer PPPoE em modo de kernel.

Se você precisar, não se esqueça de incluir suporte no kernel para sua placa de rede.

Se você tiver uma CPU Intel que suporta HyperThreading (tm), ou tem um sistema de várias CPUs, você deve ativar "Symmetric multi-processing support":

Listagem de código 3.8: Ativando suporte a SMP

Processor type and features  --->
  [*] Symmetric multi-processing support

Se você usa dispositivos USB (como teclado ou mouse) não se esqueça de ativá-los também:

Listagem de código 3.9: Ativando suporte a USB para dispositivos de entrada

USB Support --->
  <*>   USB Human Interface Device (full HID) support

Usuários de laptop que querem suporte a PCMCIA não devem usar os drivers de PCMCIA se escolherem usar um kernel 2.4. Drivers mais recentes estão disponíveis através do pacote pcmcia-cs que será instalado depois. Usuários de kernel 2.6, todavia, devem usar os drivers de PCMCIA do kernel.

Listagem de código 3.10: Ativando suporte a PCMCIA para kernéis 2.6

Bus options (PCI, PCMCIA, EISA, MCA, ISA)  --->
  PCCARD (PCMCIA/CardBus) support  --->
    <*> PCCard (PCMCIA/CardBus) support
(selecione 16 bit se você precisar de suporte para cartões PCMCIA antigos. A maior parte das pessoas deve colocar isso.)
    <*>   16-bit PCMCIA support
    [*]   32-bit CardBus support
(selecione as pontes relevantes abaixo)
    --- PC-card bridges
    <*> CardBus yenta-compatible bridge support (NEW)
    <*> Cirrus PD6729 compatible bridge support (NEW)
    <*> i82092 compatible bridge support (NEW)
    <*> i82365 compatible bridge support (NEW)
    <*> Databook TCIC host bridge support (NEW)

Quando você terminar de configurar o kernel, continue com Compilando e instalando.

Compilando e instalando

Agora que seu kernel está configurado, está na hora de compilá-lo e instalá-lo. Saia da configuração e comece o processo de compilação:

Listagem de código 3.11: Compilando o kernel

(Para um kernel 2.4)
# make dep && make bzImage modules modules_install

(Para um kernel 2.6)
# make && make modules_install

Quando o kernel terminar de compilar, copie a imagem do kernel para /boot. Use o nome que você achar mais adequado para sua escolha de kernel e lembre-se dele, já que você irá precisar dele quando você for configurar seu gerenciador de inicialização. Lembre-se de substituir <versão-do-kernel> com o nome e versão de seu kernel.

Listagem de código 3.12: Instalando o kernel

# cp arch/i386/boot/bzImage /boot/<versão-do-kernel>

Agora continue com Módulos do kernel.

7.d. Alternativa: Usando o genkernel

Se você estiver lendo esta seção, você escolheu usar nosso script genkernel para configurar o kernel para você.

Agora que a árvore fonte de seu kernel está instalada, está na hora de compilar seu kernel usando nosso script genkernel para construir um kernel automaticamente para você. O genkernel funciona configurando um kernel praticamente idêntico ao modo que nosso kernel do CD de instalação é configurado. Isto significa que quando você usar o comando genkernel para construir seu kernel, seu sistema irá geralmente detectar seu hardware na hora da inicialização, como no CD de instalação. Dado que o genkernel não necessita de nenhuma configuração manual, é uma solução ideal para aqueles usuários que não se sentem confortáveis compilando seus próprios kernéis.

Agora vamos ver como usar o genkernel. Primeiro, faça emerge da ebuild do genkernel:

Listagem de código 4.1: Instalando o genkernel

# emerge genkernel

A seguir, se você for configurar um kernel 2.6, copie a configuração de kernel usada no CD de instalação para o local onde o genkernel procura pela configuração padrão de kernel:

Listagem de código 4.2: Copiando a configuração do kernel do CD de instalação

(Só faça isso se você for configurar um kernel 2.6)
# zcat /proc/config.gz > /usr/share/genkernel/x86/kernel-config-2.6

Agora, compile sua fonte de kernel rodando genkernel all. Esteja alerta, entretanto, de que como o genkernel compila um kernel que suporta quase todos hardwares, esta compilação irá demorar bastante para terminar!

Note que se sua partição de inicialização (boot) não usa ext2 ou ext3 como sistema de arquivos você precisará configurar manualmente seu kernel usando o comando genkernel --menuconfig all e adicionando suporte para seu sistema de arquivos dentro do kernel (isto é, não como módulo). Usuários de EVMS2 ou LVM2 devem adicionar --evms2 ou --lvm2 como argumento também.

Listagem de código 4.3: Rodando o genkernel

# genkernel all

Quando o genkernel terminar, um kernel, um conjunto completo de módulos e um initial root disk (initrd) serão criados. Nós iremos usar o kernel e o initrd quando formos configurar um gerenciador de inicialização numa parte mais adiantada deste documento. Escreva os nomes do kernel e initrd, uma vez que você irá precisar deles quando for escrever o arquivo de configuração do gerenciador de inicialização. A initrd será iniciada imediatamente após a inicialização para fazer a auto-detecção de hardware (igual ao CD de instalação), antes de seu sistema "de verdade" iniciar.

Listagem de código 4.4: Verificando o nome da imagem de kernel criada e initrd

# ls /boot/kernel* /boot/initramfs*

Agora, vamos fazer mais um passo para deixar nosso sistema mais parecido com o CD de instalação -- vamos instalar o coldplug. Enquanto o initrd detecta automaticamente hardware que é necessário para carregar seu sistema, o coldplug detecta o resto. Para instalar e habilitar o coldplug, digite o seguinte:

Listagem de código 4.5: Instalando e ativando o coldplug

# emerge coldplug
# rc-update add coldplug boot

7.e. Módulos do kernel

Configurando os módulos

Você deve listar os módulos que você quer carregar automaticamente em /etc/modules.autoload.d/kernel-2.4 (ou kernel-2.6). Você pode colocar opções adicionais aos módulos também se quiser.

Para ver todos módulos disponíveis, rode o seguinte comando usando o find. Não se esqueça de substituir "<versão do kernel>" com a versão do kernel que você acaba de compilar:

Listagem de código 5.1: Vendo todos módulos disponíveis

# find /lib/modules/<versão do kernel>/ -type f -iname '*.o' -or -iname '*.ko'

Por exemplo, para carregar o módulo 3c59x.o automaticamente, edite o arquivo kernel-2.4 ou kernel-2.6 e coloque o nome do módulo nele.

Listagem de código 5.2: Editando o /etc/modules.autoload.d/kernel-2.4

(Examplo para kernéis 2.4)
# nano -w /etc/modules.autoload.d/kernel-2.4

Listagem de código 5.3: /etc/modules.autoload.d/kernel-2.4 ou kernel-2.6

3c59x

Continue a instalação com Configurando seu sistema.


[ << ] [ < ] [ Início ] [ > ] [ >> ]


Imprimir

View all

Atualizado 6 de janeiro de 2006

A versão original deste documento foi atualizada em 7 de agosto de 2014

Resumo: O kernel do Linux é o centro de toda distribuição. Este capítulo explica como configurá-lo.

Sven Vermeulen
Autor

Roy Marples
Autor

Daniel Robbins
Autor

Chris Houser
Autor

Jerry Alexandratos
Autor

Seemant Kulleen
Desenvolvedor do Gentoo x86

Tavis Ormandy
Desenvolvedor do Gentoo Alpha

Jason Huebel
Desenvolvedor do Gentoo AMD64

Guy Martin
Desenvolvedor do Gentoo HPPA

Pieter Van den Abeele
Desenvolvedor do Gentoo PPC

Joe Kallar
Desenvolvedor do Gentoo SPARC

John P. Davis
Editor

Pierre-Henri Jondot
Editor

Eric Stockbridge
Editor

Rajiv Manglani
Editor

Jungmin Seo
Editor

Stoyan Zhekov
Editor

Jared Hudson
Editor

Colin Morey
Editor

Jorge Paulo
Editor

Carl Anderson
Editor

Jon Portnoy
Editor

Zack Gilburd
Editor

Jack Morgan
Editor

Benny Chuang
Editor

Erwin
Editor

Joshua Kinard
Editor

Tobias Scherbaum
Editor

Xavier Neys
Editor

Grant Goodyear
Revisor

Gerald J. Normandin Jr.
Revisor

Donnie Berkholz
Revisor

Ken Nowack
Revisor

Lars Weiler
Colaborador

Enderson Maia
Tradutor Responsável

Marcelo Góes
Tradutor

Eduardo Magalhães
Tradutor

Marcelo Azambuja
Tradutor

Marcos Vinicius Buzo
Tradutor

Donate to support our development efforts.

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