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.