Le logiciel jockey, plus connu sous son label "Pilotes de périphériques" dans le menu Gnome, se charge de vérifier la disponibilité de pilotes pour divers matériels de l'ordinateur, et va les chercher et les installer presque automatiquement, offrant un grand confort à l'utilisateur.
Pour autant, principalement dans le cas des pilotes graphiques, il peut être utile d'aller installer "à la main" les derniers pilotes disponibles sur le site du constructeur de la carte, les pilotes en versions bêta notamment. Voici donc une présentation pas-à-pas de l'installation du pilote NVIDIA 185.19 Beta sur une Ubuntu 9.04.
Ce billet traite uniquement de l'installation sur une Ubuntu 9.04 de la dernière version des drivers NVIDIA bêta. Si votre système fonctionne correctement, il n'est pas recommandé d'installer les drivers en versions bêta. De plus, si vous n'êtes pas à l'aise avec la ligne de commande, et si vous retrouvez sans interface graphique au cours de la procédure est un problème insoluble, réfléchissez bien avant de vous lancer dans la transition vers une version bêta des drivers propriétaires de votre carte graphique NVIDIA.
Même s'il s'agit ici de faire cette installation sur une Ubuntu 9.04, la procédure sur la version 8.10 de cette distribution, ainsi que sur tout OS basé sur Debian est sensiblement similaire, et ne devrait pas demander de grosses adaptations pour être efficace.
C'est parti !
Prendre des précautions
La première chose à faire avant de toucher au serveur graphique est de réaliser une copie de sauvegarde du fichier de configuration xorg.conf. Cette sauvegarde permettra de revenir en arrière en cas de gros pépins sur la route, mais également d'avoir un fichier de référence pour les utilisateurs qui doivent faire des modifications plus subtiles dans le fichier de configuration, en cas de "dual-screen" par exemple.
sudo cp /etc/X11/xorg.conf /etc/X11/xorg.conf.old
Ensuite on reconfigure X pour retourner à la configuration de base, sans les pilotes NVIDIA installés par jockey :
sudo dpkg-reconfigure -phigh xserver-xorg
Quitter la session puis ouvrir une nouvelle session peut être utile à cette étape, mais ça n'est pas indispensable. Notez que lors de l'ouverture de la nouvelle session, vous utiliserez les drivers par défaut VESA, et que compiz-fusion ne sera pas actif avec ces drivers. Pas de panique donc.
Si l'ouverture d'une nouvelle session ne fonctionne pas (personnellement j'ai eu droit à un écran noir...), il suffit de remettre le xorg.conf.old en place via une console (CTRL+ALT+F1-F2-...-F6 pour ouvrir une console), de réouvrir une session, de relancer la commande sudo dpkg-reconfigure -phigh xserver-xorg et de ne pas quitter la session avant de poursuivre la procédure.
S'assurer de pouvoir compiler le module du pilote
Pour compiler, il faut disposer des paquets build-essential et des headers du kernel utilisé :
sudo apt-get install build-essential linux-headers-`uname -r`
N'oubliez pas cette étape, sous peine de ne pas pouvoir compiler le module pour votre kernel.
Supprimer les drivers propriétaires installés par jockey
Avec une carte NVIDIA sous Ubuntu, il est fort probable que les drivers propriétaires soient installés lors de la première session X lancée sur la machine. C'est jockey qui s'en charge, avec ce petit message "Nouveaux drivers propriétaires disponibles" qui vous propose d'activer les drivers.
Il faut absolument les désinstaller totalement avant d'aller plus loin, pour éviter les risques de conflits par la suite entre les versions de drivers, conflits qui empêcheront à coup sûr le serveur X de démarrer. Pour faire le ménage :
sudo apt-get --purge remove $(dpkg -l | grep nvidia | awk '{print $2}')
sudo apt-get --purge remove $(dpkg -l | grep xorg | grep nv | awk '{print $2}')
La deuxième ligne de commande enlève les drivers xorg-nv, qui peuvent poser problème sur certaine configuration lors de l'installation des drivers manuellement.
Récupérer les drivers
Il faut maintenant télécharger les drivers pour votre matériel. Il s'agit ici de ne pas se tromper de paquets.
Si votre kernel est de version 2.6.28[1], voici les paquets à télécharger :
- Pour les systèmes 32 bits :
wget ftp://download.nvidia.com/XFree86/Linux-x86/185.19/NVIDIA-Linux-x86-185.19-pkg1.run -O NVIDIA-Linux-185.pkg.run
- Pour les systèmes 64 bits :
wget ftp://download.nvidia.com/XFree86/Linux-x86_64/185.19/NVIDIA-Linux-x86_64-185.19-pkg2.run -O NVIDIA-Linux-185.pkg.run
Si vous utilisez un noyau 2.6.29 compilé par vos soin, je pense que vous saurez trouver le bon paquet. ;-)
Et pour trouver les pilotes les plus à jour, la page des téléchargements sur le site de NVidia est parfaite.
Maintenant déplacez le paquet dans le répertoire /usr/src, et créez un lien vers celui, qui sera utile par la suite :
sudo install NVIDIA-Linux-185.pkg.run /usr/src sudo ln -s /usr/src/NVIDIA-Linux-185.pkg.run /usr/src/nvidia-driver
L'installation des drivers
Il faut maintenant quitter la session graphique, ouvrir une console (accessible avec la combinaison CTRL+ALT+F1-F2-...-F6), puis arrêter GDM (ou KDM sous KUbuntu) via cette console avec la commande suivante :
sudo /etc/init.d/gdm stop
Cette dernière action peut demander quelques secondes avant de s'accomplir. Si pour une raison quelconque X ne s'arrête pas, il faut forcer un peu, mais c'est rarement nécessaire. Si besoin de forcer :
sudo killall Xorg
Maintenant que X est arrêter, il est temps d'installer les pilotes :
sudo sh /usr/src/nvidia-driver
Laissez le script compiler les drivers, puis s'offre à vous un choix :
- Laisser le script reconfigurer le fichier xorg.conf dès maintenant.
- Ou non, et dans ce cas le reconfigurer soi-même après avoir fait un reboot.
Personnellement j'ai choisi de reconfigurer immédiatement sans rencontrer de problème par la suite, mais ça n'est généralement pas recommandé.
Dans tout les cas, la prochaine étape est simple :
sudo reboot
:-)
Alors, ça marche !?
Retour sous X, ouvrez une session :
- Si vous avez choisi de reconfigurer votre xorg.conf lors de l'installation des drivers, c'est terminé.
- Sinon, il faut encore lancer la reconfiguration, puisque la session actuelle utilise les drivers VESA. Pour cela :
sudo nvidia-xconfig
Puis fermez et ouvrer une nouvelle session.
Et voilà, vous devriez utiliser vos nouveaux drivers graphiques. Il est possible que la transition ne se passe pas aussi simplement, et que de petits problèmes apparaissent lors de la première ouverture de session sous les nouveaux drivers.
Mettre à jour automatiquement les modules lors d'un changement de kernel
Lors d'une mise à jour du kernel, les modules compilés lors du l'installation du drivers ne seront plus utilisables par le nouveau kernel, il faudra les recompiler, ce qui peut-être pénible à la longue...
Il est heureusement possible d'automatiser la compilation en cas de mise à jour, et très simplement en plus ! Il faut tout d'abord créer et éditer un nouveau fichier intitulé update-nvidia :
gedit update-nvidia
Copiez dans ce nouveau fichier le script suivant :
#!/bin/bash
#
# Set this to the exact path of the nvidia driver you plan to use
# It is recommended to use a symlink here so that this script doesn't
# have to be modified when you change driver versions.
DRIVER=/usr/src/nvidia-driver
# Build new driver if it doesn't exist
if [ -e /lib/modules/$1/kernel/drivers/video/nvidia.ko ] ; then
echo "NVIDIA driver already exists for this kernel." >&2
else
echo "Building NVIDIA driver for kernel $1" >&2
sh $DRIVER -K -k $1 -s -n 2>1 > /dev/null
if [ -e /lib/modules/$1/kernel/drivers/video/nvidia.ko ] ; then
echo " SUCCESS: Driver installed for kernel $1" >&2
else
echo " FAILURE: See /var/log/nvidia-installer.log" >&2
fi
fi
exit 0
Celui-ci se charge de vérifier la présence ou l'absence des modules du drivers pour votre noyau, et de les compiler s'ils sont absents. Une fois le fichier enregistré, il suffit de lancer les deux commandes suivantes :
sudo mkdir -p /etc/kernel/postinst.d sudo install update-nvidia /etc/kernel/postinst.d
Et c'est tout, lors du prochain boot après une mise à jour du kernel, les modules seront compilés lors du boot. :-)
Revenir aux drivers de jockey
Pour totalement supprimer l'installation de ces pilotes "à la main", une simple séquence de commande suffit :
sudo nvidia-uninstall sudo dpkg-reconfigure -phigh xserver-xorg sudo apt-get install xserver-xorg-video-all sudo rm /usr/src/nvidia-driver /usr/src/NVIDIA-Linux-185.pkg.run /etc/kernel/postinst.d/update-nvidia
Après avoir lancé ces commandes, jockey proposera à nouveau d'installer les drivers propriétaires une fois que vous aurez relancé X.
Ce billet est une traduction libre des messages suivants sur ubuntuforums.org :
- HowTo: NViDIA 185.19 Beta Drivers in Ubuntu
- HOWTO: Automatically update manually installed NVidia drivers after kernel updates
Notes
[1] Pour connaitre la version du kernel, utilisez la commande : "uname -r"







