🐧 Guia Definitivo: NVIDIA 390 Legacy no Debian Trixie
Tutorial 1.0
Fábio Dutra
Este tutorial resolve o problema de incompatibilidade do driver proprietário NVIDIA 390xx com kernels recentes (série 6.x) no Debian Trixie. Ele contorna o temido erro de dependências quebradas e o bug da compilação do DKMS (/Kbuild: Arquivo ou diretório inexistente).
Fase 1: Preparação e Faxina
O DKMS falha se você tiver cabeçalhos (headers) de kernels antigos instalados. Vamos limpar a casa e instalar as ferramentas certas.
1. Remova headers antigos:
# Descubra seu kernel atual
uname -r
# Remova os antigos (Exemplo: sudo apt remove --purge linux-headers-6.18*)
sudo apt autoremove
# Instale os cabeçalhos exatos e pbuilder
sudo apt update
sudo apt install pbuilder dpkg-dev linux-headers-$(uname -r)
Fase 2: Compilar os pacotes patcheados
O Debian Unstable (Sid) possui os patches necessários para o kernel 6.x.
1. Adicione o repositório do Sid temporariamente:
Adicione ao /etc/apt/sources.list:
deb-src http://deb.debian.org/debian unstable main non-free contrib non-free-firmware
2. Baixe o código e compile:
mkdir -p "$HOME/nvidia-build/390xx" "$HOME/nvidia-build/settings"
cd "$HOME/nvidia-build/390xx"
apt source --download-only nvidia-legacy-390xx-driver
cd "$HOME/nvidia-build/settings"
apt source --download-only nvidia-settings-legacy-390xx
sudo pbuilder create --distribution trixie --architecture amd64
cd "$HOME/nvidia-build/390xx"
sudo pbuilder build nvidia-graphics-drivers-legacy-390xx_*.dsc
cd "$HOME/nvidia-build/settings"
sudo pbuilder build nvidia-settings-legacy-390xx_*.dsc
Fase 3: Criar Repositório Local e Instalar
cd /var/cache/pbuilder/result/
sudo sh -c 'dpkg-scanpackages . /dev/null | gzip -9c > Packages.gz'
echo "deb [trusted=yes] file:/var/cache/pbuilder/result/ ./" | sudo tee /etc/apt/sources.list.d/nvidia-local.list
sudo apt update
sudo apt install nvidia-legacy-390xx-driver nvidia-legacy-390xx-kernel-dkms nvidia-settings-legacy-390xx
⚠️ Atenção: A instalação vai DAR ERRO na etapa de configuração do DKMS. Isso é esperado.
Fase 4: A Vacina do DKMS
Copie e cole este bloco inteiro para forçar o script da NVIDIA a ignorar a variável bugada:
cat << 'EOF' > /tmp/nvidia_fix.txt
ifeq ($(src),)
override KERNELRELEASE =
endif
EOF
cat /usr/src/nvidia-legacy-390xx-390.157/Makefile > /tmp/nvidia_makefile.bak
cat /tmp/nvidia_fix.txt /tmp/nvidia_makefile.bak | sudo tee /usr/src/nvidia-legacy-390xx-390.157/Makefile > /dev/null
Reconstrua manualmente e finalize:
sudo dkms remove -m nvidia-legacy-390xx -v 390.157 --all
sudo dkms add -m nvidia-legacy-390xx -v 390.157
sudo dkms build -m nvidia-legacy-390xx -v 390.157 -k $(uname -r)
sudo dkms install -m nvidia-legacy-390xx -v 390.157 -k $(uname -r)
sudo dpkg --configure -a
sudo rm /etc/apt/sources.list.d/nvidia-local.list
sudo apt update
sudo reboot