Debian-facile

Bienvenue sur Debian-Facile, site d'aide pour les nouveaux utilisateurs de Debian.

Vous n'êtes pas identifié(e).


L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT → ODT PDF Export

Nvidia Optimus

Introduction

La technologie Nvidia Optimus est équipée sur certains ordinateurs portables.
Il s'agit :

  1. couplée à une carte graphique intégrée de marque Intel.

Le processeur de l'ordinateur portable gère l'affichage graphique et y alloue une partie de sa puissance.
Lorsque la charge graphique est trop importante :

  1. la carte graphique Intel intégrée passe le relais à →
  2. la carte Nvidia, (qui est beaucoup plus puissante mais plus énergivore).

De ce fait, cette technologie permet à l'ordinateur portable

  1. d'avoir une meilleure autonomie sur batterie en utilisant que la carte graphique intégrée
  2. d'avoir une meilleure puissance graphique branché sur secteur, en utilisant la carte graphique dédiée.
    Bien sûr, il reste possible aussi de l'utiliser sur batterie…

Sous votre Debian adorée, cela n'est pas correctement possible.

La situation est en fait critique parce que le portable alimente bien électriquement la carte graphique Nvidia mais ne peut pas utiliser sa puissance, il n'y a donc :

  1. ni autonomie,
  2. ni puissance…

Les noyaux Linux 3.3 ou supérieurs devraient améliorer davantage encore le support matériel.

Eurékâ !

Bumblebee est un logiciel qui se charge de gérer votre carte graphique Nvidia.
Tous les logiciels que vous lancez utiliseront par défaut la carte intégrée, cependant, vous pourrez alors lancer ces programmes en leur donnant l'ordre d'utiliser la carte Nvidia avec le préfixe optirun ! =)

Fonctionnement

Il vous faut bien comprendre le fonctionnement :

  1. Votre station démarre et fonctionne à partir de la puce graphique Intel et grâce au projet Bumblebee avec l'usage de l'outil optirun, vous activerez momentanément votre processeur graphique nvidia.
  2. Dans ce contexte d'usage, vous ne fonctionnerez jamais directement avec votre carte nvidia.

HDMI

Pas de gestion HDMI à partir de la puce graphique nVidia !

Vérification

Pour vérifier que vous disposez effectivement de matériel équipé de ce système, ouvrez un terminal et rentrez :

lspci | egrep "VGA|3D"

Exemple de sortie du terminal :

00:02.0 VGA compatible controller: Intel Corporation 2nd Generation Core Processor Family Integrated Graphics Controller (rev 09)
01:00.0 VGA compatible controller: nVidia Corporation GF108 [GeForce GT 540M] (rev ff)

Autre exemple :

00:02.0 VGA compatible controller: Intel Corporation Haswell-ULT Integrated Graphics Controller (rev 0b)
03:00.0 3D controller: NVIDIA Corporation GM107M [GeForce GTX 860M] (rev ff)

Si une seule ligne est rapportée, c'est que votre PC ne dispose pas de ce système.
Par contre, si la réponse est de deux lignes, dont une qui contient Intel et une autre Nvidia, c'est que votre ordinateur portable en est équipé.

Procédure d'installation de Bumblebee

NE SURTOUT PAS CHERCHER À INSTALLER LES PILOTES NVIDIA PAR TOUT AUTRE MÉTHODE !!!
Si jamais vous l'avez fait, désinstallez tout avant :

apt-get remove --purge nvidia-*

La démarche est la suivante :

  1. Activation des dépôts contrib, et non-free officiels
  2. Installation de Bumblebee
  3. Redémarrage
  4. Lancement des applications voulues avec le préfixe « optirun »
  5. Optionnel : Éditer vos raccourcis pour utiliser la carte graphique dédiée

Installation des dépôts

Éditez2) votre fichier '/etc/apt/sources.list3)' dans un terminal en tant que superutilisateur :

apt edit-sources

Vérifiez que le dépôt principal Debian soit suffixé 4) de « main contrib non-free » … (Bumblebee étant une contribution et les pilotes Nvidia étant non-libres).

Dépôts pour Wheezy

Ensuite, ajoutez les dépôts backports s'ils ne sont pas présents :

wheezy-stable-backport.list
## backports 
deb http://httpredir.debian.org/debian/ wheezy-backports main contrib non-free

