domingo, 6 de setembro de 2009

Compilando Kernel no Linux (Debian)

Para compilarmos um kernel no debian, primeiramente precisamos instalar alguns pacotes:

aptitude install libncurses5-dev bzip2 libqt3-mt-dev fakeroot 
aptitude install kernel-package
aptitude install build-essential gcc module-assistant
 
Depois de baixarmos os pacotes, precisamos obter os fontes do kernel. Os fontes do kernel podem ser obtidos em www.kernel.org. Basta seguir os passos abaixo:

Logar como root:
su -l
cd /usr/src
tar -jvxf linux-2.6.29.1.tar.bz2 
ln -s /usr/src/linux-2.6.29.1 /usr/src/linux

cd linux

Aqui iremos efetuar uma cópia das configurações atuais já existentes na máquina:

cp /boot/config-2.6.29.1 .config 

Vamos editar o arquivo Makefile, e mudarmos a identificação, conforme quisermos:

nano Makefile  // O EXTRAVERSION existente no inicio do arquivo pode ser mudado. O default e .1, você pode mudar para o que quiser: Exemplo: .1-mykernel
 
Configurar os módulos:

make xconfig
 
Efetuar limpeza do ambiente antes de compilar o kernel:

make clean
 
Compilando o kernel. (Obs.: Este comando irá demorar entre 40min e 2horas, dependendo do poder de processamento de sua máquina)

make -j2
 
Este comando irá construir os modulos do sistema:

make -j2 modules

Este comando irá instalar os módulos contruídos:
make modules_install

Após estes comandos, já temos o novo kernel, agora precisamos ajustá-los para boot. Ainda dentro do diretório /usr/src/linux, vamos fazer algumas cópias de arquivos:

Este comando irá listar a imagem do kernel que você terá que copiar para o diretório de /boot. Para manter o padrão, vamos copiá-lo co mo nome vmlinuz-2.6.29-1-mykernel:

ls $(find arch -name bzImage -ls | cut -f3 -dl) /boot/vmlinuz-2.6.29.1-mykernel

Este comando irá fazer uma cópia do Mapa do sistema para o diretório de /boot: 

cp System.map /boot/System.map-2.6.29.1-mykernel

Este comando irá copiar as configurações que foram utilizadas na compilação do kernel:
cp .config /boot/config-2.6.29.1-mykernel

Este comando irá criar o arquivo initrd.img no diretório /boot:
update-initramfs -c -k 2.6.29.1-mykernel

Este comando irá atualizar o grup para podermos utilizar o novo kernel no próximo boot:

update-grub

Nenhum comentário:

Postar um comentário