# Como instalar lilo e compilar o kernel no gentoo?

## GustavoFrezza

Olá pessoal! Tô me aventurando com o gentoo agora! Na instalação tive dois problemas: 

1- Como eu não tenho experiencia em compilar o kernel, eu optei por usar o genkernel, mas não funcionou, deu uma mensagem de erro e nem começou a compilar! Eu compilei um na raça mesmo, mas não sei se vai funcionar, será que alguem poderia me dar uma dica de como usar o genkernel? Ou poderia me arrumar o arquivo de configuração do kernel, para eu somente carregar as configs e compilar? 

2- Grub! Eu não sou muito chegado no grub e não consegui configurar ele, eu tenho preferencia pelo lilo, que eu sempre usei no debian, mas não consegui instalar o lilo (emerge lilo), o que eu devo fazer para instalar ele? 

Para ajudar, vou colocar os erros que dá: 

 :Arrow:  Problema com o genkernel: 

Eu digito: "genkernel --menuconfig all" ou "genkernel all" e aparece o seguinte erro no log: 

Compiling linux kernel 2.4.28 for x86_64 

Gentoo linux genkernel; version 3.1.0 

Error: no kernel .config specified or file nor found 

 :Arrow:  Problema ao configurar o grub: 

Seguindo o passo-a-passo que eu peguei no gentoobr.org (http://www.gentoobr.org/modules.php?op=modload&name=Sections&file=index&req=viewarticle&artid=2&page=1), eu digito: 

"grub" aqui tudo ok, 

"root (hd0,0) ok tambem, 

"setup (hd0)" aqui dá o erro: 

cheking if "/boot/grub/stage1" exists... no 

cheking if "/grub/stage1" exists... no 

ERROR 15: File not found 

 :Arrow:  Erro ao instalar o lilo: 

Digito "emerge lilo-22.6.1" e dá o erro: 

Calculating dependencies 

!!! Problem in sys-boot/lilo-22.6.1 dependencies 

!!! Especific key requires an operator (sys-boot/lilo-22.6.1) (try adding an "=") exceptions

Muito obrigado!   :Wink: 

----------

## Matheus Villela

1 - O Kernel eu recomendo você mesmo configurar... fui usar uma vez o lance do genkernel e não gostei nem um pouco... ele tenta gerar as melhores configs pro seu hardware, ou seja, vai compilar da mesma forma, então se inglês não for problema perder um tempinho configurando o kernel não custa nada(mesmo porque quando você for atualizar é só conferir as mudanças... as configs pelo menos aqui são "repassadas") sobre o erro não sei lhe dizer  :Razz: 

Porém se você passar qual é teu hardware talvez alguém se disponha a passar um .config "apropriado"  :Wink: 

2 - Nem use o grub se tens preferência pelo lilo  :Very Happy: 

3 - Quando você quer uma versão específica de um programa você tem que adicionar o operando =, nesse caso seria:"emerge =lilo-22.6.1" mas são poucos os casos onde faz sentido isso, se você usar "emerge lilo" a ultima versão estável será instalada(dependendo do que é considerado estável pelo seu sistema  :Wink: , mas isso é outra história  :Very Happy:  )

Boa sorte e bem vindo  :Wink: 

----------

## starcrusher

Olá GustavoFrezza,

1 - Nunca usei o genkernel, sempre compilei um kernel linux "na mão" mesmo.  :Smile: 

2 - Pra usar o grub no Gentoo Linux, você deve primeiro instalá-lo (emerge grub) dentro do seu sistema. Se você não consegue entrar na sua instalação, use o LiveCD e entre numa sessão chroot (siga os passos do Handbook).

Uma instalação do grub bem-sucedida cria a pasta /boot/grub com alguns arquivos:

```
localhost root # ls /boot/grub/

e2fs_stage1_5  grub.conf         menu.lst        pxegrub            stage1          vstafs_stage1_5

fat_stage1_5   grub.conf.sample  minix_stage1_5  reiserfs_stage1_5  stage2          xfs_stage1_5

ffs_stage1_5   jfs_stage1_5      nbgrub          splash.xpm.gz      stage2.netboot
```

O próximo passo é editar/criar o arguivo /boot/grub/grub.conf e adaptá-lo ao seu particionamento de disco e sua imagem do kernel (que eu não sei qual é, de novo nunca usei o genkernel). Assumo que você já tem um grub.conf adaptado (posso ajudá-lo a criar um, se quiser).

Descubra qual é a sua partição de boot. Assumindo um disco mestre IDE na interface primária:

```
localhost root # fdisk -l /dev/hda

...

   Device Boot      Start         End      Blocks   Id  System

...

/dev/hda5   *        2443        2451       72261   83  Linux

/dev/hda6            2452        2514      506016   82  Linux swap

/dev/hda7            2515        2546      257008+  83  Linux

...
```

No meu caso, a partição de boot (onde ficam as imagens do kernel e os arguivos do grub) é a /dev/hda5 -- ou "(hd0,4)" para o grub.

Com esses dados, a instalação do grub fica:

```
localhost root # ls /boot/grub/

...

grub> root (hd0,4)

 Filesystem type is ext2fs, partition type 0x83

grub> setup (hd0)

 Checking if "/boot/grub/stage1" exists... yes

 Checking if "/boot/grub/stage2" exists... yes

 Checking if "/boot/grub/e2fs_stage1_5" exists... yes

 Running "embed /boot/grub/e2fs_stage1_5 (hd0)"...  22 sectors are embedded.

succeeded

 Running "install /boot/grub/stage1 (hd0) (hd0)1+22 p (hd0,4)/boot/grub/stage2 /boot/grub/menu.lst"... succeeded

Done.

grub>quit

```

Isso deve fazer o grub ser disparado na próxima inicialização. Se o grub.conf estiver correto,  as opções de boot aparecerão.

Boa sorte!

----------

## GustavoFrezza

Matheus Villela, Eu até configurei um kernel na mão aqui, mas não sei se vai funcionar direito, pois ainda não consegui bootar! O problema é que eu não entendo quase nada de inglês, então fica dificil configurar...   :Embarassed: 

O hardware é o seguinte: mobo msi k8n neo2 platinum (chipset nforce3), com rede onboard dual gigabit (1 do chipset nforce que é a queeu uso a net, e a outra é realtek 8169), o som é uma sb live (emu10k1), video nvidia gf fx5900xt, hd pata (ide comum mesmo)... Acho que o mais relevante para a configuração do kernel é isso né? Se faltou algo, me avise!

Quanto ao lilo, eu infelizmente não consigo instalar de maneira alguma! Eu entro com o comando "emerge lilo" e ele aparece o erro: 

```
Calculating dependencies 

!!! Problem in sys-boot/lilo-22.6.1 dependencies 

!!! Especific key requires an operator (sys-boot/lilo-22.6.1) (try adding an "=") exceptions
```

E não instala nada!   :Confused: 

starcrusher, eu fiz tudo isso, a instalação foi bem sucedida e instalou os arquivos que vc descreveu!

O grub.conf eu criei conforme o tutorial que eu segui, mas não tenho certeza se ficou certinho, se vc poder me ajudar a criar um, o meu particionamento é assim: hda6 com reiserfs em /, swap é hda7 e o /boot é o hda8 formatado em ext3, o kernel que eu compilei é o 2.4.28, a imagem do kernel fica em /boot/kernel-2.4.28, e o meu windows fica no c: (/dev/hda1).

Eu fiz tudo aquilo que vc descreveu, mas não deu certo! Foi assim:

```
#grub

 

grub> root (hd0,7) 

 Filesystem type is unknown, partition type 0x82

grub> setup (hd0) 

 Error 17: Cannot mount selected partition

grub>quit 
```

Bem, é isso, continuo aqui, sem linux tá dificil, tô quase desistindo e instalando o debian i386 mesmo, porque tudo o que eu fazia (exceto jogos) era via linux, e agora eu to "amarrado" aqui...   :Sad: 

Valeu de tudo por enquanto galera! Vcs foram muito receptivos e prestativos! Valeu mesmo!   :Very Happy: 

----------

## starcrusher

Vamos lá:

1) Baseando-me nas suas informações de particionamento, sugiro o seguinte /boot/grub/grub.conf:

