Responder 
 
Avaliação do Tópico:
  • 0 Votos - 0 Média
  • 1
  • 2
  • 3
  • 4
  • 5
Compilando seu Kernel(SEM ERRO)!!!
20/07/2010, 23:38
Resposta: #1
Compilando seu Kernel(SEM ERRO)!!!
Olá caros internautas, durante minha fase de aprendizado(todos nunca sairemos dela, rsrs) tive muita dor de cabeça quando decidi compilar a versão mais nova do kernel, em vez de esperar o Debian lançar sua nova versão com tal componente, pois eu sou muito impaciente e curioso para saber como as coisas funcionam. Enfim, li muitos tutoriais, muitos mesmo, mas todos davam em horas de espera(porque o kernel demora muito para compilar) e uma linda mensagem de erro no final, dizendo que o kernel não pode ser compilado. Camaradas, era muito triste! Após estes traumas, consegui um tutorial ensinando a compilar o kernel sem ferramentas Debian, quer dizer, independente da distribuição instalada, ele vai funcionar. Então paremos de enrrolação e vamos por as mãos na massa!

Parte I - Baixando e Desempacotando

Baixe o kernel mais rescente(no meu caso baixei o 2.6.34-1) no site http://www.kernel.org
Dê preferência efetuar o download na sua pasta do usuario.

Após o download, vamos para o terminal, iniciando na sua pasta do usuário /home/(usuario)

$ su #Entra com o root
# cp linux-2.6.34.1.tar.bz2 /usr/src #Copia o pacote para a pasta /usr/src
# cd /usr/src #Muda de diretório
# tar xjvf linux-2.6.34.1.tar.bz2 -C /usr/src # Extrai o pacote
# ln -sf linux-2.6.34.1 /usr/src/linux # Criando link simbólico(parecido com o atalho do Windows)
# cd /usr/src/linux

Parte II - Preparando para Compilar

# make mrproper # Este comando serve para retornar ao padrão os arquivos de configuração do kernel, caso tenha sido alterados devido a uma compilação sem sucesso.

Edite o arquivo Makefile para definir uma extraversion, para customizar a versão do kernel.

# nano Makefile # use o editor de sua preferência, em meu caso foi o nano

VERSION = 2
PATCHLEVEL = 6
SUBLEVEL = 34
EXTRAVERSION = -i386-1

Salve e execute o comando:

# sh scripts/ver_linux

Eis a lista de software mínimo requerido para um kernel da série 2.6 poder funcionar:
o Gnu C 2.95.3 # gcc --version
o Gnu make 3.79.1 # make --version
o binutils 2.12 # ld -v
o util-linux 2.10o # fdformat --version
o module-init-tools 0.9.10 # depmod -V
o e2fsprogs 1.29 # tune2fs
o jfsutils 1.1.3 # fsck.jfs -V
o reiserfsprogs 3.6.3 # reiserfsck -V 2>&1|grep reiserfsprogs
o xfsprogs 2.6.0 # xfs_db -V
o pcmcia-cs 3.1.21 # cardmgr -V
o quota-tools 3.09 # quota -V
o PPP 2.4.0 # pppd --version
o isdn4k-utils 3.1pre1 # isdnctrl 2>&1|grep version
o nfs-utils 1.0.5 # showmount --version
o procps 3.2.0 # ps --version
o oprofile 0.5.3 # oprofiled --version

Nem todos estes softwares são obrigatórios, geralmente os obrigatórios ja encontram-se instalados em distribuições Debian. Se por algum acaso você esbarrar em algum erro durante a compilação, confira esta lista.

Para quem quer se aventurar[
O arquivo /usr/src/linux/.config armazena a configuração do kernel. Basicamente, este arquivo descreve o que deverá ser incorporado ao kernel (y) e o que deverá ser criado como módulo (m). Incorpore ao kernel apenas o necessário. O restante necessário, configure como módulo. O que não for necessário, retire. Por exemplo, se você não tem dispositivos pcmcia em sua máquina, retire da configuração o suporte a pcmcia. Isto possibilita uma maior performance por parte do sistema.

O kernel Linux pode ser modular, ou seja, o suporte básico fica incorporado ao kernel constantemente e o suporte a outros dispositivos, como por exemplo, uma placa de som, pode ser configurado como módulo. Assim sendo, este módulo da placa de som é carregado na memória e plugado ao kernel apenas quando for necessário, ou seja, apenas quando o usuário estiver utilizando som no sistema.

Isto otimiza o sistema, utilizando seus recursos sabiamente. ]

