Compilando o Kernel 2.6.x
Irei apresentar a receita de bolo como compilar o seu kernel passo-a-passo.
Muitas pessoas acham Linux complicado e muito menos pensariam em compilar o seu próprio Kernel, mas eu mostrarei o quanto isso é simples e não necessita de um vasto conhecimento na área.
Esse artigo foi testado no Debian unstable (sid), mas deverá funcionar em qualquer distribuição baseada no Debian (Debian like, Ubuntu like etc).
A idéia é a mesma em distros não baseadas no Debian, mas comandos ou diretórios podem ser diferentes.
Não se assuste com o tamanho desse artigo. A idéia foi explicar todos os ítens para quem é leigo no mundo Linux, mas o essencial se resume em menos de dez linhas.
Siga cada ítem, na ordem numérica, e compile o seu próprio Kernel, mesmo que você mal tenha mexido com o Linux.
- Toda a compilação não precisa ser feita como root (modo administrador), mas a instalação do Kernel no sistema sim. Portanto recomendo fazer tudo como root para evitar problemas. Alguns comandos anteriores à compilação precisarão do modo root.Para entrar no modo root do Debian, digite no terminal:
su
Para entrar no modo root do Ubuntu, digite no terminal:
sudo su
Ambos os comandos pedirão uma senha. É a senha do root da máquina (o Debian, quando instalado, cria uma conta root e uma conta de usuário; Já o Ubuntu, durante a sua instalação, cria apenas uma conta; A senha do root será a mesma fornecida durante a instalação do Ubuntu).
- Escolha o Kernel que você quer baixar no site Kernel.org ou onde você quiser. O importante é ter em mãos o link para download do kernel a ser compilado. Usarei, como exemplo, o seguinte Kernel: http://www.kernel.org/pub/linux/kernel/v2.6/testing/linux-2.6.34.tar.bz2
- Com o link de download em mãos, abra o terminal e digite:
cd /tmp wget http://www.kernel.org/pub/linux/kernel/v2.6/testing/linux-2.6.34.tar.bz2
- Após o download ter completado, vamos extrair os arquivos com o seguinte comando:
tar xjvf linux-2.6.34.tar.bz2 -C /usr/src/ cd /usr/src/linux-x
Substitua “x” pelo nome do arquivo extraído. No meu exemplo ficou:
cd /usr/src/linux-linux-2.6.34
- Embora a maioria das distros venha com o GCC, programa utilizado para compilar arquivos da linguagem C, como os fontes do Kernel, tenha certeza de que ele está instalado e atualizado com os seguintes comandos:
apt-get update apt-get install gcc build-essential
- Você deve criar o arquivo de configuração (.conf) para o Kernel ser compilado.Para criar esse menu, basta escolher uma das opções abaixo.
Dicas: Leia antes o comentário de cada opção; Escolha apenas uma opção.
-
make localmodconfig
Desabilita os módulos não utilizados pelo seu sistema atual. Ele fará pouquíssimas perguntas. Opção recomendada para novatos em Linux.
-
make allyesconfig
Resposta sim para todas as perguntas. Substituir o “yes” por “no” faz o contrário.
-
make config
Faz perguntas no terminal sobre alguns módulos, drivers etc. Serão feitas dezenas de perguntas.
-
make menuconfig
(menu* no terminal) Recomendado para quando as opções acima dão problema. Apenas abra o menu, salve o arquivo de configuração e saia. Se você quiser, você pode adicionar o remover os módulos la listados, desde que você saiba o que está fazendo.
Dica: Você pode copiar o seu “config” atual que está em “/boot/config*”, para o diretório do Makefile com o seguinte nome: “.conf”; Você poderá carregá-lo através desse menu.
-
make xconfig
(menu* modo janela baseado em X Windows QT, ideal para quem usa KDE)
-
make gconfig
(menu* modo janela baseado em X Windows GTK, ideal para quem usa GNOME)
*Importante: Para que o menu funcione, será necessário instalar a biblioteca ncurses:
apt-get install libncurses5 libncurses5-dev
-
- Agora iremos compilar o Kernel. Observe que atualmente estamos no diretório onde estão os arquivos fonte do Kernel (no meu exemplo, /usr/src/linux-2.6.34/).Os comandos são simples:
make make modules
- Estamos quase terminando. Agora iremos instalar o Kernel e os módulos compilados com os comandos abaixo:
make modules_install make install
- Agora temos que criar o “initrd” para o Kernel instalado. Você não precisa saber, mas o “initrd” significa “Initial RAM disk”, ele contém uma pequena imagem do sistema que será carregada no boot.
cd /boot/ mkinitramfs -o initrd-x.img /lib/modules/x/
Substitua o “x” pela versão do seu kernel. Seguindo o nosso exemplo, o comando seria:
mkinitramfs -o initrd.img-2.6.34 /lib/modules/2.6.34/
- Por fim, basta configurar no seu gerenciador de boot o novo Kernel com o novo “initrd”.Como root, digite o seguinte comando:
update-grub
Ele localizará o novo Kernel e instalará para você.
Pronto, você viu como adicionar ou remover módulos do Kernel (menus), compilar o kernel e os seus módulos e, por fim, instalá-lo no sistema e no gerenciador de boot.
Detalhei várias partes do artigo para não deixar dúvidas, mas, como avisei antes, esse artigo pode assustar pelo tamanho dele, contudo a compilação e instalação do Kernel é super simples e pode ser resumida em pouquíssimas linhas.
Em um artigo posterior irei falar sobre como adicionar ou remover módulos e patches de terceiros no Kernel.