Compilando Kernel no CentOS 6.0
Artigos e Dicas sobre compilação de Kernel são normalmente postados utilizando-se distros como Debian ou seus derivados. Minha motivação principal para este artigo é mostrar como fazer uma compilação de Kernel no sistema GNU/Linux CentOS 6.0, bastante usado em servidores Linux.
Parte 2: Configurando e instalando
Configurando
Após acessar o diretório onde está o source do Kernel 3.4, execute o comando abaixo para definir quais serão as funcionalidades compiladas, como built-in (estas ficarão dentro do kernel) e os módulos que serão compilados externamente, ou seja, que ficarão dentro de /lib/modules/3.4.Uma dica é carregar a configuração do Kernel atual no momento de configurar o Kernel que será compilado para evitar erros (indicado principalmente para iniciantes). Para isso, logado como root, copie para dentro do diretório /usr/src/linux-3.4 o arquivo de configuração do Kernel que está usando:
# cp /boot/config-$(uname -r) ./.config
Em seguida, execute o comando usando o usuário root para gerar a configuração personalizada:
# make menuconfig
Na tela de configuração do kernel, vá na opção:
→ Load an Alternate configuration File
Digite: .config
E dê um OK.
Em seguida, salve a configuração na opção e saia da configuração do kernel:
→ Save an Alternative Configuration File
Caso deseje alterar as configurações, digite: make menuconfig novamente, faça as alterações e salve.
Instalando o Kernel e initrd
Após configurar o Kernel, compile os pacotes com o comando make:# make
Caso use um processador Dual Core na máquina que está compilando o Kernel, execute o comando make -j4 (o comando fará a compilação terminar mais rápido).
A opção "-j" executa N jobs por segundo, onde 'N' será a quantidade de funcionalidades compiladas por segundo:
# make -j2
Depois de compilado, é hora de instalar os módulos do Kernel e gerar a imagem initramfs (initrd). Para instalar os módulos, execute o comando abaixo; este comando irá copiar todos os módulos externos para o diretório /lib/modules/3.4:
# make modules_install
Para instalar o Kernel, copie o arquivo de configuração do kernel compilado e a imagem initramfs e copie o arquivo "bzImage" para o diretório /boot e, opcionalmente, os arquivos de configuração de "System.map", ou Execute o comando a seguir:
# make install
Caso a imagem initramfs-3.4 não for gerada pelo comando make anterior, rode o comando abaixo para gera-la.
# dracut /boot/initramfs-3.4.img 3.4
Obs.: Se compilou os módulos que o Kernel necessita para acessar o sistema instalado junto com o Kernel (como 'built-in'), não há necessidade de gerar esta imagem. Mas, se feito o contrário, e se não gerar o initrd, terá um kernel Panic.
Os comandos make install e/ou dracut irão gerar o arquivo "initramfs-3.4.img" dentro do diretório /boot. O tamanho da imagem varia de acordo com a configuração gerada para o Kernel compilado (podendo ficar com o tamanho de 60 Megabytes, ou até mais), mas este tamanho não só se atribui à configuração.
Esta imagem contém um sistema de arquivos Raiz temporário, que o Kernel usa para acessar o sistema de arquivos principal. A imagem contém, além de módulos que o Kernel necessita para o acesso, comandos e diretórios como: /proc, /sys, /dev, entre outros.
Após executar o comando make install, será adicionado uma entrada para o kernel atualmente instalado, caso esta entrada não seja criada, edite o arquivo de configuração "grub.conf". Coloque a entrada referente ao novo Kernel e a imagem initramfs que foram gerados e salve as alterações:
# vim /boot/grub/grub.conf
Pronto. Seu novo Kernel foi compilado e gerado.
Agora tenha bom uso do mesmo.
Favoritado!