Installer et empêcher la mise à jour de pilotes graphiques (nVidia, Ubuntu Mate)

Dans l’optique de passer au quotidien à Linux au lieu de Windows 10 (sauf pour les jeux, faut pas déconner), je me suis heurté plusieurs fois à des problèmes de pilotes qui se mettaient à jour tout seuls, ce qui habituellement est une bonne chose, mais systématiquement, quand ça arrive, je perds complètement mes pilotes, me retrouve avec une définition de Minitel, voire plus rien ne s’affiche.

On pourrait se dire que ma carte graphique est une AMD avec une description comme ça (c’est la douleur de plusieurs expérience qui parle, pas le troll), mais non, c’est bien du nVidia.

La solution est donc de trouver une bonne fois les pilotes, puis de verrouiller leur mise à jour via apt.
Merci à Chris Albon pour son super article qui m’a servi de base!

1- Prérequis

  • Evidemment, il vous faut un accès administrateur,
  • l’envie de pleurer du sang,
  • des hectolitres de motivation,
  • quelques connaissances de base en Linux.

2- Procédure

A- Détermination des pilotes installés

  • Assurez-vous que vous avez déjà des pilotes fonctionnels : il se peut que les choses semblent fonctionner, mais que vous soyez en fin de compte avec les pilotes génériques.
    Dans le menu, cherchez Software & Updates , ce qui vous amène ici :
  • Dans l’onglet Additional Drivers, si vous avez quelque chose comme ceci :
  • Et surtout pas la ligne “Aucun pilote propriétaire en cours d’utilisation” , c’est qu’une installation correcte des pilotes fonctionne. Je recommande d’utiliser les pilotes terminant par (Propriétaire, testé), qui sont logiquement les plus robustes, au lieu des derniers non testés ou open source.

Si vous avez un écran similaire à celui-ci, rendez-vous à la partie C- Verrouillage des mises à jour.

  • Si vous avez la ligne “Aucun pilote propriétaire en cours d’utilisation”, alors il vous faut trouver une version de pilote qui va bien.

B- Installation des pilotes

Il vous est probablement impossible de sélectionner autre chose que la ligne “Aucun pilote…”, en dépit du fait que les trois options sur la précédente capture d’écran soient présentes.
Pour y remédier, nous allons faire un grand ménage, puis redémarrer.

Dans un terminal, tapez :

sudo apt purge *nvidia* -y && sudo reboot

Ceci va désinstaller tout package nVidia précédemment installé., puis redémarrer.
Il y a beaucoup de dépendances et de packages mineurs, donc faire de l’épicerie fine serait bien trop pénible.
Le redémarrage accompli, allez de nouveau dans Software & Updates, dans l’onglet Additional Drivers : cette fois, il devrait être possible de sélectionner la ligne qui nous intéresse, à savoir celle qui se termine par (propriétaire, testé) en haut.

Ceci fait, redémarrez pour que les pilotes soient activés.
Enfin, retournez dans Additional Drivers pour avoir en bas de la fenêtre “1 pilote propriétaire en cours d’utilisation” : si tel est le cas, vous avez gagné.

C- Verrouillage des mises à jour

Maintenant que nous avons notre bon set de drivers, nous allons les protéger.
Dans un terminal :

sudo apt list *nvidia* --installed >> ~/nvidialist.txt

Nous venons de lister les packages nVidia nécessaires aux pilotes, et d’inscrire cette liste dans un fichier nvidialist.txt situé dans le dossier Home de notre utilisateur courant.

Ouvrez ce fichier, qui ressemble normalement à ceci :

Nous allons tailler dans le vif :
– supprimez la première ligne (Listing…)
– sur toutes les lignes, supprimez le slash et sa suite (sur la capture ci-dessus, en ligne 2, cela donne lbnvidia-cfg1-390). C’est pénible, mais nécessaire, vous verrez.
S’il y a des brutes de l’expression régulière, lâchez-vous 🙂
– concaténez ensuite les noms des packages en les séparant d’un espace, ce qui donne un truc comme ça :
libnvidia-cfg1-390 libnvidia-common-390 libnvidia-compute-390 libnvidia-compute-390 libnvidia-decode-390 libnvidia-decode-390 libnvidia-encode-390 libnvidia-encode-390 libnvidia-fbc1-390 libnvidia-fbc1-390 libnvidia-gl-390 libnvidia-gl-390 libnvidia-ifr1-390 libnvidia-ifr1-390 linux-modules nvidia-390-5.15.0-33-generic linux-modules-nvidia-390-generic linux-objects-nvidia-390-5.15.0-33-generic linux-signatures-nvidia-5.15.0-33-generic nvidia compute-utils-390 nvidia-driver-390 nvidia-kernel-common-390 nvidia-kernel-source-390 nvidia-prime nvidia-settings nvidia-utils-390 xserver-xorg-video-nvidia-390

Copiez ce résultat.

Dans un terminal, entrez maintenant :

sudo apt-mark hold <coller la liste des packages>

Nous venons de “protéger” les packages des mises à jour automatiques d’apt, mais il reste une dernière chose à faire :

sudo nano /etc/apt/apt.conf.d/20auto-upgrades

A la ligne :

APT::Periodic::Unattended-Upgrade "1"; 

Remplacez le 1 par un 0, sauvegardez et quittez. Et voilà, normalement, les mises à jour foireuses sont de l’histoire ancienne!

Leave a Reply

Your email address will not be published. Required fields are marked *