====== Nvidia Optimus ======
* Objet : Nvidia Optimus
* Niveau requis :{{tag>avisé}}
* Commentaires : // Le logiciel Bumblebee est un logiciel qui se charge de gérer votre carte graphique Nvidia. //
* Débutant, à savoir : [[:doc:systeme:commandes:le_debianiste_qui_papillonne|Utiliser GNU/Linux en ligne de commande, tout commence là !]] :-)
* Suivi :{{tag>à-tester}}
* Création par [[user>smolski]] le 08/02/2012
* Testé par [[user>PengouinPdt]]
* Commentaires sur le forum : [[http://debian-facile.org/viewtopic.php?id=4924 |C'est ici]]((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !))
===== Introduction =====
La technologie Nvidia Optimus est équipée sur certains ordinateurs portables. \\
Il s'agit :
- [[doc:materiel:cartes-graphique:cartes-graphique|d'une carte graphique]] **dédiée**
- //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 :
- la carte graphique Intel intégrée passe le relais à -> \\
- [[doc:materiel:cartes-graphique:nvidia:accueil|la carte Nvidia]], (//qui est beaucoup plus puissante mais plus énergivore//).
De ce fait, cette technologie permet à l'ordinateur portable
- d'avoir une meilleure autonomie sur batterie en utilisant que la carte graphique intégrée
- 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 :
- ni autonomie,
- ni puissance...
[[doc:systeme:noyau:theorie|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 :
- 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.
- 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|Display"
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((voir : [[doc:systeme:apt:apt-get#purge-autoremove | Nettoyage des paquets avec apt-get]])) :
apt purge nvidia-*
La démarche est la suivante :
- Activation des **dépôts contrib**, et **non-free officiels**
- Installation de Bumblebee
- Redémarrage
- Lancement des applications voulues avec le préfixe « optirun »
- Optionnel : Éditer vos raccourcis pour utiliser la carte graphique dédiée
==== Les dépôts ====
- Vérifiez que [[doc:systeme:apt:sources.list|le dépôt principal Debian]] soit suffixé((que la ligne se termine par...)) de « main contrib non-free » ... //(Bumblebee étant une// contribution// et les pilotes Nvidia étant// non-libres).
- Pour stable, ajoutez [[doc:systeme:apt:sources.list#les-retroportages-depot-backports | les dépôts backports]] s'ils ne sont pas présents.
==== Installation de Bumblebee ====
=== Ajout support architecture 32 bits ===
Pour ceux qui ont installé la version 64 bits de Debian, pensez à ajouter la [[https://wiki.debian.org/fr/Multiarch/HOWTO|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 update
apt install primus-libs-ia32
=== Choisir le pilote nouveau ou nvidia ? ===
À 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 nvidia, il vous faudra être attentif aux différentes recommandations pour désactiver le support 'nouveau'.
**Ne cherchez pas à utiliser le pilote libre 'nouveau' si votre carte graphique de fabriquant nvidia n'est pas supportée** par celui-ci.
Pour savoir si elle est supportée, lisez la [[https://nouveau.freedesktop.org/wiki/CodeNames/|page du "code name" fournie par la projet nouveau]], recherchez la mention correspondante à votre GPU, vous y trouverez aussi le nom de l'architecture correspondante.
//Vous pouvez aussi lire cette [[https://nouveau.freedesktop.org/wiki/VideoAcceleration/|page]] pour connaître le support complet ou non de votre carte vidéo.//
Pour récapituler :
- l'architecture matérielle NV110, nommée Maxwell, est supportée à partir de la version du serveur X : "**xf86-video-nouveau-1.0.14**".
- l'architecture matérielle NV130, nommée Pascal, est supportée à partir de la version du serveur X : "**xf86-video-nouveau-1.0.15**"
Pour information, la version supportée du serveur X :
- Sous Jessie (Debian 8) : la **[[https://packages.debian.org/jessie/xserver-xorg-video-nouveau|1.0.11]]**
- Sous Stretch (Debian 9): la **[[https://packages.debian.org/stretch/xserver-xorg-video-nouveau|1.0.13]]**
- Sous Buster (Debian 10) : la **[[https://packages.debian.org/buster/xserver-xorg-video-nouveau|1.0.16]]**
**De fait, les cartes de famille Maxwell, ou Pascal, n'ont pas le support du pilote libre pour Jessie, ni Stretch. Ce support semble s'améliorer sous Buster . Néanmoins, si votre carte graphique n'est pas supportée ou mal supportée, utilisez directement le projet Bumblebee avec le pilote privatif ! **
=== Bumblebee avec 'nouveau' ===
=> Pour installer Bumblebee et fonctionner avec le pilote libre 'nouveau' :
apt install bumblebee mesa-utils
Il semble suggérer d'installer le pilote ''firmware-misc-nonfree'' qui en ont besoin pour l'accélération graphique des cartes 'Maxwell' et supérieures. Néanmoins, il faut à minima la version 1.0.15-2 du serveur X (OK, pour Buster) !!!
xserver-xorg-video-nouveau (1:1.0.15-2) unstable; urgency=medium
(...)
* Suggest firmware-misc-nonfree, needed for acceleration on Maxwell
and newer cards.
(...)
Si donc, vous fonctionnez avec Buster, installez en plus le pilote 'firmware-misc-nonfree' :
apt install firmware-misc-nonfree
=== Bumblebee avec 'nvidia' ===
=> Pour installer Bumblebee et gérer le pilote privatif nvidia :
apt install nvidia-kernel-dkms nvidia-xconfig nvidia-settings nvidia-vdpau-driver vdpau-va-driver mesa-utils bumblebee-nvidia primus xserver-xorg-video-nvidia linux-headers-$(uname -r)
Lors de l'installation, il vous sera affiché une première fenêtre d'information : \\
{{/file-R239d6c3b7e732387babec474c5408424.png?350}}
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 :
{{/file-R1f38596dfbb210643bab74193bc1b25a.png?350}}
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 : [[https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=735049|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"// ...
=== Evolution bumblebee avec Nvidia ===
configuration de l'exemple :
00:02.0 VGA compatible controller: Intel Corporation HD Graphics 530 (rev 06)
01:00.0 3D controller: NVIDIA Corporation GM107M [GeForce GTX 960M] (rev a2)
installation des méta - paquets :
(avec testing bullseye) :
apt install --reinstall linux-image-amd64 linux-headers-amd64
avec buster - backports :
apt -t buster-backports install --reinstall linux-image-amd64 linux-headers-amd64
installation de bumblebee :
avec buster - backports
apt -t buster-backports install --reinstall bumblebee-nvidia primus libglx-nvidia0
ou testing bullseye (et buster) :
apt install --reinstall bumblebee-nvidia primus libglx-nvidia0
mesa :
apt install --reinstall mesa-utils
tests carte intel :
glxinfo -B
glxgears
tests carte nvidia :
optirun glxinfo -B
optirun glxgears
n.b.: si la synchro verticale est activée , glxgears s'alignera sur la fréquence de votre écran .
si la synchro verticale n'est pas activée , vous aurez l'indication des fps de votre carte graphique .
ce qui , à part faire joli , ne vous avancera pas plus ;
les fps supplémentaires n'étant tout simplement pas pris en compte par votre écran lors de l'affichage .
ex: vous avez une carte qui tourne à 200 fps , cela vous fera une belle jambe si ,
comme presque tout le monde , vous avez un écran 60 hz (classique , quoi ...)
merci robert2a .
=== 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'[[#modprobefatalmodule-nouveau-in-use|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 [[https://sourceforge.net/projects/virtualgl/files/?source=navbar|la page de téléchargement du projet]].
**Ne téléchargez pas le fichier relatif à l'archive .tar.gz**, mais
- cliquez sur le répertoire nommé selon la dernière version de l'archive
- 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 fichier((par exemple dans le fichier Téléchargements...)), puis installez-le à l'aide de [[doc:systeme:apt:dpkg|l'outil dpkg]] ...
cd Téléchargements/
dpkg -i virtualgl_*.deb
==== Ajout utilisateur au groupe 'bumblebee' ====
La [[https://wiki.debian.org/fr/Bumblebee|documentation du wiki Debian]] nous informe de cela :
« Si sudo est configuré pour votre utilisateur courant, c'est-à-dire si votre utilisateur est [[doc:systeme:sudo|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//.
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
==== 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 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"
==== Gestion de Steam ====
=> Ajoutez la variable d'environnement OPTIMUS_PREFIX
sh -c 'echo OPTIMUS_PREFIX=\"primusrun\" >> /etc/environment'
**Déloguez-vous** de votre session **pour vous reconnectez** !
=> Puis, pour chaque jeu, dont vous voulez profiter d'optirun, il faut modifiez les propriétés de lancement de celui-ci.
- Exécutez Steam,
- allez dans votre librairie de jeux,
- sélectionnez le jeu en question,
- puis faites un clic droit dessus, et choisissez le menu "Propriétés".
- Ensuite, cliquez sur le bouton [DÉFINIR LES OPTIONS DE LANCEMENT...],
- et spécifiez dans le champ l'information qui suit : ''$OPTIMUS_PREFIX %command%'' - Il est possible d'y écrire directement : ''primusrun %command%''
===== 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 :
* [[http://debian-facile.org/viewtopic.php?id=6324 | Problème d'installation résolu par Rol]]
* http://forum.ubuntu-fr.org/viewtopic.php?id=565321
Il semble que la version 340 du pilote nvidia soit défectueuse - version par défaut pour Jessie !
**NOTE** : Après avoir appliqué une des corrections proposées, pensez toujours à [[#redemarrer-le-service-bumblebeed|redémarrer le service Bumblebee]] !
==== erreur libGL.so.1 ====
Les modifications systèmes que ces propositions de solutions sont **pour des utilisateurs confirmés**. Comprenez bien qu'il ait très probable qu'aucune solution ne fonctionne dans votre cas. En effet, certaines solutions fonctionnent chez certains, et d'autres pour d'autres, voire aucune solution peut n'être fonctionnelle !
**Tenez en compte** !
Un bogue #[[https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=876033|867033]] est ouvert... Il n'est pas résolu, et pose régulièrement des problèmes avec les nouvelles versions de pilote.
Lorsque vous exécutez ''optirun'' ou ''primusrun'', vous avez le retour d'erreur suivant :
primus: fatal: failed to load any of the libraries: /usr/lib/x86_64-linux-gnu/nvidia/libGL.so.1:/usr/lib/i386-linux-gnu/nvidia/libGL.so.1:/usr/lib/nvidia/libGL.so.1
/usr/lib/x86_64-linux-gnu/nvidia/libGL.so.1: cannot open shared object file: No such file or directory
/usr/lib/i386-linux-gnu/nvidia/libGL.so.1: cannot open shared object file: No such file or directory
/usr/lib/nvidia/libGL.so.1: cannot open shared object file: No such file or directory
primus: fatal: failed to load any of the libraries: /usr/lib/x86_64-linux-gnu/ nvidia/libGL.so.1:/usr/lib/i386-linux-gnu/nvidia/libGL.so.1:/usr/lib/nvidia/libGL.so.1
/usr/lib/x86_64-linux-gnu/nvidia/libGL.so.1: wrong ELF class: ELFCLASS64
/usr/lib/i386-linux-gnu/nvidia/libGL.so.1: cannot open shared object file: No such file or directory
/usr/lib/nvidia/libGL.so.1: cannot open shared object file: No such file or directory
Dans un premier temps, vérifiez que vous avez bien installé le package ''primus-libs-ia32''. Si ce n'est pas le cas, faites-le !
Sachant qu'**il n'y a aucune garantie de fonctionnement**, vous pouvez essayer l'une des solutions suivantes :
* Exécutez ''primusrun'' en le préfixant de l'option ''_GLVND_DISALLOW_PATCHING=1'', tel que : ''_GLVND_DISALLOW_PATCHING=1 primusrun glxgears'' - //(cf, la réponse [[https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=876033#22 | 22]])//
* Éditez le fichier ''/usr/bin/primusrun'', pour modifier la ligne ''PRIMUS_libGL=${PRIMUS_libGL:-'/usr/$LIB/primus'}'' par ''PRIMUS_libGL=${PRIMUS_libGL:-"/usr/$LIB/primus"}'' - c'est-à-dire **changer les simples quotes en doubles quotes** - //(cf, la réponse [[https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=876033#59 | 59]])//
* Essayez l'installation des packages suivants : apt install libgl1-nvidia-glx libgl1-nvidia-glx:i386 nvidia-driver-libs nvidia-driver-libs-i386
==== 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 ====
Testez une des solutions, une par une, puis ensuite [[#redemarrer-le-service-bumblebeed|redémarrer le service Bumblebee]], et essayez d'utiliser à nouveau votre commande précédée d'optirun !
=== Modification de "Driver" ===
Une solution très simple est d'éditer le fichier /etc/bumblebee/bumblebee.conf, avec les droits administrateurs, pour modifier la ligne 'Driver=' en début de fichier :
# Configuration file for Bumblebee. Values should **not** be put between quotes
## Server options. Any change made in this section will need a server restart
# to take effect.
[bumblebeed]
# The secondary Xorg server DISPLAY number
VirtualDisplay=:8
# Should the unused Xorg server be kept running? Set this to true if waiting
# for X to be ready is too long and don't need power management at all.
KeepUnusedXServer=false
# The name of the Bumbleblee server group name (GID name)
ServerGroup=bumblebee
# Card power state at exit. Set to false if the card shoud be ON when Bumblebee
# server exits.
TurnCardOffAtExit=false
# The default behavior of '-f' option on optirun. If set to "true", '-f' will
# be ignored.
NoEcoModeOverride=false
# The Driver used by Bumblebee server. If this value is not set (or empty),
# auto-detection is performed. The available drivers are nvidia and nouveau
# (See also the driver-specific sections below)
Driver=
(...)
Modifiez la ligne 'Driver=' tel que : **Driver=nvidia**
En effet, sans cette modification, Bumblebee semble ne pas arriver à trouver le bon module. //version touchée 3.2.1-5, 3.2.1-7//
=== Modification de "KernelDriver" ===
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 'KernelDriver' comporte juste la mention suivante 'KernelDriver=nvidia', modifiez-la par '** KernelDriver=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 "KernelDriver=nvidia".
//C'est un [[https://bugs.debian.org/717687|bogue]] Debian connu - apparemment réglé dans la future version 3.2.1-11 de Bumblebee//
==== [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é, [[#redemarrer-le-service-bumblebeed|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 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 [[https://bugs.debian.org/756522|bogue]] Debian Jessie connu, à-propos de Bumblebee - version 3.2.1-*, et Nvidia : 340.*.//
=== Vérification prise en charge par 'nouveau' ===
Si vous avez installé Bumblebee pour fonctionner avec le pilote libre 'nouveau', vérifiez le support de votre GPU nvidia par le pilote - s'il n'est pas pris-en-charge, installez la version 'Bumblebee-nvidia'. Si votre version de GPU est bien prise en charge par le pilote 'nouveau', vérifiez l'écriture de l'identifiant de Bus PCI, tel que ci-dessous.
=== 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 purge xserver-xorg-legacy
//C'est clairement un [[https://github.com/Bumblebee-Project/Bumblebee/issues/749#issuecomment-216352740|bogue]] de Bumblebee.//
==== [ERROR]Cannot access secondary GPU - error: [XORG] (EE) Failed to load module "mouse" (module does not exist, 0) ====
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é, [[#redemarrer-le-service-bumblebeed|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-input-mouse' ===
Vérifier l'installation du paquet **xserver-xorg-input-mouse**.
dpkg -l | egrep "xserver-xorg-input-mouse"
ii xserver-xorg-input-mouse 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 install xserver-xorg-input-mouse
=== Vérifier le fichier xorg.conf.nvidia ===
Vérifiez le fichier ''/etc/bumblebee/[[#gestion-du-fichier-xorgconfnvidia|xorg.conf.nvidia]]''.
=== Vérifier votre identifiant PCI ===
Vérifiez que votre [[#erreur-d-identifiant-pci|identifiant de Bus PCI]] soit correctement écrit !
==== [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 [[https://github.com/Bumblebee-Project/Bumblebee/issues/455#issuecomment-22497464|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** ...
//[[https://fixmynix.com/nvidia-optimus-troubleshooting-in-debain-kali-linux-ubuntu/|source]]//
===== Autres informations =====
==== Redémarrer le service bumblebeed ====
Pour redémarrer le service lié à Bumblebee, exécutez la commande suivante en tant qu'administrateur :
systemctl restart bumblebeed
==== Documentation alternative ====
Vous pouvez retrouver un complément d'informations sur la page [[http://wiki.debian.org/fr/Bumblebee|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 G551JK, sous Stretch
* Asus N53SV, wheezy et SID, s'installe et fonctionne sans modification manuelle.
* Dell AlienWare 13, sous Sid
* Dell Optirun R15, sous Jessie