NVidiaJe viens d’effectuer la mise à jour d’OpenSUSE Leap 15.1 vers la version 15.2 sur mon bon vieux MacBook Pro, et j’ai eu la surprise de constater que le pilote NVidia pour ma carte graphique n’est plus fourni par les dépôts de paquets NVidia pour la distribution OpenSUSE. J’ai testé le pilote libre nouveau, mais après quelques gels inexplicables de mon environnement graphique, je reste dubitatif. La mauvaise nouvelle, c’est que le pilote propriétaire n’est plus officiellement maintenu par NVidia. La bonne nouvelle, c’est qu’il est toujours disponible sur le site du constructeur et qu’on peut encore l’utiliser en mettant les mains dans le cambouis.

Avant toute chose, je désactive l’environnement graphique.

# systemctl set-default multi-user.target
# systemctl isolate multi-user.target

J’identifie plus précisément la carte de mon MacBook, une GeForce 9400M.

# lspci | grep -i vga
02:00.0 VGA compatible controller: NVIDIA Corporation C79 [GeForce 9400M] 
(rev b1)

L’ancien pilote nvidia en provenance des dépôts de paquets pour OpenSUSE Leap 15.1 est encore présent sur la machine.

# rpm -qa | grep -i nvidia
nvidia-glG03-340.108-lp151.19.1.x86_64
nvidia-gfxG03-kmp-default-340.108_k4.12.14_lp151.27-lp151.19.1.x86_64
nvidia-computeG03-340.108-lp151.19.1.x86_64
nvidia-uvm-gfxG03-kmp-default-340.108_k4.12.14_lp151.27-lp151.19.1.x86_64
x11-video-nvidiaG03-340.108-lp151.19.1.x86_64

Je supprime ces paquets obsolètes.

# zypper remove --clean-deps x11-video-nvidiaG03 nvidia-*

Le pilote propriétaire nvidia est incompatible avec le pilote libre nouveau. Je prends soin de désactiver le chargement de ce pilote, vu que sa simple présence sur le système peut causer des problèmes.

# /etc/modprobe.d/nvidia.conf
blacklist nouveau

Étant donné que le pilote nouveau utilise le KMS (Kernel Mode Setting), je vais également empêcher son chargement au démarrage du système en ajoutant nomodeset aux paramètres du noyau pour GRUB.

nomodeset quiet mitigations=off

Je redémarre pour prendre en compte toutes ces modifications.

Sur ma station de travail, je me rends sur le site de NVidia et je suis les liens Pilotes > Pilotes GeForce. Je sélectionne le pilote approprié dans la succession de menus déroulants.

NVidia Linux

Je clique sur Rechercher, je télécharge l’installateur du pilote NVIDIA-Linux-x86_64-340.108.run et je le transfère sur mon MacBook.

NVidia Linux

Sur le MacBook, je range l’installateur du pilote dans un endroit approprié.

# mkdir nvidia
# mv NVIDIA-Linux-x86_64-340.108.run nvidia/
# cd nvidia/

J’installe les prérequis nécessaires.

# zypper install --no-recommends gcc patch kernel-default-devel libglvnd-devel

Je télécharge un patch nécessaire à la construction du pilote ainsi qu’à son chargement avec le noyau Linux 5.3 présent dans OpenSUSE Leap 15.2.

# wget https://www.microlinux.fr/download/nvidia-340.108.patch

InfoOn trouve toute une série de patchs un peu partout pour ce pilote. Cette page offre des explications relativement claires sur la question. Elle héberge un installateur modifié qui fonctionne, mais sans les patchs qui vont avec. Du coup j’ai recréé un patch propre à partir de cet installateur, et je l’héberge sur mon serveur.

Je rends l’installateur exécutable.

# chmod +x NVIDIA-Linux-x86_64-340.108.run

J’extrais les fichiers de l’installateur et j’applique le patch.

# ./NVIDIA-Linux-x86_64-340.108.run --extract-only
Verifying archive integrity... OK
Uncompressing NVIDIA Accelerated Graphics Driver for Linux-x86_64 340.108...
# cd NVIDIA-Linux-x86_64-340.108/
# patch -p1 < ../nvidia-340.108.patch 
patching file kernel/conftest.sh
patching file kernel/dkms.conf
patching file kernel/Makefile
patching file kernel/nv.c
patching file kernel/nv-drm.c
patching file kernel/nv-linux.h
patching file kernel/nv-procfs.c
patching file kernel/nv-time.h
patching file kernel/os-interface.c
patching file kernel/uvm/conftest.sh
patching file kernel/uvm/Makefile
patching file kernel/uvm/nvidia_uvm_lite.c

À partir de là, je peux lancer l’installateur du pilote.

# ./nvidia-installer

J’accepte la license utilisateur qui stipule que ma maison, mes meubles, ma voiture et ma moto appartiennent désormais à NVidia. :o)

NVidia GeForce 9400M OpenSUSE Leap 15.2

Je continue l’installation étant donné que j’ai déjà pris soin de désactiver le pilote libre nouveau.

NVidia GeForce 9400M OpenSUSE Leap 15.2

La construction du pilote prend une petite minute.

NVidia GeForce 9400M OpenSUSE Leap 15.2

J’installe les bibliothèques de compatibilité 32-bit.

NVidia GeForce 9400M OpenSUSE Leap 15.2

Le pilote propriétaire sera chargé automatiquement, et nous n’avons pas besoin de générer le fichier /etc/X11/xorg.conf.

NVidia GeForce 9400M OpenSUSE Leap 15.2

L’installation du pilote s’est terminée avec succès.

NVidia GeForce 9400M OpenSUSE Leap 15.2

Je redémarre et j’effectue un premier test.

# systemctl isolate graphical.target

ImportantDans le bureau KDE, je dois corriger l’affichage des polices : Configuration du système > Polices > Forcer le PPP de la police : 96. Cette opération nécessite de relancer le bureau.

Une fois que l’affichage semble correct, je bascule vers le démarrage de l’environnement graphique par défaut.

# systemctl set-default graphical.target

La rédaction de cette documentation demande du temps et des quantités significatives de café espresso. Vous appréciez ce blog ? Offrez un café au rédacteur en cliquant sur la tasse.

 

Catégories : Poste de travail

1 commentaire

Patrick · 8 mars 2021 à 21 h 54 min

Bonjour,
Bravo pour ce blog
J’ai suivi vos tutos pour installer LEAP 15.2 sur mon vieux PC Gamer ROG G60JX avec sa carte GeForce GTS 360M, mais impossible d’installer le driver de la carte graphique (même version que pour votre 9400M téléchargé chez nvidia). j’ai une erreur a l’exécution de l’installateur patché : le header /usr/src/linux/include/linux/version.h est introuvable.Le paquet kernel-devel a été installé.
Je me demande comment vous n’avez pas eu cette erreur. L’upgrade de la 15.1 vers la 15.2 ?
En cherchant un peu, le problème est rencontré sur d’autres distributions …

Les commentaires sont fermés.