Lembre-se de que é uma compilação de Kernel, faça as coisas com calma, sem pressa, curta o momento, divirta-se no processo e esqueça que se você errar pode ferrar todo o sistema, abstraia esse pensamento, pois uma compilação de Kernel serve para você ficar em paz consigo.
Instalando os pacotes necessários (a maioria dos pacotes abaixo, necessários para a compilação, tem para a maioria das distribuições, alguns mudam de nome, mas durante a instalação você verá a mensagem indicando o pacote para sua distribuição).
Pesquise antes os comandos e os pacotes específicos para a sua distribuição.
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 um Kernel atual você tem novas funções, em suma, um sistema supostamente mais eficiente.
NOTA: para fazer compilação de kernel tenha em mente que demora de uma a duas horas (ou mais) dependendo da capacidade de processamento da tua máquina.
Para esta compilação foi usado o
Debian.
Atualizando o sistema:
# apt-get update
# aptitude safe-upgrade
ou
# apt-get upgrade
Eu prefiro "aptitude safe-upgrade" porque o gerenciamento do upgrade é mais "safo" e seguro. Usarei o aptitude, mas tu podes usar o apt-get ou o apt. Talvez tu tenha que instalar o aptitude (apt-get install aptitude), pois não vem mais por padrão no Debian.
Caso seja a primeira vez que você esteja vendo uma compilação de kernel, não se assuste, não é difícil, é um pouco trabalhosa e demanda tempo, mas não é difícil. Aliás, nada é difícil, tudo é trabalhoso, mas nada é difícil.
Instalando as dependências necessárias todas atualizadas (a maioria dos pacotes abaixo, necessários para a compilação, tem para a maioria das distribuições, alguns mudam de nome, mas durante a instalação você verá a mensagem avisando se tal pacote existe ou não).
Copie e cole os comandos abaixo ou digite para endurecer os dedos e as unhas.
# aptitude install build-essential kmod initramfs-tools libaal-dev wget liblzo2-dev gzip libncurses5 libncurses5-dev dpatch udev binutils module-assistant
# aptitude install binutils module-assistant linux-source bc cpio libelf-dev bin86 flex bison openssl libssl-dev dwarves bison
Instalando os headers (cabeçalhos) necessários para compilar o Kernel:
# aptitude install linux-headers-`uname -r`
Agora vamos descobrir qual o processador da máquina:
# cat /proc/cpuinfo
Abaixo está uma parte da saída do comando acima.
processor : 0
vendor_id : AuthenticAMD
cpu family : 21
model : 1
model name : AMD FX(tm)-6100 Six-Core Processor
stepping : 2
microcode : 0x6000629
cpu MHz : 1406.061
cache size : 2048 KB
physical id : 0
siblings : 6
core id : 0
cpu cores : 3
apicid : 16
initial apicid : 0
fpu : yes
fpu_exception : yes
cpuid level : 13
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc cpuid extd_apicid aperfmperf pni pclmulqdq monitor ssse3 cx16 sse4_1 sse4_2 popcnt aes xsave avx lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs xop skinit wdt lwp fma4 nodeid_msr topoext perfctr_core perfctr_nb cpb hw_pstate ssbd vmmcall arat npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold
bugs : fxsave_leak sysret_ss_attrs null_seg spectre_v1 spectre_v2 spec_store_bypass retbleed
bogomips : 6629.37
TLB size : 1536 4K pages
clflush size : 64
cache_alignment : 64
address sizes : 48 bits physical, 48 bits virtual
power management: ts ttp tm 100mhzsteps hwpstate cpb
No meu caso no PC é um AMD FX(tm)-6100 Six-Core Processor. Essa informação usaremos depois na configuração do kernel.
A compilação aqui descrita foi realizada em três máquinas: um PC com processador AMD, um PC com processador Intel i5 e um notebook com processador Intel i7. Não se faz necessário mostrar a saída do comando com as três máquinas.
Quando deu erro por duas vezes na compilação com a primeira máquina eu quis tirar a dúvida e a coisa tomou proporções que durou uma semana.
Usei o kernel 6.2.9 e o 6.2.10 baixados do site oficial kernel.org tanto pelo botão amarelo quanto pelo wget; e deu erro assim mesmo.
Espero que já tenham sanado esse erro, pois foram avisados.
Lembrando que há uma maneira bem mais simples de compilar o kernel com menos comandos, mas o nosso caso é aprendizado, então faremos da única maneira: uma das mais fáceis e das mais trabalhosas.
Caso quiser ver a maneira mais fácil leia o arquivo README.rst em usr/src/linux-6.2.9/Documentation/admin-guide.
Entrando no diretório próprio (padrão) para compilação, mas caso quiser pode instalar a partir de outro diretório, o opt por exemplo.
# cd /usr/src
Baixando o a última versão do Kernel
# wget https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.2.10.tar.xz
Ou pode baixar fazendo o download de https://www.kernel.org/ clicando no botão amarelo Latest Release e salvando em /usr/src.
Confira:
# ls
Descompactando:
# tar -xv --xz -f linux-6.2.10.tar.xz
Entrando na pasta, não utilizaremos link simbólico para compilação:
# cd linux-6.2.10
Limpando prováveis compilações anteriores:
# make mrproper
Dê um:
# ls -a
Não deve ter nenhum arquivo ".config" na pasta. Caso tiver execute make mrproper novamente ou apague manualmente o arquivo com:
# rm -rf .config