# apt-get install make
# apt-get install gcc
# apt-get install libncurses5-dev
# apt-get install bc
make: Utilitário para realizar a configuração, manutenção e instalação
de um grupo de programas. Determina quais partes de um programa
necessita ser recompilado além de emitir comandos para recompilar os
mesmos.
gcc: Compilador de códigos C e C++.
libncurses5-dev: Possui rotinas para atualizar caracteres, contém
arquivos de cabeçalho, bibliotecas estáticas e links simbólicos
necessário para a compilação.
bc: Linguagem que suporta números de precisão arbitrária com execução inter-ativa de declarações.
# cd /usr/src/
# wget https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.10.8.tar.xz
# tar xvf linux-3.10.8.tar.xz
# cd linux-3.10.8
# make menuconfig (via menu)
ou
#make config (via texto)
ou
#make xconfig (Qt-based GUI)
ou
#make gconfig (GTK-based GUI)
# ls -la .config
# make -j4 bzImage
ou
# make bzImage
Se a compilação do kernel tiver sucesso e nenhuma mensagen de erro for mostrada, aparecerá a seguinte mensagem:
Kernel: arch/x86/boot/bzImage is ready (#1)
# make -j4 modules
ou
# make modules
# make -j4 modules_install
ou
# make modules_install
Este comando irá criar um subdiretório em "/lib/modules" com o nome da
versão do kernel no caso "/lib/modules/3.10.8" e copiar os módulos
(arquivos .ko) do kernel dentro deste subdiretório. Ao final ele invoca o
comando "depmod" que cria uma lista de dependências dos módulos no
arquvio "modules.dep"
As dependências são armazenadas no arquvio modules.dep
#ls /lib/modules/3.10.8/modules.dep
#cat /lib/modules/3.10.8/modules.dep
Caso necessário, você pode gerar o arquvio "modules.dep" para o kernel em execução pelo comando "depmod".
# depmod
# make -j4 install
ou
# make install
No procedimento acima 03 (três) coisas acontecem:
11.1) Copia o arquivo do kernel compilado para "/boot" com o nome vmlinuz-3.10.8
11.2) Geraçao da imagem "initrd" e copia a mesma para "/boot" com o nome initrd.img-3.10.8
11.3) E invocado o comando "update-grub" que reescreve um novo arquivo
"/boot/grub/grub.cfg" colocando o kernel compilado no processo de boot.
Os procedimentos de copia do arquvio do kernel para "/ boot",
instalação dos módulos do kernel, preparação de um disco RAM inicial
(initramdisk) e modificação da configuração do GRUB para apontar para o
novo kernel podem ser feitos manualmente.
#reboot
13) Comandos que podem ser utilizados no processo de configuração, compilação e instalação de um kernel.
Apaga as configurações e os arquivos temporários gerados durante uma compilação anterior.
#make mrproper
Apaga apenas os arquivos compilados anteriormente mas preserva a configuração.
#make clean
Lista de comandos do make.
#make help
Recupera todas as configurações do arquivo ".config" pré-existente e pergunta apenas sobre novas opções.
# make oldconfig
ou
# make silentoldconfig
Cria um arquivo de configuração ".config" usando os valores padrão para a sua plataforma.
#make defconfig
Constroi um kernel imediatamente com o maior número de recursos e módulos.
#make allmodconfig
Utilização do make com grep para procurar um erro
# make | grep -iw “error“