Vamos então iniciar o processo de compilação e construção do pacote.
1. Ativando os repositórios source
Primeiramente, estou assumindo que você já tenha os repositórios do Debian configurados minimamente no arquivo
/etc/apt/source.list. Eu usei como base essa fonte (
https://gist.github.com/hakerdefo/5e1f51fa93ff37871b9ff738b05ba30f), conforme abaixo (use o comando para editá-lo:
sudo nano /etc/apt/sources.list):
deb http://deb.debian.org/debian bookworm main contrib non-free-firmware
# deb-src http://deb.debian.org/debian bookworm main contrib non-free-firmware
deb http://deb.debian.org/debian bookworm-updates main contrib non-free-firmware
# deb-src http://deb.debian.org/debian bookworm-updates main contrib non-free-firmware
# deb http://deb.debian.org/debian bookworm-backports main contrib non-free-firmware
# deb-src http://deb.debian.org/debian bookworm-backports main contrib non-free-firmware
deb http://security.debian.org/debian-security bookworm-security main contrib non-free-firmware
# deb-src http://security.debian.org/debian-security bookworm-security main contrib non-free-firmware
Aí, você descomenta os deb-src tirando o sinal de # do início das linhas que o possuem:
deb http://deb.debian.org/debian bookworm main contrib non-free-firmware
deb-src http://deb.debian.org/debian bookworm main contrib non-free-firmware
deb http://deb.debian.org/debian bookworm-updates main contrib non-free-firmware
deb-src http://deb.debian.org/debian bookworm-updates main contrib non-free-firmware
# deb http://deb.debian.org/debian bookworm-backports main contrib non-free-firmware
# deb-src http://deb.debian.org/debian bookworm-backports main contrib non-free-firmware
deb http://security.debian.org/debian-security bookworm-security main contrib non-free-firmware
deb-src http://security.debian.org/debian-security bookworm-security main contrib non-free-firmware
Se você quiser ativar o
bookworm-backports, sem problemas. Use as teclas CTRL + O para salvar e CTRL + X para fechar o arquivo.
2. Instalando as Dependências Necessárias
Opcional, pois a próxima etapa já baixa tais dependências, mas coloquei caso alguém queira acompanhar com um kernel mais atualizado, ou baixado direto do site do kernel.
sudo apt install build-essential
sudo apt build-dep linux
3. Instalando o Source do Kernel Debian
Usando esse comando:
uname -r
O resultado foi:
6.1.94
Então, baixe o kernel desse jeito:
sudo apt install linux-source-6.1
tar xaf /usr/src/linux-source-6.1.tar.xz
cd linux-source-6.1
4. Limpeza Inicial
Para garantir que o código está limpo use:
make mrproper
5. Usar a Configuração Padrão para a Arquitetura
Esse comando usa o padrão pré-definido. Essa etapa é opcional e pode ser pulada. Isso vai te dar o kernel mais genérico possível.
make defconfig
6. Usar .config Customizado
Geralmente, esse é o comando recomendado nesses casos:
zcat /proc/config.gz > .config
Mas, o Debian não tem esse recurso por padrão. Então, deve ser usado um desses métodos alternativos para copiar o .config do
/boot:
- cat /boot/config-$(uname -r) > .config
- cp /boot/config-$(uname -r) .config
Não vai só copiando o comando direto, pode ter mais de um
config em
boot ou ter outros nomes.
7. Gerar uma Configuração Baseada no Kernel em Execução e nos Módulos Carregados
Também é opcional mas é o que pode fazer a diferença, pois ele vai configurar o kernel especificamente para sua máquina, mantendo apenas os módulos que você precisa. Mas também é o comando que pode tirar demais e acabar faltando algum módulo que você precisa depois.
make localmodconfig
A compilação usará menos tempo e espaço em disco se as informações de depuração estiverem desabilitadas.
scripts/config --disable DEBUG_INFO
scripts/config --disable CONFIG_DEBUG_INFO_BTF
8. Interface para Configurar os Módulos do Kernel
Tem várias, use aquela que você gostar mais, o mais usado e o recomendado é o
menuconfig:
Se precisar:
- sudo apt install libncurses-dev # nconfig
- sudo apt install libgtk2.0-dev libglib2.0-dev libglade2-dev # gconfig
- sudo apt install qtbase5-dev # xconfig
Lembre de carregar os módulos e salvar os módulos no final da configuração dos módulos.
9. Verificar os Módulos que serão compilados
Esses comandos ajudam a saber quantos módulos serão compilados:
grep =y .config | wc -l
grep =m .config | wc -l
10. Compilando o kernel
Como estamos no Debian, vamos compilar e gerar o pacote direto.
make bindeb-pkg
11. Instalando o novo Kernel
No final, serão gerados vários pacotes no diretório /home:
linux-headers-6.1.94_6.1.94-4_amd64.deb
linux-image-6.1.94_6.1.94-4_amd64.deb
linux-image-6.1.94_6.1.94-4-dbg_amd64.deb
linux-libc-dev_6.1.94-4_amd64.deb
Instale esse:
sudo dpkg -i ~/linux-image-6.1.94_6.1.94-4_amd64.deb
Este comando descompactará o kernel, gerará o initrd se necessário e configurará o bootloader para tornar o kernel recém-instalado o padrão. Após isso, é só reiniciar e já estará pronto.
sudo shutdown -r now
Aqui está o vídeo do Canal do
YouTube para ajudar a entender o processo.