Commentaires
Très bon tuto. Merci, çà a marché avec ma GTS250.
degrafffaut pas dire que c'est très simple, si c'est un gros bordel de 12km...
Chiassar@Chiassar : Merci à toi, et bon courage pour la suite. ;-)
Matthieu PatoutEst-il possible d'installer un driver sans rebooter?
GillesHello,
Moi je trouve sincèrement que les tutos sont super ca aide les débutant comme moi qui débute sur Ubuntu par exemple faut le dire le terminal me semble si ....... hostile.
Néanmoins sur le coup j'ai carrément les nerf a vif avec tout ce merdier de pilote a la noix sur un système qui est très intéressant mais si ...... capricieux que la je me décourage d'envoyer sans cesse des kilomètre et des kilomètre de ligne dans le terminal pour au final ne pas parvenir a utiliser ma carte.
Pour info,
Je dispose d'unbuntu 10.04 lts en 64 bit étant donné que je dispose de 4go de mémoire vive.
Je dispose d'une carte Nvidia gtx 280.
Il est pour moi totalement impossible d'installer les pilotes, c'est carrément incroyable.
La méthode par dépôt c'est fichu.
La méthode par envy c'est fichu.
La méthode par .run en installation manuel c'est également fichu.
tuto utiliser sont ici http://doc.ubuntu-fr.org/materiel
Pourtant j'ai suivi les tuto a la lettre plus d'une dizaine de fois chacun j'ai egalement suivi le votre. J'ai même formater le disque dur et recommencer a re suivre les tuto.
Ca reste de la sorcellerie je vous dis dans mon cas je n'ai aucun pilote que ce soit nouveau vesa sauf le nvidia par . run si le xorg est present gel au demarage même avec les astuce pour la résolution de plymouth et si le xorg est absent bas il demare dans la résolution maximum et lorsque je vais pour changer la résolution cela ouvre nvidia settings hourra qui me dis de stopper le server x et de recommencer.
Vous tous qui dites merci super tuto ca marche on dirait mais bordel c'est quoi le secret non de dieux.
Merci a l'auteur du tuto qui en as aidé quelque un ;)
marc