Je 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.
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.
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
On 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)
Je continue l’installation étant donné que j’ai déjà pris soin de désactiver le pilote libre nouveau
.
La construction du pilote prend une petite minute.
J’installe les bibliothèques de compatibilité 32-bit.
Le pilote propriétaire sera chargé automatiquement, et nous n’avons pas besoin de générer le fichier /etc/X11/xorg.conf
.
L’installation du pilote s’est terminée avec succès.
Je redémarre et j’effectue un premier test.
# systemctl isolate graphical.target
Dans 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.
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.