logo-nvidia
L'installation des pilotes Nvidia (Proprio), sous Centos, peut parfois poser problème, ou générer quelques surprises.
Pour ma part, c'est à partir de la version 6 que la situation s'est un peu compliquée. Résolutions barbares, petits problèmes de configuration ou encore polices trop grandes après l'install des drivers propriétaires... Voici donc un petit résumé de l'installation puis des problèmes rencontrés et des soluces appliquées, espérant que cela puisse en aider quelques uns.


Tout d'abord, l'installation des pilotes à proprement dit.
Deux solutions possibles:

  • Soit à partir des drivers téléchargés sur le site de Nvidia (solution la plus à jour).
  • Soit pour ceux qui ne souhaitent pas jouer du compilateur, à partir des dépots tiers "elrepo" qui fournissent une version généralement moins à jour, mais plus facile à installer.

Comme à l'accoutumée, nous partons du principe que la Centos est fraîchement installée et totalement à jour.


1 - A partir des pilotes téléchargés depuis le site officiel Nvidia:

Il faut se rendre sur cette page et récupérer la version qui va bien, en faisant attention au type de Distribution (32 ou 64 Bits).

Si vous utilisez Firefox, il va les télécharger dans votre "home", dossier "téléchargement" (pour centos 5, le dossier n'existe pas, donc il faut soit le créer à la main avant téléchargement, soit télécharger dans la "home" directement).

Avant l'install proprement dite, les pré-requis, il nous faut donc les récupérer (toutes versions):

# yum install gcc gcc-c++ glibc glibc-devel make kernel-devel kernel-headers


J'insiste ici sur l'importance d'avoir mis à jour la Centos avant ces manips. En effet, si le kernel n'est pas à jour, il y aura une différence de correspondance avec certains paquets comme "kernel-devel" et vous ne pourrez pas effectuer l'installation.

On continue selon sa version de Centos (5.x ou 6.x).

Pour Centos 5


On quitte X:

# init 3


On se rend dans le dossier qui contient le pilote téléchargé:

# cd /home/nom_du_profil_/téléchargement

ou

# cd /home/nom_du_profil



On rend le script executable puis on le lance

# chmod +x "nom_du_fichier_téléchargé.run"
# ./"nom_du_fichier_téléchargé.run"

Remplacez "nom_du_fichier_téléchargé.run" par le nom de votre fichier, à cet instant pour une 32 bits: NVIDIA-Linux-x86-304.64.run

Un redémarrage et ça devrait rouler..

# reboot


Si ça n'etait pas le cas, jetez un oeil à la partie "problèmes éventuels" au bas de cette page...

Dans tous les cas, faites une copie de votre "xorg.conf" de manière à pouvoir faire un retour arrière après toute manip ultérieure (en root):

# cp /etc/X11/xorg.conf  /etc/X11/xorg.conf.original



Notez bien qu'en cas de mise à jour de kernel, il vous faudra ré-installer le pilote Nvidia. Soit à partir de celui-ci (il faut donc le conserver), soit en téléchargeant une version plus à jour (si disponible).

Pour Centos 6

On commence par enlever les pilotes libres "Nouveau" qui sont inclus par défaut, et on les "blacklist" du démarrage:

# sed -i '/root=/s|$| rdblacklist=nouveau vga=791|' /boot/grub/grub.conf
# echo "blacklist nouveau" >> /etc/modprobe.d/blacklist.conf
# mv /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname  -r)-nouveau.img
# dracut /boot/initramfs-$(uname -r).img $(uname -r)
# yum remove xorg-x11-drv-nouveau


puis on redémarre

# reboot


De retour sur le bureau, probablement avec un graphisme limité, on ressort de X pour installer les pilotes:

# init 3


On se rend dans le dossier qui contient le pilote téléchargé:

# cd /home/nom_du_profil_/téléchargement

ou

# cd /home/nom_du_profil



On rend le script executable puis on le lance

# chmod +x "nom_du_fichier_téléchargé.run"
# ./"nom_du_fichier_téléchargé.run"

Remplacez "nom_du_fichier_téléchargé.run" par le nom de votre fichier, à cet instant pour une 32 bits: NVIDIA-Linux-x86-304.64.run

Un redémarrage et ça devrait rouler..

# reboot


Si ça n'etait pas le cas, jetez un oeil à la partie "problèmes éventuels" au bas de cette page...

Dans tous les cas, faites une copie de votre "xorg.conf" de manière à pouvoir faire un retour arrière après toute manip ultérieure (en root):

# cp /etc/X11/xorg.conf  /etc/X11/xorg.conf.original


Notez bien qu'en cas de mise à jour de kernel, il vous faudra ré-installer le pilote Nvidia. Soit à partir de celui-ci (il faut donc le conserver), soit en téléchargeant une version plus à jour (si disponible).




2 - A partir des dépots tiers "elrepo" (Méthode plus accessible !):

La page d'infos pour l'install du dépot "elrepo" sur trouve ici.

A ce jour (versions actuelles), ça donne, en ligne de commande et en root:

Import de la clef qui va bien:

# rpm --import http://elrepo.org/RPM-GPG-KEY-elrepo.org


Elrepo pour Centos 5 (32 ou 64 bits) -- Vérifiez qu'il n'y a pas de mise à jour du dépôt ELRepo

# rpm -Uvh http://elrepo.org/elrepo-release-5-3.el5.elrepo.noarch.rpm


Note particulière pour Centos 5, le système risque de vous afficher une erreur relative à une librairie manquante lors de l'installation de "Kmod".
Histoire de vous faire gagner un peu de temps, voici le "rpm" pour chaque version, récupéré depuis notre site:

Centos 5 Version 32 Bits:

# rpm -Uvh http://www.mgroup.fr/public/downloads/rpm/libXvMC-1.0.2-2.1.i386.rpm


Centos 5 Version 64 bits:

# rpm -Uvh http://www.mgroup.fr/public/downloads/rpm/libXvMC-1.0.2-2.1.x86_64.rpm



Elrepo pour Centos 6 (32 ou 64 bits) -- Vérifiez qu'il n'y a pas de mise à jour du dépôt ELRepo

# rpm -Uvh http://elrepo.org/elrepo-release-6-4.el6.elrepo.noarch.rpm



Ensuite, pour toutes les versions

Une fois le dépot installé, on récupère le "kernel module rpm package" (kmod) en nous limitant au seul dépot qui nous intéresse (toutes versions):

 # yum --disablerepo=\*  --enablerepo=elrepo  install kmod-nvidia nvidia-x11-drv


On laisse le "Kmod" faire son taff et on patiente.
Ne reste qu'à redémarrer... Puis au besoin, en root, lancer un:

# nvidia-xconfig

Suivi d'une fermeture/ré-ouverture de session, et ça devrait rouler.. Si ce n'est pas le cas, les lignes qui suivent peuvent vous intéresser.

Dans tous les cas, faites une copie de votre "xorg.conf" de manière à pouvoir faire un retour arrière après toute manip ultérieure (en root):

# cp /etc/X11/xorg.conf  /etc/X11/xorg.conf.original



NOTE:

Il est indispensable, lors de vos prochaines mises à jour kernel, de vérifier au préalable la disponibilité du "kmod-nvidia" correspondant.
Ce qui implique donc de garder le dépot ELRepo actif !

# yum check-update



En cas de problème suite à l'update du kernel, il est possible de démarrer sur le kernel précédent depuis le menu "grub" (au démarrage de CentOS).
La moins mauvaise solution, si vous avez un doute, reste d'attendre quelques jours après la dispo de la mise à jour du Kernel.


Bien évidemment, vos commentaires pour améliorer ou corriger ce tuto sont les bienvenus.


3 - Après l'installation des pilotes, les éventuels problèmes rencontrés


Mauvaise résolution d'écran (Centos 6)

Le panneau de configuration Nvidia (nvidia-settings) indique la bonne résolution, mais l'affichage et notamment les polices sont plus gros qu'à l'accoutumée..

Vérifiez vos paramètres "Dpi" avec les lignes suivantes:

# xdpyinfo|grep dot

qui renvoie votre resolution. Par exemple: 90x88 dots per inch
ou

# cat /var/log/Xorg.0.log | grep Dpi

qui renvoie là encore votre résolution. Par exemple: ... (--) NVIDIA(0): DPI set to (90, 88); computed from "UseEdidDpi" X config

Si les valeurs retournées sont trop élevées (supérieures à 100x100 par exemple), cela explique le problème de rendu sur la résolution.

On peut le fixer via le xorg.conf (en root):

# cp /etc/X11/xorg.conf  /etc/X11/xorg.conf.old
# vi /etc/X11/xorg.conf


ou, si vous êtes plus à l'aise avec un éditeur en mode fenêtre (en root):

# gedit /etc/X11/xorg.conf


et on insère ces deux lignes dans la partie "device" relative à Nvidia:

Option    "UseEdidDpi"  "FALSE"
Option    "DPI"  "95x94"

On fixe ici la valeur à "95x94" (relevée sur un ecran 1920x1080). A titre d'exemple, j'ai "90x88" sur un 1440x990, "96x96" sur un 1366x768.
"96x96" étant considérée comme la valeur par défaut (passe-partout).

Astuce: Utilisez un live CD (ou DVD) fonctionnel sur votre machine pour "checker" la valeur DPI correcte

Redémarrage de X ou plus simplement redémarrage tout court et le souci devrait être fixé..



Impossibilité de mise à jour totale (CentOS 6)


Il arrive que l'on ne puisse pas mettre à jour sa Centos 6 (kernel incompatible ou autre). Par exemple avec un EEEPC équipé d'un chipset Ion ou Ion LE.
Dans ce cas, il est possible d'installer malgré tout les pilotes propriétaires (méthode 1) avec une petite variante.

  • Récupérez sur le dvd de votre Centos 6 les paquets "kernel-devel" et "kernel-headers" qui se trouvent dans le dossier "Packages" et copiez les dans votre home (ou tout autre emplacement de votre choix).
  • Installez ces derniers (en root):
# cd /dossier_qui_contient_les_paquets
# yum install kernel-devel-2.6.votre_version.rpm  kernel-headers-2.6.votre_version.rpm


Puis poursuivez l'installation décrite plus haut avec la ligne corrigée (sans les paquets que nous venons d'installer):

