Compilando um kernel novo na unha
Depois de pesquisar e ler algumas documentações sobre o Kernel, juntei as informações e coloquei nesse tutorial. Esse processo serve também para recompilar, e foi testado em um sistema Debian Etch.
Primeiramente devemos baixar o kernel mais atual em http://www.kernel.org , depois de baixá-lo é só descompactar no diretório /usr/src . Caso você tenha baixado o .bz2 utilize o comando abaixo para descompactar:
#tar -jxvf linux-2.x.xx.bz2
Caso tenha baixado o .tar.gz use:
#tar -zxvf linux-2.x.xx.bz2
Depois do diretório criado em /usr/src vamos criar um link simbólico para o novo kernel:
#ln -s /usr/src/linux-2.x.xx/ /usr/src/linux
Agora vamos abrir um menu de configuração do kernel (e então escolher o que deverá existir nele) em modo texto, que na minha opnião é o melhor modo, você precisará do pacote 'libncurses5-dev' e utilizar comando:
#make menuconfig
Para limpar alguns objetos criados, use o comando:
#make clean
Agora iremos criar a imagem do kernel propriamente dita:
#make bzImage
Caso você tenha mandado o kernel utilizar-se de módulos para algumas funcionalidades, temos que compilá-los também.
#make modules
Depois de compilados, ele precisam ser instalados, esse comando instala os módulos em /lib/modules/ :
#make modules_install
Vamos copiar a nova imagem do kernel para o diretório /boot
#cp arch/i386/boot/bzImage /boot/bzImage-
Copiar o System.map para o mesmo diretório, esse arquivo é importante, pois contém os nomes dos símbolos e os endereços dos binários do kernel do linux, depois disso criar um link simbólico do System.map novo em /boot :
#cp System.map /boot/System.map-
#ln -s /boot/System.map-KERNEL_VERSION /boot/System.map
Para gerar a imagem do Initial RamDisk, é nela que contém alguns módulos que têm de ser carregados, para montar a partição do root, caso ela seja 'reiserfs' por exemplo. Você deverá incluir o módulo 'reiserfs' no arquivo '/etc/mkinitrd/modules' e criar a imagem. O motivo disso é que quando o kernel vai montar a partição root, ele tenta carregar o módulo 'reiserfs' neste exemplo, mas esse módulo está na partição root, ou seja, o kernel não tem como montar essa partição, pois não consegue acessar o driver para a mesma.
#mkinitrd -o /root/initrd.img 2.6.16-dutche
Primeiramente devemos baixar o kernel mais atual em http://www.kernel.org , depois de baixá-lo é só descompactar no diretório /usr/src . Caso você tenha baixado o .bz2 utilize o comando abaixo para descompactar:
#tar -jxvf linux-2.x.xx.bz2
Caso tenha baixado o .tar.gz use:
#tar -zxvf linux-2.x.xx.bz2
Depois do diretório criado em /usr/src vamos criar um link simbólico para o novo kernel:
#ln -s /usr/src/linux-2.x.xx/ /usr/src/linux
Agora vamos abrir um menu de configuração do kernel (e então escolher o que deverá existir nele) em modo texto, que na minha opnião é o melhor modo, você precisará do pacote 'libncurses5-dev' e utilizar comando:
#make menuconfig
Para limpar alguns objetos criados, use o comando:
#make clean
Agora iremos criar a imagem do kernel propriamente dita:
#make bzImage
Caso você tenha mandado o kernel utilizar-se de módulos para algumas funcionalidades, temos que compilá-los também.
#make modules
Depois de compilados, ele precisam ser instalados, esse comando instala os módulos em /lib/modules/
#make modules_install
Vamos copiar a nova imagem do kernel para o diretório /boot
#cp arch/i386/boot/bzImage /boot/bzImage-
Copiar o System.map para o mesmo diretório, esse arquivo é importante, pois contém os nomes dos símbolos e os endereços dos binários do kernel do linux, depois disso criar um link simbólico do System.map novo em /boot :
#cp System.map /boot/System.map-
#ln -s /boot/System.map-KERNEL_VERSION /boot/System.map
Para gerar a imagem do Initial RamDisk, é nela que contém alguns módulos que têm de ser carregados, para montar a partição do root, caso ela seja 'reiserfs' por exemplo. Você deverá incluir o módulo 'reiserfs' no arquivo '/etc/mkinitrd/modules' e criar a imagem. O motivo disso é que quando o kernel vai montar a partição root, ele tenta carregar o módulo 'reiserfs' neste exemplo, mas esse módulo está na partição root, ou seja, o kernel não tem como montar essa partição, pois não consegue acessar o driver para a mesma.
#mkinitrd -o /root/initrd.img 2.6.16-dutche
0 Comments:
Post a Comment
<< Home