Início
» LINUX
»
Como corrigir o problema de drivers NVIDIA que não carregam após uma atualização do kernel no Ubuntu
Como corrigir o problema de drivers NVIDIA que não carregam após uma atualização do kernel no Ubuntu
Uma atualização do kernel do Ubuntu pode fazer com que um sistema NVIDIA inicialize normalmente, mesmo que o driver proprietário não seja mais carregado. Os sintomas visíveis variam: nvidia-smipode indicar que não consegue se comunicar com o driver, aplicativos CUDA podem parar de reconhecer a GPU, a área de trabalho pode recorrer à renderização por software ou modprobe nvidiapode falhar completamente. A solução prática é identificar qual camada foi afetada em vez de reinstalar tudo de uma vez.
Esta referência se concentra nos drivers NVIDIA empacotados para Ubuntu e nas diretrizes atuais da Canonical. A partir de outubro de 2026, o Ubuntu recomenda a ubuntu-driversferramenta ou o aplicativo Drivers Adicionais para a maioria dos sistemas e recomenda módulos de kernel pré-compilados e assinados quando disponíveis. A própria documentação da NVIDIA para Ubuntu também oferece suporte ao Ubuntu 22.04, 24.04 e 26.04, mas a nomenclatura dos pacotes difere nas versões mais recentes; portanto, não copie um número de versão de um exemplo, a menos que ele seja realmente oferecido para sua máquina.
Lista de verificação para diagnóstico rápido
Verificar
Comando
O que isso te diz
Kernel em execução
uname -r
A ABI exata do kernel que precisa de um módulo NVIDIA correspondente.
Status do motorista
nvidia-smi
Verificar se o espaço do usuário consegue se comunicar com o módulo do kernel NVIDIA carregado.
Módulos carregados
lsmod | grep -E 'nvidia|nouveau'
Independentemente de quem seja atualmente o proprietário da GPU, NVIDIA ou Nouveau.
Pacote recomendado
sudo ubuntu-drivers list
Versões de drivers que o Ubuntu considera apropriadas para o hardware.
Inicialização segura
mokutil --sb-state
Se módulos de kernel de terceiros não assinados podem ser rejeitados.
Indícios úteis para incompatibilidade de API, rejeição de assinatura ou falhas de sondagem.
Um padrão típico de falha pós-atualização: o novo kernel está em execução, mas o módulo NVIDIA não está carregado. As versões exatas do kernel e do driver em seu sistema podem ser diferentes.
1. Confirme se o problema começou com o kernel atual.
Primeiro, registre o kernel em execução e o estado atual da NVIDIA:
Se nvidia-smia falha ocorrer e nenhum nvidiamódulo aparecer em lsmod, a falha está abaixo da camada CUDA ou da aplicação de desktop. Se nvidia-smio relatório indicar Failed to initialize NVML: Driver/library version mismatch, a Canonical documenta isso como uma incompatibilidade entre o espaço do usuário e o módulo do kernel, que geralmente ocorre após uma atualização de driver; uma reinicialização pode ser suficiente se o novo módulo já estiver instalado.
Se você ainda consegue selecionar um kernel mais antigo no GRUB e o driver funciona nele, isso é uma forte evidência de que o novo kernel não possui um módulo NVIDIA utilizável. Um kernel mais antigo é uma solução temporária útil, mas não é a solução definitiva, pois você ainda precisa que o kernel atual e o conjunto de drivers sejam compatíveis.
2. Pergunte ao Ubuntu qual versão do driver ele recomenda.
Em um desktop ou estação de trabalho Ubuntu padrão, use a lógica de seleção de drivers do próprio Ubuntu em vez de tentar adivinhar qual versão usar:
sudo apt update
sudo ubuntu-drivers list
Para a maioria dos sistemas desktop e de jogos, a Canonical recomenda o driver UDA padrão em vez de um -serverpacote. Em servidores de computação, siga as orientações específicas para servidores, ubuntu-drivers list --gpgpuquando apropriado. Se o seu sistema foi previamente instalado com .runo instalador independente da NVIDIA ou com um repositório de terceiros, misturar fontes de pacotes pode dificultar o diagnóstico. A Canonical alerta explicitamente que drivers instalados fora dos métodos documentados podem sobrescrever componentes fornecidos pelo Ubuntu e interferir na Inicialização Segura (Secure Boot).
Use a descoberta de drivers do Ubuntu para identificar uma versão apropriada para a GPU instalada, em vez de definir uma versão específica de outra máquina.
3. Verifique a Inicialização Segura antes de reinstalar qualquer coisa.
A inicialização segura (Secure Boot) é uma causa frequente de um módulo NVIDIA existir no disco, mas não ser carregado. Verifique o estado dele:
mokutil --sb-state
sudo modprobe nvidia
Se a Inicialização Segura estiver ativada e modproberetornar uma mensagem como esta Key was rejected by service, o kernel está aplicando a validação de módulos. O Ubuntu aplica a validação de módulos do kernel sob Inicialização Segura em versões amd64 compatíveis há anos. A Canonical prefere usar módulos NVIDIA assinados e pré-compilados quando disponíveis. Se você usar o DKMS intencionalmente, o Ubuntu poderá exigir que uma Chave de Proprietário da Máquina (MOK) seja criada e registrada na reinicialização.
Não desative a Inicialização Segura como primeiro passo para solucionar problemas. Pode ser um breve teste diagnóstico em um ambiente controlado, mas a melhor solução geralmente é instalar um módulo assinado ou registrar corretamente a chave MOK. A Canonical documenta o fluxo de registro em sua documentação sobre Inicialização Segura UEFI .
Uma rejeição de assinatura aponta para um problema de confiança no Secure Boot, e não para a ausência de uma GPU. Resolva a questão da assinatura de módulos ou do registro MOK em vez de reinstalar repetidamente as bibliotecas do espaço do usuário.
4. Verifique se o módulo NVIDIA correspondente existe para o kernel em execução.
Os pacotes NVIDIA pré-compilados do Ubuntu estão vinculados a uma ABI do kernel. Substitua DRIVER_BRANCHpelo branch mostrado por ubuntu-drivers list:
Se o pacote estiver instalado para o kernel atual, prossiga para as verificações de Inicialização Segura, Nouveau e registro de logs abaixo. Caso contrário, instale o pacote de módulo correspondente:
A Canonical também oferece suporte à instalação do metapacote de sabor, por exemplo linux-modules-nvidia-${DRIVER_BRANCH}-generic, o que ajuda futuras atualizações do kernel a obterem os módulos NVIDIA correspondentes. O nome exato do pacote depende da sua versão do Ubuntu, do sabor do kernel, da ramificação do driver e se você usa uma variante de servidor; portanto, verifique o candidato exibido pelo APT antes de confirmar.
Verificar a política de pacotes ajuda a distinguir um módulo NVIDIA específico do kernel ausente de um problema com o driver do espaço do usuário.
5. Se você usa DKMS, certifique-se de que os cabeçalhos do kernel atual estejam presentes.
O DKMS cria um módulo específico para o kernel que você está executando. Portanto, ele precisa de cabeçalhos de kernel correspondentes. A Canonical recomenda o DKMS principalmente quando módulos pré-compilados não estão disponíveis, como em alguns kernels personalizados.
sudo apt install linux-headers-$(uname -r)
dkms status
Se a entrada do NVIDIA DKMS não mostrar uma compilação bem-sucedida para o kernel atual, verifique o log de compilação /var/lib/dkms/antes de tentar remover pacotes aleatoriamente. Falhas típicas incluem cabeçalhos ausentes, combinações de compilador/kernel não suportadas ou um problema de assinatura de módulo. Após corrigir o pré-requisito, reinstale o pacote DKMS apropriado ou use o caminho automático do Ubuntu:
sudo ubuntu-drivers install --include-dkms
Use esse comando somente quando o DKMS for realmente necessário. A documentação atual da Canonical para desktops afirma que os módulos pré-compilados são a opção preferida para a maioria dos usuários, especialmente com a Inicialização Segura (Secure Boot).
Os cabeçalhos do kernel correspondentes são necessários quando o DKMS precisa compilar um módulo NVIDIA para o kernel atual.
6. Instale o módulo pré-compilado ausente quando disponível.
Se a etapa 4 mostrar que o kernel atual não possui o módulo NVIDIA pré-compilado, instale-o explicitamente e deixe o APT reconstruir o initramfs:
Em seguida, verifique se o APT foi concluído sem erros de dependência. Evite forçar a instalação de pacotes com dpkg --force-*`--force`, pois isso pode deixar o módulo do kernel, as bibliotecas do espaço do usuário e o metapacote em versões incompatíveis.
Se você não tiver certeza de qual ramo usar, o reparo geral mais seguro é:
sudo ubuntu-drivers install
A Canonical afirma que ubuntu-driversusa a mesma lógica do aplicativo Drivers Adicionais e, por padrão, escolhe drivers pré-compilados e assinados que comprovadamente funcionam com a Inicialização Segura.
A instalação do pacote de módulos específico do kernel corrige o caso comum em que o branch do driver está presente, mas o novo kernel não possui o módulo NVIDIA correspondente.
7. Reinicie após alterações no pacote.
Neste caso, a reinicialização não é meramente cerimonial. O kernel em execução pode manter um módulo NVIDIA antigo na memória enquanto o APT já atualizou as bibliotecas do espaço do usuário no disco. A Canonical documenta especificamente isso como a causa de uma incompatibilidade entre as versões do driver/biblioteca NVML após as atualizações.
sudo reboot
Após reiniciar, não reinstale imediatamente. Primeiro, verifique o resultado com os comandos na próxima seção.
Após alterações no driver ou no módulo do kernel, reinicie o sistema para que o kernel carregue o módulo NVIDIA recém-instalado e os componentes do espaço do usuário retornem à versão anterior.
Um reparo bem-sucedido apresenta três sinais úteis: nvidia-smilista a GPU, lsmodmostra os módulos NVIDIA e /proc/driver/nvidia/versioninforma a versão do módulo em execução. Para cargas de trabalho CUDA, execute novamente o aplicativo ou framework que apresentou falha anteriormente; isso nvidia-smipor si só comprova a comunicação do driver, não necessariamente a compatibilidade de todas as bibliotecas CUDA em seu ambiente.
Um estado final saudável: o nvidia-smi consegue comunicar com a GPU e os módulos do kernel da NVIDIA estão carregados. Os valores apresentados são um exemplo, não uma versão obrigatória.
Se ainda assim não funcionar: use o sintoma para escolher a próxima ação.
“Incompatibilidade entre a versão do driver e a versão da biblioteca”
Reinicie o sistema primeiro. Em seguida, compare a versão do módulo do kernel em execução com os pacotes instalados. A Canonical observa que componentes de espaço do usuário atualizados podem entrar em conflito temporariamente com um módulo mais antigo ainda carregado na memória. Se a incompatibilidade persistir após a reinicialização, verifique se há fontes de pacotes misturadas e várias ramificações de drivers.
“Nenhum dispositivo foi encontrado” e o Nouveau está carregado.
Verificar:
lsmod | grep nouveau
A documentação do servidor Ubuntu afirma que o Nouveau pode entrar em conflito com o driver proprietário da NVIDIA nessa situação. Se o Nouveau estiver carregado e você pretende usar o driver proprietário, a Canonical documenta o processo de bloqueá-lo e reconstruir o initramfs:
echo "blacklist nouveau" | sudo tee /etc/modprobe.d/disable-nouveau.conf
echo "options nouveau modeset=0" | sudo tee -a /etc/modprobe.d/disable-nouveau.conf
sudo update-initramfs -u
sudo reboot
Não bloqueie o Nouveau apenas porque ele existe no disco; primeiro confirme se ele está realmente carregado e se é relevante para a falha.
modprobe nvidiadiz que a chave foi rejeitada
Retorne ao caminho de Inicialização Segura. Use módulos Ubuntu assinados sempre que possível ou conclua o registro MOK para um módulo DKMS. Reinstalar repetidamente o mesmo módulo não assinado não alterará a decisão de confiança.
O novo kernel não possui nenhum pacote de módulo compatível.
Inicialize temporariamente um kernel antigo que você sabe que funciona, mantenha o sistema atualizado e verifique se o Ubuntu fornece um módulo pré-compilado compatível com o kernel mais recente. Se você estiver usando um kernel personalizado, o DKMS pode ser apropriado, mas leia o log de compilação e confirme a assinatura do Secure Boot. Evite fixar um kernel antigo indefinidamente, a menos que você tenha um plano de manutenção para atualizações de segurança.
Comandos a serem coletados antes de pedir ajuda
Esses comandos fornecem um pacote de diagnóstico compacto sem alterar o sistema:
Inclua a versão do Ubuntu (de `/ etc/ubuntu` lsb_release -aou `/etc/ubuntu` /etc/os-release), o kernel exato (de `/ uname -retc/ubuntu`) e se o driver foi originalmente instalado por meio de pacotes do Ubuntu, do repositório da NVIDIA, de um PPA ou do instalador independente. Esses detalhes geralmente são mais importantes do que a afirmação genérica de que "o driver parou de funcionar após uma atualização".
Prevenção prática
ubuntu-driversPara sistemas desktop comuns, prefira o fluxo de trabalho do Ubuntu ou o de drivers adicionais.
Mantenha o metapacote de sabor do kernel instalado para que futuras atualizações do kernel possam trazer módulos NVIDIA compatíveis.
Reinicie o sistema após atualizações do kernel ou do driver da NVIDIA, em vez de continuar com uma pilha mista de memória e disco.
Mantenha pelo menos um kernel funcional disponível até confirmar que o novo kernel inicializa com o driver da GPU.
Evite misturar pacotes do Ubuntu, PPAs, o instalador independente da NVIDIA e vários repositórios, a menos que você esteja ciente das consequências.
A ramificação exata do driver, a ABI do kernel e os nomes dos pacotes dependem da versão. Sempre substitua os valores relatados pelo seu sistema e pelo APT, em vez de considerar as versões de exemplo como universais.