Compilando o Kernel

Estou meio ocioso e decidi ser um pouco útil escrevendo um tutorial sobre compilação do Kernel, estou presumindo que pelo menos o gerenciador de pacotes (apt-get ou yum) está configurado, atualizado e funcionando corretamente.

Vou demonstrar como fazer no CentOS e no Debian.

1.0  – Instalando o necessário.

Vamos começar instalando os pacotes para compilar o Kernel, estou baixando a maioria dos pacotes necessários para compilar o Kernel com o “make menuconfig” e se faltar algum o Linux  vai te avisar, claro que depende muito da instalação que você fez (eu precisei baixar até o bzip2).

No CentOS:

[~]#yum install gcc make ncurses ncurses-devel flex cpp binutils bzip2

No Debian:

[~]#apt-get install gcc ncurses-base libncurses5 libncurses5-dev flex cpp binutils bzip2

1.1 – Baixando e descompactando a imagem do Kernel mais recente.

Baixe a imagem mais recente do Kernel de www.kernel.org, até quando eu escrevi este artigo era a 2.6.32.8:

No CentOS e Debian:

[~]#wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.32.8.tar.bz2

Agora descompacte:

No CentOS e Debian:

[~]#tar –jxvf linux-2.6.32.8.tar.bz2 -C /usr/src/

[~]#cd /usr/src/linux-2.6.32.8

1.2 – Compilando o Kernel:

Como descrevi no inicio da documentação, o objetivo é usar o make menuconfig para setar as configurações do Kernel, este passo eu não vou cobrir porque é muito abrangente.

Neste ponto você precisa conhecer seu hardware, de uma olhada no /proc/cpuinfo e no comando lspci.

Se você está aprendendo, está é uma daquelas partes que requerem paciência e persistência, você vai quebrar a cara varias vezes mas uma hora vai ficar bom nisso.

Depois de tudo configurado vamos compilar o Kernel e os módulos:

[/usr/src/linux-2.6.32.8]#make clean dep bzImage modules install modules_install

1.3 – Copiando arquivos para /boot

Agora copie os arquivos dentro de arch/i386/boot para /boot:

No CentOS e Debian:

[/usr/src/linux-2.6.32.8]#cp arch/i386/boot/bzImage /boot/vmlinuz-2.6.32.8

[/usr/src/linux-2.6.32.8]#cp System.map /boot/System.map-2.6.32.8

1.4 – Criando o /boot/initrd-2.6.32.8

Crie o arquivo initrd para o seu Kernel:

No CentOS:

[/usr/src/linux-2.6.32.8]#mkinitrd –v /boot/initrd-2.6.32.8 2.6.32.8

No Debian:

[/usr/src/linux-2.6.32.8]#mkinitramfs –o /boot/initrd-3.6.32.8 /lib/modules/2.6.32.8

1.5 – Configurando o GRUB

Edite o arquivo /boot/grub/menu.lst e adicione:

Title Linux 2.3.32.8

root (hd0,0)

kernel /vmlinuz-2.6.32.8 root=/dev/hda3

initrd /initrd-2.6.32.8

Preste atenção nos discos e partições, você deve alterar o exemplo para a sua configuração.

1.6 – Configurando o Lilo

Edite o arquivo /etc/lilo.conf e adicione:

Image=/boot/vmlinuz-2.6.32.8

Label= Linux 2.3.32.8

Initrd=/boot/initrd-2.6.32.8

Salve e saia, não esqueça de efetivar a alteração:

[~]#lilo

EOF

Poste um comentário ou deixe uma resposta do seu site: Endereço da resposta.

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Sair / Alterar )

Imagem do Twitter

You are commenting using your Twitter account. Sair / Alterar )

Foto do Facebook

You are commenting using your Facebook account. Sair / Alterar )

Connecting to %s

Seguir

Obtenha todo post novo entregue na sua caixa de entrada.