Compilação de Kernel

Compilação do Kernel com todos os comandos. As vantagens de compilar um Kernel atual no seu Linux são maior desempenho (velocidade e gerenciamento de memória), drivers atuais, você tem a possibilidade de configurar o Kernel de acordo com suas necessidades, por ser mais atual o Kernel você tem novas funções, em suma, um sistema mais eficiente.

[ Hits: 4.842 ]

Por: Buckminster em 15/04/2023


Configurando e compilando



Entrando nas configurações do kernel:

# make menuconfig

O comando acima abrirá uma interface gráfica para configuração do kernel.

Para entrar nas opções dê Enter e para alterar de "M" para "*" e vice-versa é só pressionar a barra de espaços. A opção "M" compila como módulo, a opção "*" compila embutido no kernel. A escolha vai de cada parâmetro. Como módulo não fará parte do "monólito" do bloco único do kernel.

Para sair de uma opção, dê Esc duas vezes seguidas. Navegue com as setas de direção.

Os parâmetros onde tem ---> ao lado significa que tem mais opções que podem ser abertas teclando enter ou a barra de espaços.

Vá em: Processor type and features (enter) --> com as setas de direção do teclado procure por Processor Family (Generic-x86-64) --> Enter

Navegue com as setas até a opção que corresponde ao teu processador.

Caso não tiver a opção ou você ficar na dúvida, deixe a opção padrão: Generic-x86-64

Marque com a barra de espaços e/ou dê enter que voltará à tela anterior.

Bem abaixo vá em "Timer frequency". Se a sua instalação for para servidor marque a opção "100 HZ" (isso melhorará o tempo de resposta do servidor para as requisições). Para Desktop deixe "250 HZ".

Esc + esc.

Você deverá estar no menu principal com os dizeres em cima: "Linux/x86 6.2.10 Kernel Configuration".

Vá em "File Systems" -> Enter, marque os sistemas de arquivos utilizados no sistema com "*". No meu caso, ext4.

Estava: <M> The Extended 4 (ext4) filesystem

Deixei: <*> The Extended 4 (ext4) filesystem

e todas as outras opções ext4 com "*", menos a opção debugging support, a não ser que tu queira habilitar o debug do sistema de arquivos, porém, isso é aconselhável somente se tu souber o que está fazendo, caso contrário deixe como vem no padrão.

Caso tu tenha teu sistema operacional Linux instalado com dois ou mais sistemas de arquivos diferentes (umas partições com um e outras com outro) habilite as opções de acordo para os sistemas de arquivos que tu tiver instalado.

Para ver qual o sistema de arquivos abra um novo terminal e execute como root ou sudo:

# df -Tm
ou
# blkid

Os parâmetros com os arquivos de sistemas os quais tem no seu sistema Linux você pode colocar "*" para compilar embutido no kernel, o suporte do kernel ao sistema de arquivos fica melhor assim, porém, quanto mais opções se coloca como "*" maior ficará o tamanho do kernel após a compilação. Alguns parâmetros é melhor ficarem como módulo (M).

Compilado embutido no Kernel a resposta será mais rápida e com um pouco mais de desempenho.

Compilado como módulo, o parâmetro não deixará o Kernel tão grande depois de compilado.

Habilite somente os parâmetros que tu for usar, é um meio-termo entre quais devem ficar como "M" e quais como "*".

Na dúvida deixe como está no padrão.

Bem mais abaixo, vá em: "Network File Systems" --> enter

E se for servidor, coloque um "*" na opção "NFS server support".

Caso for desktop não precisa mexer nessa opção.

Volte: Esc + Esc

Logo abaixo, vá em "Native language support" e marque com "*", as opções:
  • Codepage 860 (Portuguese)
  • ASCII (United States)
  • NLS ISO 8859-1 (Latin 1; Western European Languages)
  • NLS UTF-8

Retorne ao menu principal dando esc até aparecer a janela "Do you wish to save your new configuration? ", confira se a opção Yes está selecionada e dê enter.

Voltará para o terminal.

Execute:

# ls -a

E veja se o arquivo ".config" foi gravado. Se não, repita a operação.

Caso queria fazer algo mais aprofundado veja este artigo a partir desta página 3 logo depois de sair da janela gráfica de configuração.

No meu caso não se faz necessário, pois é somente uma atualização de kernel para desktop.

Antes de dar o comando abaixo para compilar o kernel aconselho a fechar todas as janelas e deixar aberto somente o terminal compilando.

# make config_debug_section_mismatch=y

O comando acima configura e previne possíveis erros de compatibilidade durante a compilação. Deverá demorar de uma a três horas, dependendo do processamento da máquina. Antes de dar enter, sugiro fechar os outros programas (não que seja necessário, mas é recomendável) e após dar enter sugiro deixar a máquina trabalhando e vá fazer outra coisa. Deixe o terminal aberto e fique monitorando.