```
timeout 10

default 0

fallback 1

title Gentoo Linux

root (hd0,7)

kernel /kernel-2.4.28 root=/dev/hda6 devfs=mount

title Microsoft Windows

rootnoverify (hd0,0)

makeactive

chainloader +1

```

2) Você tem certeza que não está trocando as partições de boot e swap? Pergunto isso porque o tipo da partição de boot /dev/hda8 reportado pelo grub é 0x82, que é o tipo Linux swap (devia ser 0x83, tipo Linux)!

Por favor tire isso a limpo com um fdisk -l /dev/hda.

3) Só como lembrete, eu mesmo já cometi o erro de instalar o grub sem haver montado a partição /boot, resultando na instalação dos arquivos na pasta /boot/grub da partição raiz (/dev/hda6 = (hd0,5) no seu caso).

(Não deve ser esse o problema, mas não custa examinar isso também...)

Boa sorte e aguardo notícias!

----------

## GustavoFrezza

Eu tambem me atentei bastante a isso, pois achei estranho o fdisk -l /dev/hda ter me reportado a hda7 e hda8 como linux swap, aí eu dei um mke2fs -j /dev/hda8 para ter certeza que estava certo, e mesmo assim o fdisk -l /dev/hda continuou acusando como linux-swap! O que eu devo fazer para acertar isso?