Existe uma configuração padrão para cada tipo de arquitetura de hardware no diretório /usr/src/linux/arch. O nome do arquivo é defconfig. Supondo que sua arquitetura de harware seja i386, a mais comum, faça uma cópia do arquivo defconfig para o diretório raiz de compilação com o nome .config assim:

# cp -f /usr/src/linux/arch/i386/defconfig /usr/src/linux/.config

É recomendado para o usuário iniciante baixar um config preparado para distribuição Debian que encontra-se para varias versões do kernel neste link: http://merkel.debian.org/~jurij/

Escolha a sua versão do kernel e sua arquitetura.

caso baixe a versao do config do Debian, copie o arquivo da mesma forma:

# cp -f (caminho_do_arquivo) /usr/src/linux/.config

Execute a ferramenta Menuconfig, que é um assistente de configuração para o kernel em modo texto:

# make menuconfig

Abrirá uma tela de configurações, se você é leigo, prefira não mudar nada, mas se você quizer ou souber customizar fica a seu critério.

aperte esc duas vezes ou va até a opção exit e salve as configurações.

Parte III - Compilando o Kernel Sorrisão

Chegou o momento:

# make

Agora vá assistir um filmezinho, dependendo da configuração de sua máquina demora em média 2h até o termino da compilação(ou quase um dia em máquinas lentas).

Se não houver erros(se houver pode ter sido por falta de alguns softwares, reveja a lista de requisitos) digite:

# make modules_install

Parte IV - Os Finalmentes!!!

Após o processo de compilação, vamos copiar o kernel para o boot:

# cp /usr/src/linux/arch/i386/boot/bzImage /boot/vmlinuz-2.6.34-i386-1 # Se não achou a bzImage nesta pasta verifique sua arquitetura

# cp /usr/src/linux/System.map /boot/System.map-2.6.34-i386-1 # Copia arquivo System.map
# ln -sf /boot/System.map-2.6.34-i386-1 /boot/System.map # Cria link simbólico para System.map
# cp /usr/src/linux/.config /boot/config-2.6.34-i386-1 #Copia arquivo .config

Vamos criar um arquivo initrd assim:

# mkinitramfs -o /boot/initrd-2.6.7-i386-1.img 2.6.7-i386-1 # alguns casos usa-se o mkinitrd em vez de mkinitramfs

- Passo XIV

Vamos configurar o gerenciador de boot, GRUB!:

adicione acima da linha do kernel anterior, no arquivo /boot/grub/menu.lst:

title Debian GNU/Linux, kernel 2.6.34-i386-1
root (hd0,1)
kernel /boot/vmlinuz-2.6.34-i386-1 root=/dev/sda2 ro quiet
initrd /boot/initrd-2.6.34-1-i386-1.img

Pronto! é só reiniciar e testar!

OBS².: Não remova o kernel anterior até que tenha certeza que o atual está em boas condições!

Abraços, e postem seus comentários!
Visitar o website do usuário Encontrar todas as respostas deste usuário
Citar esta mensagem em uma resposta
21/07/2010, 08:27
Resposta: #2
Re: Compilando seu Kernel(SEM ERRO)!!!
Ótima dica! Poderia adicioná-la no wiki...
Encontrar todas as respostas deste usuário
Citar esta mensagem em uma resposta
08/08/2010, 16:32
Resposta: #3
Re: Compilando seu Kernel(SEM ERRO)!!!
seria interessante, como disse nosso amigo spikey, colocar essa dica no wiki!

Abraços!
Encontrar todas as respostas deste usuário
Citar esta mensagem em uma resposta
Responder 


Ir ao Fórum:


Usuários visualizando este tópico: 1 Visitantes

Entre em Contato | Fórum Debian | Voltar ao Topo | Voltar ao Conteúdo | Modo Leve (Arquivo) | Feeds RSS