Obs.: caso der o "erro make[2]: *** Sem regra para processar o alvo 'debian/certs/debian-uefi-certs.pem', necessário por 'certs/x509_certificate_list' . Pare.".

Entre no arquivo .config:

# vim .config

Obs.: usei o vim, use teu editor de texto preferido.

Procure e comente a linha:

# CONFIG_SYSTEM_TRUSTED_KEYS="debian/certs/debian-uefi-certs.pem"

e logo abaixo crie outra linha como essa:

CONFIG_SYSTEM_TRUSTED_KEYS="certs/x509_certificate_list"

ou:

CONFIG_SYSTEM_TRUSTED_KEYS=""

Eu preferi deixar como "certs/x509_certificate_list".

Sobre este persistente erro tem considerações ao final.

Salve e saia do arquivo e execute novamente:

# make config_debug_section_mismatch=y

Deverá terminar com algo parecido como:

CC [M] virt/lib/irqbypass.mod.o
LD [M] virt/lib/irqbypass.ko


Execute:

# make modules

Compila os módulos. Sempre se deve rodar make modules e make modules_install.

# make modules_install

(instala os módulos)

# make install

(instala o kernel)

O make install instala o kernel, gera a imagem e atualiza o GRUB, deixando tudo pronto para reiniciar. Aguarde terminar.

Reiniciando:

# shutdown -r now

Após reiniciar, verifique o kernel:

# uname -r

Deverá aparecer:

6.2.10

Confirme:

# uname -a
Linux debian 6.2.10 #1 SMP PREEMPT_DYNAMIC Sat Apr 8 23:41:49 -03 2023 x86_64 GNU/Linux

Atualize:

# apt-get update
# aptitude safe-upgrade

Agora vamos remover os kerneis antigos e deixar os dois mais atuais.

# apt search linux-image | grep 'installed'

Saída, no meu caso:

linux-headers-5.10.0-21-amd64/stable-security,now 5.10.162-1 amd64 [installed]
linux-image-5.10.0-20-amd64/stable,now 5.10.158-2 amd64 [installed,automatic]
linux-image-5.10.0-21-amd64/stable-security,now 5.10.162-1 amd64 [installed,automatic]
linux-image-amd64/stable-security,now 5.10.162-1 amd64 [installed]


Veja as versões.

# ls /boot | grep vmlinuz | cut -d'-' -f2,3
5.10.0-20
5.10.0-21
6.2.10


Vamos eliminar a versão mais antiga deixando dois kerneis, caso der problema num, tem o outro para bootar.

# cd /boot
# ls

No meu caso:

config-5.10.0-20-amd64 initrd.img-5.10.0-21-amd64 vmlinuz-5.10.0-20-amd64 config-5.10.0-21-amd64 initrd.img-6.2.10 vmlinuz-5.10.0-21-amd64 config-6.2.10 System.map-5.10.0-20-amd64 vmlinuz-6.2.10 grub System.map-5.10.0-21-amd64 initrd.img-5.10.0-20-amd64 System.map-6.2.10

Removendo o mais antigo e deixando os dois mais recentes:

# rm -rf *-5.10.0-20-amd64
# ls config-5.10.0-21-amd64 initrd.img-5.10.0-21-amd64 System.map-6.2.10 config-6.2.10 initrd.img-6.2.10 vmlinuz-5.10.0-21-amd64 grub System.map-5.10.0-21-amd64 vmlinuz-6.2.10

Atualize o Grub, é necessário:

# update-grub

Reinicie:

# shutdown -r now

E é isso.

Vamos às considerações finais na próxima página.

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Configurando e compilando
   3. Considerações finais
Outros artigos deste autor

Como um monte de letras de um código fonte transforma-se em voltagens?

Compilação do Squid 3 no Debian Wheezy

ClamAV, o kit de ferramentas antivírus

Como agendar um backup automático do PostgreSQL no Cron evitando o problema de senha

Entendendo o que é URI, URL, URN e conhecendo as diferenças entre POST e GET

Leitura recomendada

Kernel 2.6.7 compilado e configurado para nVIDIA

Aplicando o patch do grsecurity no kernel 2.4

Implementando um kernel GNU/Linux mais seguro

Atualizando o Slackware 9.1 para o kernel 2.6.5

Recompilando o Kernel no Ubuntu Linux 9.04

  
Comentários
[1] Comentário enviado por maurixnovatrento em 14/05/2023 - 20:57h


Bem completo.

___________________________________________________________
Conhecimento não se Leva para o Túmulo.
https://github.com/mxnt10

[2] Comentário enviado por Leoney45 em 12/06/2023 - 02:53h


Thanks to this article I can learn more. Expand my knowledge and abilities. Actually the article is very real.
https://www.prepaidgiftbalance.vip/


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts