Compilando o Kernel Linux

Este artigo visa a ensinar o processo de compilação de um kernel Linux. Espero que a publicação seja útil!

[ Hits: 11.905 ]

Por: - em 02/01/2019


A mágica



Execute:

make menuconfig
Linux: Compilando o kernel Linux
Irá exibir um menu onde você poderá marcar o que estará incluso ou não no seu kernel e definir também os parâmetros. O primeiro conselho é: se não sabe para o que funciona alguma opção, não a desmarque, mas se souber do que se trata e não usá-la em seu sistema, pode desmarcar. O segundo: há uma opção de ajuda em cada etapa, o que pode ser útil. Ao salvar suas configurações, será gerado um arquivo .config na pasta.

Agora:

make

Esse é o processo mais demorado da compilação. Se quiser, você pode pará-lo e continuá-lo em outro momento, não há problemas.

Depois:

# make bzImage && make modules && make modules_install

Em seguida:

# make install

Atualize seu gerenciador de boot, a fim dele reconhecer a existência do novo kernel.

Caso seja GRUB:

# update-grub

Caso seja LILO:

# lilo

Para remover o kernel instalado:

Vá na pasta /boot e remova os arquivos relacionados ao kernel que você compilou (CUIDADO PARA NÃO REMOVER ITENS DO ANTIGO).

Também vá em /lib/modules e remova mais arquivos referentes a esse kernel (CUIDADO PARA NÃO REMOVER ITENS DO ANTIGO).

Pode ser necessário usar a opção -r no comando rm, caso venha a utilizá-lo.

Depois, repita o processo de atualização do gerenciador de boot, o qual já foi descrito acima.

Página anterior    

Páginas do artigo
   1. Introdução
   2. A preparação
   3. A mágica
Outros artigos deste autor

Guia de Instalação do Arch Linux

Guia de Instalação do Slackware

Linguagens de programação: o que são e quais existem?

Guia para iniciantes no Linux

Apresentando a programação orientada a objetos

Leitura recomendada

Instalando o Slackware com suporte HT - SMP

Conheçendo o sistema operacional GNU/Fiwix

Compilando o kernel no Conectiva Linux 10

Como instalar/atualizar seu kernel

Como mudar o logo no kernel 2.6

  
Comentários
[1] Comentário enviado por AndersonInacio em 03/01/2019 - 11:32h

Favoritado, vou testar isso no meu debian sid/buster, obrigado por compartilhar conhecimento conosco.

[2] Comentário enviado por valter.vieira em 03/01/2019 - 18:05h

Parabéns pela iniciativa.

[3] Comentário enviado por luiztux em 03/01/2019 - 22:34h

Muito bom.
Pra complementar o que foi dito sobre o make demorar para compilar, podemos diminuir um pouco executando o seguinte:

# make --jobs[x+1] --load-average[x]

No caso, trocando x pelo número de core da CPU+1, e o x do --load-average pelo mesmo número, só que sem o +1:

- para o meu caso 4 core
# make --jobs 5 --load-average 4

Os números de core da CPU pode-se obter com qualquer um dos comandos abaixo:

# dmidecode -t processor | grep "Core Count"
$ grep -c '^processor' /proc/cpuinfo
$ lscpu

;)
-----------------------------------''----------------------------------

Larry, The Cow, uses Gentoo GNU/Linux

^__^
(oo)
(__)

"If it moves, compile it."


[4] Comentário enviado por nicolo em 06/01/2019 - 11:30h

Tudo maravilhoso mas a parte mais charmosa e mais misteriosa de compilar o kernel é alterar a configuração, eliminando os built-in drivers que não são necessários e reduzindo a latência para 4 ms.
Outra grande vantagem é escolher a família específica do seu processador. Os Kernel agregados às Distros vem prontos para uma vasta gama de processadores e acabam com desempenho menos eficiente.
Bom artigo.

[5] Comentário enviado por edps em 06/01/2019 - 12:55h


[4] Comentário enviado por nicolo em 06/01/2019 - 11:30h

Tudo maravilhoso mas a parte mais charmosa e mais misteriosa de compilar o kernel é alterar a configuração, eliminando os built-in drivers que não são necessários e reduzindo a latência para 4 ms.
Outra grande vantagem é escolher a família específica do seu processador. Os Kernel agregados às Distros vem prontos para uma vasta gama de processadores e acabam com desempenho menos eficiente.
Bom artigo.


Sobre configurar, se quer apenas o específico para o seu processador (o que demandará menos tempo e um kernel mais enxuto), use:

# make localmodconfig

Mas isso requer que você plugue tudo o que utilizar de hardware, impressoras, pendrives, se usar firewall esteja com os módulos carregados, etc. Isto quer dizer que este kernel funcionará APENAS com a sua máquina atual, nada do que for acrescentado futuramente será reconhecido, entre compilação e instalação aqui só demora 5min num i5 8400, compilado assim:

# make localmodconfig
# make -s -j7 -l6 bzImage modules
# make -s -j7 modules_install
# make install
# grub-mkconfig -o /boot/grub/grub.cfg

Aqui em meus sistemas são apenas 91 módulos ,fora os do VistualBox que recompilo a cada update com:

# /sbin/vboxconfig

Quanto a compilação, concordo com a observação do colega @luiztux e acrescento que se a autora ou quem desejar, pode empacotar esse kernel apenas adaptando o que aqui é visto com:

https://edpsblog.wordpress.com/2015/04/02/how-to-empacotamento-de-kernel-no-debian-definitivo/

[6] Comentário enviado por ricardogroetaers em 15/01/2019 - 09:20h

Bom artigo, em linguagem simples e objetiva.
Destaque para a "mágica" (make menuconfig) em forma de menu. De fato, o que o usuário deseja é, se for o caso, escolher o que gostaria de deixar no kernel e o que não é necessário para seu uso pessoal (similar ao setup de um micro). O usuário comum não vai desenvolver um kernel vai apenas usar.

[7] Comentário enviado por edivandjs em 16/01/2019 - 17:49h

Muito interessante! Já favoritei! Aprendendo muito com seus artigos.


Contribuir com comentário