# yum install gcc gcc-c++ glibc glibc-devel make


etc...



Plus de contours de fenêtre avec Compiz activé (CentOS 5)


Problème récurrent sur les cartes NVS et autre Ion.
Ça doit pouvoir se régler avec une petite modif du xorg.conf.
Si ce n'est déja fait, une copie de récup, on ne sait jamais..

# cp /etc/X11/xorg.conf  /etc/X11/xorg.conf.old

Puis:

# vi /etc/X11/xorg.conf


ou, si vous êtes plus à l'aise avec un éditeur en mode fenêtre (en root):

# gedit /etc/X11/xorg.conf


et on ajoute ces lignes dans la partie "device" relative à Nvidia:

       Option         "AddARGBVisuals" "True"
       Option         "AddARGBGLXVisuals" "True"
       Option         "XAANoOffscreenPixmaps"
       Option         "TripleBuffer" "true"



Sur "xorg" basique, ça donne (pour la partie Nvidia):

Section "Device"
       Identifier  "Videocard0"
       Driver      "nvidia"
       Option         "AddARGBVisuals" "True"
       Option         "AddARGBGLXVisuals" "True"
       Option         "XAANoOffscreenPixmaps"
       Option         "TripleBuffer" "true"
EndSection


Ce qui revient à forcer l'activation de chacunes des options nécessaires.

Ne reste qu'à installer compiz (toujours en root):

# yum install compiz


Puis logout (fermer la session) et login (ouvrir la session) afin de recharger proprement X.
Une combinaison des touches "ctrl" + "alt" + "retour arrière" fonctionne aussi puisqu'elle va "killer" Xorg. Mais je trouve le procédé quelque peu barbare.. A réserver aux situations problématiques..

Compiz se trouve dans "système", "préférences", "Effets du bureau"


Vous pouvez commenter ou participer à l'amélioration de cet article via le topic dédié du forum.