Como atualizo meus módulos nvidia depois de atualizar meu kernel?

16

Toda vez que há uma atualização do kernel, os drivers gráficos da nvidia param de funcionar porque não há um módulo válido do kernel.

Qual é a maneira do ubuntu 'recompilar' o módulo nvidia para o novo kernel?

Não deveria ser feito automaticamente? Estou sofrendo um bug?

fazineroso
fonte

Respostas:

5

Se você instalou o driver NVIDIA como um pacote ubuntu, ele deve ser atualizado automaticamente após cada atualização do kernel.

Você pode instalar o driver em pacote usando a Additional Driversferramenta no painel ou instalando o pacote nvidia-current.

Se você instalou o driver da nvidia diretamente do site deles, provavelmente é sensato removê-lo antes de instalar este pacote - não tenho certeza de quão bom será para detectar o conflito.

Se você instalou o pacote a partir dos repositórios do ubuntu, pode tentar reconfigurá-lo, dpkg-reconfiguremas suspeito que a construção do módulo nvidia foi acionada instalando um novo kernel, e não tenho certeza de como acioná-lo. A desinstalação e reinstalação tradicionais podem funcionar ( sudo apt-get remove nvidia-current; sudo apt-get install nvidia-current).

cronite
fonte
Eu instalei o driver da nvidia através de um pacote Ubuntu. Mas atualizar o kernel não acionou a recompilação do meu módulo nvidia. Obrigado por suas dicas de qualquer maneira.
fazineroso
4

Para mim, o dpkg-reconfigure reconstrói o driver da Nvidia com o kernel mais recente. Isso requer uma reinicialização para entrar em vigor. Meu exemplo abaixo usa as atualizações mais antigas da nvidia-304.

sudo dpkg-reconfigure nvidia-304-updates

EDIT: Eu consegui automatizar isso escrevendo um script zz-dkpg-reconfigure-nvidiaque é executado após as atualizações do kernel

#!/bin/bash
#
# Reconfigure nvidia driver

DRIVER=nvidia-304-updates

dpkg-reconfigure $DRIVER > /var/log/dpkg-reconfigure-nvidia.log 2>&1

exit 0

Eu instalei o script acima executando

sudo install zz-dkpg-reconfigure-nvidia /etc/kernel/postinst.d

Funciona no meu kernel do Ubuntu 14.04 3.13.0-29 para a atualização 3.13.0-36.

user424174
fonte
4

Quando você instalou o driver binário da NVIDIA, provavelmente não instalou o pacote dkms. O Dkms garante que toda vez que você atualize o kernel, os módulos que o suportam sejam recompilados:

sudo apt-get install dkms

Você provavelmente precisará reinstalar os drivers binários da NVIDIA posteriormente e permitir o uso do DKMS durante a instalação, pois precisa ser registrado com ele.

Karel Lenc
fonte
Estou com o mesmo problema e percebi que não o instalei dkmsdepois de ler esta resposta.
yaobin 25/09/19
3

Se você deseja reconstruir apenas os módulos do kernel, poderá executar

sudo apt-get install --reinstall nvidia-current

se você tiver a nvidia-current instalada ou se a nvidia-331 estiver instalada, faça o seguinte:

sudo apt-get install --reinstall nvidia-331

não há necessidade de adicionar um repositório ou instalar um novo software :-)

Cérebro de aço
fonte
1

Observe que nem a instalação de uma atualização do kernel nem os drivers de repositórios oficialmente não suportados são recomendados! Siga estas instruções por sua conta e risco e somente se você souber o que está fazendo!

Se você instalou um kernel que está à frente dos repositórios oficiais atuais do Ubuntu (por exemplo, kernel 3.4 ou 3.5), poderá não conseguir reinstalar simplesmente os drivers da nvidia.

A única maneira que encontrei até agora para fazer com que os nvidia-drivers funcionem novamente é adicionando o seguinte ppa aos seus repositórios. Em um tipo de terminal:

sudo add-apt-repository ppa:xorg-edgers/ppa

Depois disso, faça um sudo apt-get updatee sudo apt-get install nvidia-current.

Isso deve fazer o truque. Caso contrário, execute um adicional sudo apt-get upgrade.

FuzzyQ
fonte