Dépôts pour Jessie (et versions supérieures)

jessie.list
deb http://httpredir.debian.org/debian/ jessie main contrib non-free

Préferez l'usage des dépôts backports de Jessie :

jessie-backports.list
deb http://httpredir.debian.org/debian/ jessie-backports main contrib non-free

Mise-à-jour des dépôts

Enregistrez le fichier Ctrl + O + ↵ Entrée et actualisez les dépôts :

apt-get update

Installation de Bumblebee

Pour ceux qui ont installé la version 64 bits de Debian, pensez à ajouter la gestion du multi-architecture pour 32 bits, on vérifie que l'architecture soit 'amd64', et si c'est le cas, on active le mode correspondant, puis on met-à-jour sa distribution :

dpkg --print-architecture
amd64
dpkg --add-architecture i386
apt-get update
apt-get install primus-libs-ia32 # pour wheezy, c'est :  primus-libs:i386

À cette étape, il vous faut choisir quel pilote logiciel vous désirez installer :

  • Le pilote libre nommé 'nouveau', fonctionnel pour la plupart des anciennes cartes graphiques,
  • ou installer le pilote “privatif” nvidia, qui apportera plus de support que le pilote libre 'nouveau'.

Comprenez que c'est soit l'un, soit l'autre … ce ne peut pas être les deux en même temps.

De même, si vous installez le pilote, il vous faudra être attentif aux différentes recommandations pour désactiver le support 'nouveau'.

Bumblebee avec 'nouveau'

⇒ Pour installer Bumblebee et fonctionner avec le pilote libre 'nouveau' :

apt-get install bumblebee mesa-utils

Bumblebee avec 'nvidia'

⇒ Pour installer Bumblebee et gérer le pilote privatif nvidia :

apt-get install nvidia-kernel-dkms nvidia-xconfig nvidia-settings nvidia-vdpau-driver vdpau-va-driver mesa-utils bumblebee-nvidia primus

Toutefois installer de préférence la version des dépôts backports de jessie :

 apt-get install -t jessie-backports nvidia-kernel-dkms nvidia-xconfig nvidia-settings nvidia-vdpau-driver vdpau-va-driver mesa-utils bumblebee-nvidia primus

Lors de l'installation, il vous sera affiché une première fenêtre d'information :

vous avertissant qu'il y a conflit entre le pilote 'nouveau' et le pilote 'nvidia', que celui-ci devrait être résolu par un redémarrage de votre machine.
En suivant, vous aurez une autre fenêtre d'information :

vous affichant qu'il faudra modifier manuellement la configuration de votre machine pour qu'elle fonctionne avec le pilote nvidia - c'est ce que vous ferez ensuite.

ATTENTION : Depuis Janvier 2014, lors de l'installation du package 'bumblebee-nvidia', s'il vous est demandé de créer le fichier xorg.conf

  • NE LE FAITES PAS !
  • NE LAISSEZ PAS l'outil debconf créez le fichier pour vous !
  • N'EXÉCUTEZ PAS l'outil nvidia-xconfig !
  • Bogue : 735049 semble être corrigé depuis octobre 2015 !

En effet, depuis que Xorg fonctionne de manière automatique, on ne doit pas - sauf cas particulier - créer de fichier xorg.conf.
Et, le cas où il ne faut pas créer de fichier xorg.conf, c'est justement avec le projet Bumblebee, car celui-ci crée ses propres fichiers utilisés selon le choix du pilote.
Fichiers qu'il ne créé surtout pas dans le répertoire relatif à Xorg … parce que là, ça serait le “bazard”

Petites vérifications suite à l'installation du pilote nvidia

Si vous avez testé Bumblebee avec le pilote 'nouveau' puis choisi de tester avec le pilote 'nvidia' : ATTENTION, il vous faudra veiller à ce que les modules correspondants au pilote 'nouveau' soient désactivés.

Pour vérifier s'ils sont actifs, exécutez :

lsmod | egrep -i "nouveau|vga_switcheroo" 

S'il n'y a rien, c'est impeccable !

Si c'est le cas, déchargez les modules correspondants ainsi :

modprobe -r nouveau
modprobe -r vga_switcheroo

En effet, si ces modules sont actifs, ils empêcheront le fonctionnement correct avec le pilote nvidia !

