O Archlinux faz da compilação do kernel uma tarefa menos árdua através do Arch Build System, porque automatiza grande parte do processo de obtenção de fontes sem perder o controle de acesso às mesmas que um usuário experiente desejaria. Tendo em vista que o Arch é uma das distros de grande repositório mais enxutas e através da compilação do kernel podemos configurá-lo para carregar somente o necessário para a máquina e para as necessidades do usuário, vamos ao tutorial básico de compilação.
# sudo pacman -S abs base-devel xmlto
Gere toda a árvore do ABS.
# sudo abs
Crie uma pasta para descarregar os arquivos a serem compilados, copie-os, altere as permissões e entre nela.
# mkdir build/
# sudo cp /var/abs/core/linux/* build/
# sudo chown -hR seulogin build/
# cd build/
Antes de prosseguir, preste atenção que é uma compilação personalizada, então, para evitar que o kernel padrão não conflite com o kernel personalizado e para que você possa iniciar o sistema com a versão de kernel padrão, precisa alterar algumas instruções do pkgbuild. Para isso, carregue o arquivo no editor de terminal com o comando:
# nano PKGBUILD
Logo no início do arquivo, encontrará as seguintes linhas:
pkgbase=linux
pkgname=('linux' 'linux-headers' 'linux-docs') # Build stock -ARCH kernel
# pkgname=linux-custom # Build kernel with a different name
_kernelname=${pkgname#linux}
Altere para:
pkgbase=linux
# pkgname=('linux' 'linux-headers' 'linux-docs') # Build stock -ARCH kernel
pkgname=linux-custom # Build kernel with a different name
_kernelname=${pkgname#linux}
Aperte F3 para salvar e F2 para sair, então crie os arquivos para a criação do kernel personalizado copiando os arquivos padrão.
# cp linux.install linux-custom.install && cp linux.preset linux-custom.preset
Pronto, agora você está salvo de você mesmo. Prossiga abrindo o pkgbuild novamente.
# nano PKGBUILD
Encontre essas linhas no arquivo, que definem a ferramenta onde você fará a configuração do kernel:
# load configuration
# Configure the kernel. Replace the line below with one of your choice.
#make menuconfig # CLI menu for configuration
#make nconfig # new CLI menu for configuration
#make xconfig # X-based configuration
#make oldconfig # using old config from previous kernel version
# ... or manually edit .config
Cada uma das linhas com o comando make abrirá um menu de configuração diferente num passo adiante deste tutorial. Pode escolher qualquer um (apenas um), a minha sugestão é o menu CLI novo, assim:
# load configuration
# Configure the kernel. Replace the line below with one of your choice.
#make menuconfig # CLI menu for configuration
make nconfig # new CLI menu for configuration
#make xconfig # X-based configuration
#make oldconfig # using old config from previous kernel version
# ... or manually edit .config
Agora, procure por esta linha:
package_linux() {
pkgdesc="The Linux Kernel and modules"
...
}
E, para referir a compilação para o kernel personalizado, altere para:
package_linux-custom() {
pkgdesc="The Linux Kernel and modules"
...
}
Aperte F3 para salvar, F2 para sair e comece a compilação automática com o comando:
# makepkg
O ABS irá baixar o código fonte do kernel, realizar alguns procedimentos e abrir o menu de configurações que você escolheu. Tenha certeza do hardware que desabilita e das funções que habilita (algumas são experimentais), salve o arquivo de configuração e saia do menu para o ABS fazer o restante da compilação. Após terminada a compilação, seu kernel estará pronto pra ser instalado com o comando:
# sudo pacman -U nome_do_pacote
Depois é só configurar o Grub para por o seu kernel personalizado no menu de boot e ser feliz. =]