Compilando um Kernel Linux série 2.6
Publicado em 21 de julho de 2004
Neste tutorial o nosso colaborador Jonas Goes (msl@goes.eti.br) mostra como compilar o Kernel 2.6. Um excelente guia! Confiram. COMPILANDO UM KERNEL LINUX SÉRIE 2.6
O que é o kernel? Quais são os requerimentos mínimos de hardware? Mas o que eu tenho de hardware? Mas que processador eu tenho, qual é o clock, qual é a arquitetura? Que arquiteturas são suportadas? alpha O seu caso, muito provavelmente deve ser a arquitetura i386, que é a mais comum do mundo dos PC's. Qual é a quantidade de memória que eu tenho? Quais são os softwares mínimos que devem estar instalados para executar o kernel? O kernel Linux é Software Livre?
- Passo I Baixe o pacote que contém o código fonte mais atualizado do kernel Linux da série 2.6 em http://www.kernel.org $ wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.7.tar.bz2
Como superusuário (faça o login no sistema com o usuário root), descompacte e desempacote o arquivo assim: # tar xjvf linux-2.6.7.tar.bz2 -C /usr/src
Crie o link simbólico /usr/src/linux apontando para /usr/src/linux-2.6.7 assim:
Acesse /usr/src/linux assim: # cd /usr/src/linux Este será o diretório raiz de compilação, ou seja, o diretório base para os passos seguintes.
Caso você já tenha compilado o kernel anteriormente, execute o comando 'make mrproper' para retornar ao # make mrproper
Edite o arquivo Makefile para personalizar a versão de sua compilação. VERSION = 2
O arquivo /usr/src/linux/Documentation/Changes contém uma lista do software mínimo que deve estar corretamente # sh scripts/ver_linux Eis a lista de software mínimo requerido para um kernel da série 2.6 poder funcionar: Nem tudo na lista acima é obrigatório. Será obrigatório ter os itens instalados da lista acima apenas aqueles
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 harware 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 Em alguns casos de arquitetura, pode existir um diretório configs contendo configurações específicas e testadas para cada modelo de máquina. Sendo assim, ao iniciar a ferramenta de configuração, você já terá alguns itens marcados. Não será necessário iniciar
Execute a ferramenta de configuração assim: # make menuconfig Perceba a existência de uma configuração já pré-definida. Isto se deve ao fato de você ter copiado o arquivo defconfig para o Este é um passo demorado e deve ser feito com atenção. Acompanhe o help de cada
Após a configuração do kernel, vamos compilá-lo realmente. Para isto, execute o comando: # make Este passo pode levar minutos ou de um dia para o outro. Depende do poder da
Após a compilação do kernel, vamos instalar os módulos com o seguinte comando: # make modules_install
Agora vamos copiar o kernel (bzImage) para o diretório /boot. O arquivo está no diretório de acordo com a arquitetura que você # cp /usr/src/linux/arch/i386/boot/bzImage /boot/vmlinuz-2.6.7-i386-1 Nomeie os arquivos de acordo com a versão do kernel que está compilando e de acordo com a arquitetura de hardware. Agora vamos copiar o arquivo System.map para /boot: # cp /usr/src/linux/System.map /boot/System.map-2.6.7-i386-1 Criando um link simbólico para System.map: # ln -sf /boot/System.map-2.6.7-i386-1 /boot/System.map Agora vamos copiar o .config para /boot: # cp /usr/src/linux/.config /boot/config-2.6.7-i386-1
Vamos criar um arquivo initrd assim: # mkinitrd -o /boot/initrd-2.6.7-i386-1.img 2.6.7-i386-1 A opção (-o arquivo) diz onde salvar o arquivo initrd gerado. Na verdade, o initrd não é necessário caso você tenha incorporado ao kernel todo a hardware necessário para sua inicialização Eu recomendo não utilizar o initrd, pois afinal, este artigo visa criar um kernel específico para a sua máquina. O initrd é utilizado mais para kernel's genéricos que acompanham as distribuições Linux. As distribuições são lançadas com kernel's
Vamos configurar o gerenciador de boot, GRUB ou LILO, qual você utiliza? -> Configuração GRUB (Isto é só um exemplo): # Note que você não precisa regravar o GRUB no MBR ou partição específica após feitas as alterações.
# Note que você precisa regravar o LILO no MBR ou partição específica após feitas as alterações. Execute lilo para regravar o LILO no MBR. # /sbin/lilo Não remova a configuração do kernel anterior que estava funcionando. Ele será útil para inicializar a máquina Reinicie sua máquina e boa sorte!
Suporte com relação a este artigo por e-mail:
Comentários para "Compilando um Kernel Linux série 2.6"
» Postado por: as em agosto 9, 2004 04:04 PM, 200.201.81.:
» Postado por: carlos em setembro 19, 2004 03:51 PM, 200.234.107:
» Postado por: cleidisson em outubro 6, 2004 10:56 AM, 200.180.200:
» Postado por: cleidisson em outubro 6, 2004 10:56 AM, 200.180.200:
Antes de comentar...
- Preserve a qualidade desta discussão - Leia os Termos de Uso. - Este formulário deve ser usado para comentários sobre a notícia. Se você tem dúvidas ou precisa de ajuda, use o Fórum. - Mantenha o foco nos argumentos e no assunto - Não faça ataques pessoais. - Pense 5 vezes antes de entrar em discussões inúteis, como "qual é a melhor distribuição/ambiente gráfico/linguagem de programação/etc.", mesmo se alguém já tiver provocado - um erro não justifica o outro - Não seja um e-mala ;-) ![]() Envie seu comentário
|