Il se peut aussi que vous ayez le message d'erreur suivant :

modprobe:FATAL:Module nouveau in use

dans ce cas, veuillez lire le chapitre d'erreur relatif …

Installation de VirtualGL

Il semble nécessaire de devoir installer le binaire VirtualGL, requis par optirun … qui, malheureusement n'est pas fourni dans les dépôts officiels !

Téléchargez-le à partir de la page de téléchargement du projet.

Ne téléchargez pas le fichier relatif à l'archive .tar.gz, mais

  1. cliquez sur le répertoire nommé selon la dernière version de l'archive
  2. puis parcourez le répertoire pour trouver le fichier correspondant à votre architecture, soit le fichier virtualgl_num-version_i386.deb, ou virtualgl_num-version_amd64.deb.

Téléchargez le bon fichier5), puis installez-le à l'aide de l'outil dpkg

cd Téléchargements/
dpkg -i virtualgl_*.deb

Ajout utilisateur au groupe 'bumblebee'

La documentation du wiki Debian nous informe de cela :

« Si sudo est configuré pour votre utilisateur courant, c'est-à-dire si votre utilisateur est membre du groupe sudo, cette étape n'est pas nécessaire (le script post-installation du paquet bumblebee se charge d'ajouter automatiquement les utilisateurs de sudo au groupe bumblebee). »

C'est probablement la raison pour laquelle Bumblebee marche directement avec Ubuntu mais pas avec Debian, avec pourtant la même configuration d'origine.
En fait Ubuntu installe sudo par défaut ; ce qui n'est pas le cas de Debian qui vous propose de créer la session root à l'installation du système.

Pour être clair, sudo n'est pas nécessaire pour utiliser bumblebee ; juste il simplifie les choses en rendant inutile l'addition manuelle de l'utilisateur courant au groupe bumblebee.

Sous Wheezy

La procédure n'étant pas complètement automatisée, il faut créer le groupe « bumblebee » et s'y intégrer, pour avoir le droit de contrôler la carte graphique Nvidia. (Remplacez USER de l'exemple de la commande ci-dessous par votre nom d'utilisateur) :

groupadd bumblebee
adduser USER bumblebee

Pour Jessie (et versions supérieures)

Ajoutez votre utilisateur au groupe bumblebee - là aussi, remplacez USER du tuto par votre nom d'utilisateur - :

adduser USER bumblebee

Ensuite, redémarrez l'ordinateur puis votre session comme d'habitude.

Utilisation

À partir de maintenant, pour activer la gestion du processeur graphique Nvidia, il faut précéder toute commande par l'usage de la commande 'optirun', telle que - par exemple - :

optirun firefox

Gestion du panel nvidia

Pour pouvoir utiliser le panel nvidia, le seul moyen est de le lancer en mode console, tel que :

optirun nvidia-settings -c :8 

Il est possible de modifier le menu, pour ajouter la commande 'optirun', voir ci-dessous … le chapitre “Gestion menu”

Test

Lancez un terminal et lancez la commande suivante pour tester les performances de votre carte graphique intégrée Intel :

glxgears

Un engrenage doit apparaître et le nombre d'image par seconde doit être inscrit toutes les 5s dans le terminal. Cela estime la puissance de la carte intégrée.

Maintenant, démarrez la même commande avec le préfixe « optirun » :

optirun glxgears

Normalement, les performances affichées dans le terminal devraient être nettement supérieures !
Sur le PC où ces lignes sont écrites, la carte intégrée affiche 60fps (pour « frames per seconds », images par seconde en français) et la carte Nvidia affiche 1100fps.

Gestion des erreurs

S'il n'y a pas de différence de performances entre « glxgears » et « optirun glxgears », vérifiez que vous avez scrupuleusement suivi le tutorial.

Si c'est le cas, veuillez rapporter votre problème sur le forum dans le lien pour la FAQ de ce tuto ci-dessous :

Il semble que la version 340 du pilote nvidia soit défectueuse - version par défaut pour Jessie !

erreur libturbojpeg.so

Lorsque vous exécutez une commande avec optirun, vous avez pour retour le message d'erreur suivant :

error while loading shared libraries: libturbojpeg.so: cannot open shared object file: No such file or directory

Selon votre version de Debian, il va falloir faire une modification système, avec des droits administrateurs, puis une fois accomplie, exécutez à nouveau la commande !

architecture pc 32 bits

Si votre architecture est 32 bits, tapez dans votre terminal console préféré, cette commande avec les droits administrateur :

ln -s /usr/lib/i386-linux-gnu/libturbojpeg.so.0 /usr/lib/i386-linux-gnu/libturbojpeg.so

architecture pc 64 bits

Si votre architecture est 64 bits, tapez cette commande-ci, toujours avec les droits administrateur :

ln -s /usr/lib/x86_64-linux-gnu/libturbojpeg.so.0 /usr/lib/x86_64-linux-gnu/libturbojpeg.so

[ERROR]Cannot access secondary GPU - error: Could not load GPU driver

Dans un premier temps, vérifiez le nom du pilote nvidia chargé :

modinfo nvidia

puis :

modinfo nvidia-current

Si l'une des deux commandes restitue, par exemple :

modinfo: ERROR: Module not found.

C'est que ce n'est pas le bon nom de pilote utilisé.

S'il vous restitue, par exemple :

modinfo nvidia-current
filename:       /lib/modules/4.8.0-1-amd64/updates/dkms/nvidia-current.ko
alias:          char-major-195-*
version:        367.57
supported:      external
license:        NVIDIA

Normalement, le bon nom de pilote doit être 'nvidia-current'

Ensuite, éditez le fichier '/etc/bumblebee/bumblebee.conf' pour vérifier la section [driver-nvidia], avec les droits administrateur :

nano /etc/bumblebee/bumblebee.conf
(...)
## Section with nvidia driver specific options, only parsed if Driver=nvidia
[driver-nvidia]
# Module name to load, defaults to Driver if empty or unset
KernelDriver=nvidia-current
(...)

S'il apparaît que la ligne 'DRIVER' comporte juste la mention suivante 'DRIVER=nvidia', modifiez-la par 'DRIVER=nvidia-current'

Si dans votre cas, exceptionnel, le bon nom de pilote est bel et bien 'nvidia', modifiez si besoin la ligne en question par “DRIVER=nvidia”.

Il faut ensuite redémarrer le service Bumblebee, avant d'utiliser à nouveau votre commande !

C'est un bogue Debian connu

[ERROR]Cannot access secondary GPU - error: [XORG] (EE) /dev/dri/card0: failed to set DRM interface version 1.4: Permission denied

Cette erreur peut-être générée par un des différents points suivants … veuillez les vérifier un par un, pas tous en même temps, cela ne sert à rien. Une fois qu'un point est vérifié/corrigé, redémarrez le service Bumblebee et essayez à nouveau votre commande.

Si cela ne fonctionne pas, passez au point suivant qui peut aider à la résolution, et répétez le même processus de vérification/modification puis redémarrage du service adéquat - bien comprendre et accepter que cela ne réglera pas forcément votre problème !

Vérifier 'xserver-xorg-video-nvidia'

Vérifier l'installation du paquet xserver-xorg-video-nvidia.

dpkg -l | egrep "xserver-xorg-video-nvidia"
ii  xserver-xorg-video-nvidia                                   340.96-1                             amd64        NVIDIA binary Xorg driver

Si vous n'avez aucun retour, c'est qu'il n'est pas installé, faites-le :

apt-get install xserver-xorg-video-nvidia

Gestion du fichier 'xorg.conf.nvidia'

Ouvrez le fichier '/etc/bumblebee/xorg.conf.nvidia', et ajoutez les informations suivantes :

nano /etc/bumblebee/xorg.conf.nvidia
Section "Screen"
   Identifier "Default Screen"
   Device "DiscreteNvidia"
EndSection

C'est un bogue Debian Jessie connu, à-propos de Bumblebee - version 3.2.1-*, et Nvidia : 340.*.

Erreur d'identifiant PCI

L'identifiant de Bus PCI doit bien être écrit ainsi : BusID “PCI:01:00:0” - et non pas BusID “PCI:01:00.0”

Si vous utilisez Bumblebee avec le pilote 'nouveau', vérifiez le support de votre version de GPU - si ce n'est pas le cas, installez la version de 'Bumblebee-nvidia'. Si c'est le cas, vérifiez votre écriture de l'identifiant du Bus PCI.

Il peut être utile, dans les deux cas de commenter toute écriture relative à l'identifiant du Bus PCI.

Xorg >= 1.18

Si le serveur X est >= 1.18 et que votre Debian est une Testing, ou une Sid, il semble exister une incompatibilité entre le projet Bumblebee et le paquet 'xserver-xorg-legacy', donc supprimez ce dernier en tant qu'administrateur, s'il est installé !

apt-get remove --purge xserver-xorg-legacy

C'est clairement un bogue de Bumblebee.

[ERROR]Cannot access secondary GPU - error: [XORG] (EE) No devices detected

Ouvrez le fichier '/etc/bumblebee/xorg.conf.nvidia', et modifiez l'option BusID. Vous trouverez cette information par l'usage de la commande 'lsusb'.

[ERROR]Cannot access secondary GPU - error: [XORG] (EE) Problem parsing the config file

Vérifiez le fichier de configuration que vous venez de modifier !!!

Que ce soit le fichier '/etc/bumblebee/xorg.config.nvidia' ou '/etc/bumblebee/xorg.config.nouveau', vous avez créé/modifié une section, et oublié/supprimé par erreur, de fermer correctement la section, voire une section est mal écrite !

fallen off the bus

Si 'dmesg' vous informe du soucis GPU suivant 'fallen off the bus', il y a deux manières de régler le problème :

première solution

Testez la commande suivante, avant le lancement d'optirun :

tee /sys/module/rcutree/parameters/rcu_idle_gp_delay <<<1 

Si cela fonctionne en effet correctement, modifiez le fichier '/etc/default/grub' pour ajouter l'information suivante à la ligne de commande GRUB_CMDLINE_LINUX_DEFAULT : rcutree.rcu_idle_gp_delay=1.

nano /etc/default/grub
(...)
GRUB_CMDLINE_LINUX_DEFAULT="quiet rcutree.rcu_idle_gp_delay=1"
(...)

Mettez-à-jour votre grub :

update-grub

et redémarrez votre ordinateur

deuxième solution

L'autre solution est de vérifier votre version de kernel linux - en effet ce problème concerne les noyaux versions 3.10 à 3.19 ! Soit vous choisissez un noyau antérieur, soit vous upgradez sur un noyau plus récent !

C'est clairement un bogue de Bumblebee.

modprobe:FATAL:Module nouveau in use

Vous avez installé le pilote nvidia …
et le système vous répond l'erreur suivante : 'modprobe:FATAL:Module nouveau in use', il est intéressant de le désactiver le module 'nouveau' lors du démarrage du noyau.

Paramétrez le fichier de configuration de grub '/etc/default/grub' afin de rajouter les paramètres noyau suivants 'nouveau.modeset=0' et 'modprobe.blacklist=nouveau' dans la ligne de configuration relative à 'GRUB_CMDLINE_LINUX_DEFAULT', telle que, par exemple :

nano /etc/default/grub
(...)
GRUB_CMDLINE_LINUX_DEFAULT="quiet nouveau.modeset=0 modprobe.blacklist=nouveau"
(...)

Mettez-à-jour votre grub :

update-grub

et redémarrez votre ordinateur

source

Autres informations

Redémarrer le service bumblebeed

Pour redémarrer le service lié à Bumblebee, exécutez la commande suivante en tant qu'administrateur :

Pour Wheezy

service bumblebeed restart

Pour Jessie (et versions supérieures)

systemctl restart bumblebeed

Documentation alternative

Vous pouvez retrouver un complément d'informations sur la page wiki du projet Debian

Gestion menu

Si vous utilisez « Gnome », l'environnement de bureau par défaut de Debian, vous pouvez configurer vos raccourcis du menu avec « alacarte »

apt-get install alacarte

Ordinateurs testés

  • Asus N53SV, wheezy et SID, s'installe et fonctionne sans modification manuelle.
  • Dell AlienWare 13, sous Sid
  • Dell Optirun R15, sous Jessie
1) N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !
4) que la ligne se termine par…
5) par exemple dans le fichier Téléchargements…
doc/materiel/cartes-graphique/nvidia/optimus.txt · Dernière modification: 09/12/2016 21:14 par smolski

Pied de page des forums

Propulsé par FluxBB