Comment mettre à jour mes modules nvidia après avoir mis à jour mon noyau?


16

Chaque fois qu'il y a une mise à jour du noyau, les pilotes graphiques nvidia cessent de fonctionner car il n'y a pas de module de noyau valide.

Quelle est la manière ubuntu de «recompiler» le module nvidia pour le nouveau noyau?

Cela ne devrait-il pas être fait automatiquement? Je souffre d'un bug?

Réponses:


5

Si vous avez installé le pilote NVIDIA en tant que package ubuntu, il doit être mis à jour automatiquement après chaque mise à niveau du noyau.

Vous pouvez installer le pilote fourni à l'aide de l' Additional Driversoutil du tableau de bord ou installer le package nvidia-current.

Si vous avez installé le pilote nvidia directement depuis leur site Web, il est probablement judicieux de le supprimer avant d'installer ce package - je ne suis pas certain de sa capacité à détecter le conflit.

Si vous avez installé le package à partir des référentiels ubuntu, vous pouvez essayer de le reconfigurer avec dpkg-reconfiguremais je soupçonne que la construction du module nvidia est déclenchée par l'installation d'un nouveau noyau, et je ne sais pas comment le déclencher autrement. La désinstallation et la réinstallation traditionnelles peuvent très bien fonctionner ( sudo apt-get remove nvidia-current; sudo apt-get install nvidia-current).


J'ai installé le pilote nvidia via un package Ubuntu. Mais la mise à jour du noyau n'a pas déclenché la recompilation de mon module nvidia. Merci pour vos conseils quand même.
fazineroso

4

Pour moi, dpkg-reconfigure reconstruit le pilote Nvidia avec le dernier noyau. Cela nécessite ensuite un redémarrage pour prendre effet. Mon exemple ci-dessous utilise les anciennes mises à jour de nvidia-304.

sudo dpkg-reconfigure nvidia-304-updates

EDIT: J'ai réussi à automatiser cela en écrivant un script zz-dkpg-reconfigure-nvidiaqui s'exécute après les mises à jour du noyau

#!/bin/bash
#
# Reconfigure nvidia driver

DRIVER=nvidia-304-updates

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

exit 0

J'ai installé le script ci-dessus en exécutant

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

Fonctionne sur mon noyau Ubuntu 14.04 3.13.0-29 à 3.13.0-36.


4

Lorsque vous avez installé le pilote binaire NVIDIA, vous n'avez probablement pas installé le package dkms. Dkms s'assure que chaque fois que vous mettez à jour le noyau, les modules qui le prennent en charge sont recompilés:

sudo apt-get install dkms

Vous devrez probablement réinstaller les pilotes binaires NVIDIA par la suite, et autoriser à utiliser DKMS pendant la configuration car il doit être enregistré avec lui.


Je rencontre le même problème et je viens de réaliser que je ne l'ai pas installé dkmsaprès avoir lu cette réponse.
yaobin

3

Si vous souhaitez uniquement reconstruire les modules du noyau, vous voudrez peut-être simplement exécuter

sudo apt-get install --reinstall nvidia-current

si vous avez installé nvidia-current, ou si vous avez installé nvidia-331, cela devrait faire le travail:

sudo apt-get install --reinstall nvidia-331

pas besoin d'ajouter un repo ou d'installer un nouveau logiciel :-)


1

Veuillez noter que ni l'installation d'une mise à niveau du noyau ni les pilotes à partir de référentiels officiellement non pris en charge n'est recommandé! Suivez ces instructions à vos risques et périls et seulement si vous savez ce que vous faites!

Si vous avez installé un noyau qui est en avance sur les référentiels officiels Ubuntu actuels (par exemple, le noyau 3.4 ou 3.5), vous pourriez ne pas réussir à réinstaller simplement les pilotes nvidia.

Le seul moyen que j'ai trouvé jusqu'à présent pour faire fonctionner à nouveau les pilotes nvidia est d'ajouter le ppa suivant à vos référentiels. Dans un type de terminal:

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

Après cela, faites un sudo apt-get updateet sudo apt-get install nvidia-current.

Cela devrait faire l'affaire. Sinon, exécutez-en un supplémentaire sudo apt-get upgrade.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.