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: 5.589 ]

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 para iniciantes no Linux

Guia de Instalação do Ubuntu

Apresentando a programação orientada a objetos

Guia de Instalação do Slackware

Guia de Instalação do Arch Linux

Leitura recomendada

Debian 3.1 (Sarge) - Atualizando pacotes para unstable e compilando um novo kernel

Compilando kernel 2.6.11 no Slackware 10

Compilar e habilitar os módulos ip_table e iptable_nat no kernel 2.6.26 no Debian Linux

openSUSE Linux no Windows 10 sem virtualização

Atualizando kernel de 2.4.31 para 2.6.13 no Slackware 10.2

  
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




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner
Linux banner
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts