Gentoo Logo

Aviso : Este manual foi substituído por uma versão mais nova 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 faça um link simbólico para /etc/localtime usando o comando ln:

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

# ls /usr/share/zoneinfo
(Suponha que você queira usar GMT)
# ln -sf /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 alpha nós temos as vanilla-sources (fontes padrão de kernel 2.6).

Escolha sua fonte de kernel e instale-a usando o comando emerge.

No próximo exemplo iremos instalar as vanilla-sources. Substitua de acordo com sua escolha de fontes, isto é meramente um exemplo:

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

# emerge vanilla-sources

Quando você olhar em /usr/src você deve ver um link simbólico chamado linux apontando para a fonte do kernel:

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

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

Se este não for o caso (isto é, o link simbólico apontar para uma fonte de kernel diferente) mude o link simbólico antes de continuar:

Listagem de código 2.3: Mudando o link simbólico da fonte do kernel

# rm /usr/src/linux
# cd /usr/src
# ln -s linux-2.6.11.2 linux

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. Você pode rodar lsmod para ver que módulos 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

Agora vá para File Systems e selecione suporte para os sistemas de arquivos que você usa. Não os compile como módulos, senão seu sistema Gentoo não será capaz de montar sua partições. Também selecione Virtual memory, /proc file system, (/dev file system + Automatically mount at boot só para um kernel 2.4):

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

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

(Com um kernel da linha 2.6.x)
File systems --->
  Pseudo Filesystems --->
    [*] /proc file system support
    [ ] /dev file system support (OBSOLETE)
    [*] 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 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.4: Selecionando drivers necessários para PPPoE

(Com um kernel da linha 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 da linha 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.

As seguintes opções também são recomendadas:

Listagem de código 3.5: Opções recomendadas para Alpha

General setup --->
  <*> SRM environment through procfs
  <*> Configure uac policy via sysctl

Plug and Play configuration --->
  <*> Plug and Play support
  <M>   ISA Plug and Play support

SCSI support --->
  SCSI low-level drivers --->
    <*> SYM53C8XX Version 2 SCSI support (NEW)
    <*> Qlogic ISP SCSI support

Network device support --->
  Ethernet (10 or 100 Mbit) --->
    <M> DECchip Tulip (dc21x4x) PCI support
    <M> Generic DECchip & DIGITAL EtherWORKS PCI/EISA
    <M> EtherExpressPro/100 support (eepro100)
    <M> EtherExpressPro/100 support (e100)
  Ethernet (1000 Mbit) --->
    <M> Alteon AceNIC
      [*] Omit support for old Tigon I
    <M> Broadcom Tigon3
  [*] FDDI driver support
  <M> Digital DEFEA and DEFPA
  <*> PPP support
    <*> PPP Deflate compression

Character devices --->
  [*] Support for console on serial port
  [*] Direct Rendering Manager

File systems --->
  <*> Kernel automounter version 4 support
  Network File Systems --->
    <*> NFS
      [*] NFSv3 client
      <*> NFS server
      [*] NFSv3 server
  Partition Types --->
    [*] Advanced partition selection
    [*] Alpha OSF partition support
  Native Language Support
    <*> NLS ISO 8859-1

Sound --->
  <M> Sound card support
    <M> OSS sound modules
      [*] Verbose initialisation
      [*] Persistent DMA buffers
      <M> 100% Sound Blaster compatibles

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.6: Compilando o kernel

(Para um kernel da linha 2.4)
# make dep && make vmlinux modules modules_install

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

(Para todos kernéis)
# make boot

Quando o kernel terminar de compilar, copie a imagem do kernel para /boot. No próximo exemplo iremos presumir que você configurou e compilou o vanilla-sources-2.6.11.2; kernéis recentes podem criar vmlinux ao invés de vmlinux.gz.

Listagem de código 3.7: Instalando o kernel

# cp arch/alpha/boot/vmlinux.gz /boot/
# cp System.map /boot/System.map-2.6.11.2

Também é sábio copiar o seu arquivo de configuração do kernel para /boot, caso você precise :)

Listagem de código 3.8: Copiando sua configuração de kernel

# cp .config /boot/config-2.6.11.2

Agora continue com Instalando módulos de kernel avulsos.

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

Agora, compile suas fontes 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).

Listagem de código 4.2: Rodando o genkernel

# genkernel all
GenKernel v3.0.1_beta10
* ARCH: Alpha 
* KERNEL VER: 2.6.11.2
* kernel: configuring source
* kernel: running mrproper
(Saída removida para aumentar legibilidade)
* Kernel compiled successfully!
* Required Kernel Params:
*   : root=/dev/ram0 init=/linuxrc real_root=/dev/$ROOT
*     where $ROOT is the devicenode for your root partition as
*     you should have specified in /etc/fstab
*              
* You MUST tell your bootloader to use the generated initrd
*              
* Recommended Kernel Params:
*   : vga=0x317 splash=verbose
*              
* Do NOT report kernel bugs (configs included) as genkernel bugs.
* Make sure you have the latest genkernel before reporting bugs
*              
* For more info see /usr/share/genkernel/README

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.3: Verificando o nome da imagem de kernel criada e initrd

# ls /boot/kernel* /boot/initrd*

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.4: Instalando e habilitando o coldplug

# emerge coldplug
# rc-update add coldplug boot

7.e. Instalando módulos de kernel avulsos

Instalando módulos adicionais

Se adequado, você deve instalar ebuilds para hardware adicional que está disponível em seu sistema. Aqui segue uma lista de ebuilds relacionadas a kernel de que você pode fazer emerge:

Ebuild Propósito Comando
x11-drm Aceleração gráfica para ATI Radeon até 9200, Rage128, Matrox, Voodoo e outras placas para xorg-x11. Por favor veja a variável IUSE_VIDEO_CARDS nas ebuilds em /usr/portage/x11-base/x11-drm para ver o que você deve colocar no lugar de suaplaca. VIDEO_CARDS="suaplaca" emerge x11-drm

Esteja avisado, entretanto, de que algumas dessas ebuilds podem lidar com grandes dependências. Para verificar que pacotes serão instalados ao fazer emerge de uma ebuild, use emerge --pretend. Por exemplo, para o pacote x11-drm:

Listagem de código 5.1: Ver lista completa de pacotes a serem instalados

# emerge --pretend x11-drm

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.2: Vendo todos módulos disponíveis

# find /lib/modules/<versão do kernel>/ -type f -iname '*.o' -ou -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.3: Editando o /etc/modules.autoload.d/kernel-2.4

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

Listagem de código 5.4: /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 4 de julho de 2005

Esta tradução não é mais mantida

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

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-2013 Gentoo Foundation, Inc. Questions, Comments? Contact us.