Acho que é aí que está o erro!

Ah, e na hora de instalar o grub, se eu deixasse montada a partição /boot, dava falha na istalação, pois esta não conseguia montar o /boot, então eu fiz isso com a partição desmontada e deu certo, inclusive eu me certifiquei de que os arquivos estavam na partição /dev/hda8, desmontando-a o /boot não apresenta nenhum arquivo, e montando-a, o /boot tem a pasta do grub e o kernel!   :Rolling Eyes: 

----------

## starcrusher

Só confirmando seu particionamento:/dev/hda7 = partição de <swap>, tipo 0x82;

/dev/hda8 = partição de inicialização, ext3, montada em /boot, tipo erroneamente identificado como 0x82;

1) Corrija o tipo da partição:

```
localhost root # fdisk /dev/hda

...

Command (m for help): p

...

   Device Boot      Start         End      Blocks   Id  System

...

/dev/hda6             ...         ...         ...   83  Linux

/dev/hda7             ...         ...         ...   82  Linux swap

/dev/hda8   *         ...         ...         ...   82  Linux swap

...

Command (m for help): t

Partition number (1-26): 8

Hex code (type L to list codes): 83

Command (m for help): p

...

   Device Boot      Start         End      Blocks   Id  System

...

/dev/hda6             ...         ...         ...   83  Linux

/dev/hda7             ...         ...         ...   82  Linux swap

/dev/hda8   *         ...         ...         ...   83  Linux

...

Command (m for help): w
```

... e confirme com o  o fdisk -l /dev/hda. Não tenho certeza, mas talvez você tenha de desmontar todas as partições do hda antes de iniciar o fdisk, senão ele se recusa a gravar as alterações. (Se isso for verdade, é melhor inicializar com o LiveCD já de uma vez.)

Pode ser que só com isso o grub já se entenda com o disco. Se não...

2) Garanta que /dev/hda8 está montado em /boot e faça um backup:

```
localhost root # cp --archive /boot /root
```

3) Formate novamente /dev/hda8. Recomendo ext2, você não precisa do journaling do ext3 para a partição de boot:

```
localhost root # umount /boot

localhost root # mkfs.ext2 -m0 /dev/hda8

...

localhost root # mount /dev/hda8 /boot

```

4) Recupere o backup:

```
localhost root # cp --archive /root/boot/* /boot/
```

5) Tenha certeza que o kernel e os arquivos do grub estão em /boot. Se não, reinstale, recopie etc...

E vamos ver se agora vai!  :Wink: 

----------

## GustavoFrezza

Opa, agora sim amigaum! Foi só acertar a partição com o fdisk e tudo se resolveu! Valeu mesmo!

Agora, se vc me permite, gostaria de tirar mais algumas duvidas:

1- Quanto eu dou o boot pelo grub, a resolução do console fica muito baixa, acho que 700X620 se eu não me engano! Com o lilo, eu usava a opção "vga=791" e tinha uma resolução mais alta no console, acho que era 1024X768, como eu faço isso com o grub?

2- Compilei o kernel 2.6.9 e tá rodando aparentemente normal aqui! Mas quando eu entro com o comando "lsmod", não aparece nenhum modulo carregado, e a rede por exemplo está funcionando normalmente! Quando eu booto o 2.4.28, aparece um monte de modulo carregado! É assim mesmo ou tem algo errado?

3- X! Eu tentei instalar o xfree, usando "emerge xfree" e deu o mesmo erro que dá quando eu tento instalar o lilo! 

```
Calculating dependencies 

!!! Problem in xfree dependencies 

!!! Especific key requires an operator (xfree) (try adding an "=") exceptions 
```

O que eu faço para resolver? O que é esse problema? Eu instalei o xorg, usando "emerge xorg-x11" e foi tudo direitinho, mas como eu inicializo ele? Pelo visto não é "startx" né?

Mais uma vez, obrigado por tudo!!   :Wink: 

----------

## Matheus Villela

 *GustavoFrezza wrote:*   

> 1 - ...tinha uma resolução mais alta no console, acho que era 1024X768, como eu faço isso com o grub?
> 
> 2- ... quando eu entro com o comando "lsmod", não aparece nenhum modulo carregado....
> 
> 3-  Eu instalei o xorg, usando "emerge xorg-x11" e foi tudo direitinho, mas como eu inicializo ele? Pelo visto não é "startx" né?

 

Não vou dar resposta a tudo, mas vou tentar ajudar um pouco  :Razz: 

1 - Não sei como faz no grub mas lembre-se que pra isso você tem que ter colocado suporte a framebuffer no kernel, pode ser suporte a sua placa mesmo ou escolha suporte a framebuffer padrão vesa(genérico e menos problemático)

2 - Você deve ter compilado os drivers sendo parte do kernel e não como módulos, por isso que não aparecem os módulos  :Smile: , pra não ter dor de cabeça eu soco tudo direto no kernel... mas nas distros "binárias" gralmente colocam tudo como módulos pra dar mais flexibilidade ao hardware suportado e pra imagem do kernel caber num disquete de boot  :Smile: 

3 - Esquece Xfree, fique com xorg mesmo  :Wink: , o comando é startx.. não acontece nada com ele ou mostra algum erro? Você não está tentando rodar o xorg como root?

O startx deve estar em:

/usr/X11R6/bin/startx

Se não estiver lá é porque você não instalou o xorg  :Very Happy: 

----------

## starcrusher

Legal saber que você está avançando!

Complementando as respostas de Matheus Villela:

1) Para habilitar outros modos gráficos de console, o kernel Linux deve ser configurado (compilado) com suporte a frame buffer e seleção do modo gráfico de console:

```

Device Drivers  --->

  Graphics support  --->

    [*] Support for frame buffer devices

    <*>   VESA VGA graphics support

    ...

    Console display driver support  --->

      --- VGA text console      

      [*]   Video mode selection support                                   

      <*> Framebuffer Console support                                       

      [ ]   Select compiled-in fonts (NEW)        

```

Isso capacita o kernel a usar o frame buffer VESA, padrão em todas as placas atuais. Como mencionado, o FB VESA é o mais genérico e seguro (embora não seja o mais rápido). Ah e você também consegue o mais fundamental: o logo do Tux durante o boot!!   :Very Happy: 

Para ativar modos gráficos mais avançados, passe o parâmetro vga=<modo> para o kernel no arquivo /boot/grub/grub.conf:

```

...

title Gentoo Linux

root (hd0,4)

kernel /tempestade1.bzImage root=/dev/hda7 devfs=mount vga=0x313

...

```

Mais detalhes de configuração para o FB VESA em /usr/src/linux/Documentation/fb/vesafb.txt.

2) OK, só complementando que o uso de módulos do kernel encontra-se em:

```
Loadable module support  --->

  [*] Enable loadable module support     

  [*]   Module unloading                                   

  [ ]     Forced module unloading                                           

  [ ]   Module versioning support (EXPERIMENTAL)                            

  [*]   Automatic kernel module loading

```

3) Como disse Matheus Villela, esqueça o xfree. Após instalar o xorg, você deve configurar o arquivo /etc/X11/xorg.conf, ou o ambiente gráfico X não funciona nem a pau...

Dica: o comando xorgcfg -textmode pode ajudá-lo a criar um /etc/X11/xorg.conf inicial, que depois você pode refinar manualmente mais tarde.

(Inicialmente use o driver VESA, pois seu kernel já suporta o FB VESA. Depois você pode testar os drivers da NVidia e ganhar aceleração gráfica 3D, mas por enquanto vamos tentar "apenas" disparar o servidor gráfico, OK?  :Wink:  ) 

Use o comando X para disparar o servidor X. Se der certo, você verá a tela cinza com o ponteiro do mouse em forma de "X". Algumas teclas úteis: <ctrl>+<alt>+<backspace>: interrompe o servidor X;

 <ctrl>+<alt>+<+> e <ctrl>+<alt>+<->: chaveiam entre as resoluções gráficas escolhidas;

 <ctrl>+<alt>+<Fn>: chaveia para os outros consoles virtuais;

Se não der certo, examine /var/log/Xorg.0.log para tentar descobrir o problema.

Uma vez que o servidor X funciona satisfatoriamente, falta agora disparar um gerenciador de janelas junto com ele. O xorg já vem com o twm, que é um gerenciador de janelas estupidamente pequeno e simples. Para usá-lo, crie o arquivo ~/.xinitrc e indique qual gerenciador deve ser usado:

```
localhost root # echo 'twm' >~/.xinitrc
```

Agora o startx deve disparar o X junto com o gerenciador de janelas escolhido.

É óbvio que você não vai se contentar com o twm; eu já usei também o enlightenment e o gnome-session. Aí é questão de gosto pessoal...

Um grande abraço!

----------

