---
title: "Debian : Nvidia Optimus Bumblebee"
date: 2013-01-14T21:00:00+02:00
description: "Comment faire fonctionner la technologie Optimus de Nvidia grâce au projet Bumblebee sous Debian !"
draft: false
tags: ['Debian','nvidia','Optimus','Bumblebee']
---
Depuis Debian 11 Bullseye, publiée en Août 2021, cet article est obsolète.
Merci de lire ce
[post sur le forum Debian-fr.org](https://www.debian-fr.org/t/doc-nvidia-optimus-bumblebee-dans-quel-etat-gere-infos/79959/9?u=pengouinpdt),
qui explique ce qu'il faut faire.
{{< deprecated >}}
## Présentation
Nvidia a créé une technologie hybride, appelée Optimus. Cette technologie
a pour but d'utiliser la puce graphique intégrée, généralement de marque
Intel, ainsi que le processeur graphique, couplée à la première puce, de
marque Nvidia. Cela permet de faire fonctionner le GPU Nvidia, à la demande,
lors de nécessités de fonctions 3D poussées (vidéos, jeux…), et de
"rendre la main" à l'IGP Intel, soulageant ainsi la batterie, pour le reste.
Un développeur a créé un projet, nommé Bumblebee, qui nous apporte une
certaine gestion de cette technologie. Elle n'est pas complètement gérée,
mais est fonctionnelle !
Néanmoins, la gestion HDMI n'est pas accessible…
* La page du projet : http://www.bumblebee-project.org/
* Le dépôt git : https://github.com/Bumblebee-Project/Bumblebee
## Informations
{{< note danger >}}
**NE SURTOUT PAS CHERCHER À INSTALLER LES PILOTES NVIDIA PAR TOUTE AUTRE MÉTHODE !!!**
Si jamais vous l'avez fait, désinstallez tout avant :
`# apt remove --purge nvidia-*`
{{}}
Nativement sous Linux, cette technologie n'est pas pleinement supportée.
Officiellement, depuis la version 319.12, Nvidia apporte son support, en
phase bêta - cela nécessite de pouvoir connecter l'écran au GPU Nvidia ;
cette option est modifiable par certains BIOS récents.
Si votre pilote est plus ancien, ou que vous n'êtes pas dans ce cas de
configuration matérielle, cette page est vraiment faite pour vous.
{{< note warning >}}
**Ne pas utiliser le pilote Nvidia 340**… la technologie Optimus n'est
pas gérée, pour Linux - oubli/erreur du fabriquant !
C'est la version **par défaut pour Jessie** !!!
{{}}
---
## Vérifications
{{< note info >}}
Ce tutoriel est plutôt à l'intention d'utilisateurs avancés de Debian -
et, traite plus particulièrement de l'installation du projet Bumblebee pour
sa gestion avec le pilote "privatif" nvidia. Merci d'en tenir compte…
Si vous avez besoin d'un tutoriel décrivant étape par étape, préférez
la [lecture de ce tutoriel](https://debian-facile.org/doc:materiel:cartes-graphique:nvidia:optimus) !
{{}}
### Vérification matérielle
Si vous voulez être sûr d'avoir une telle technologie, entrez la commande
suivante dans votre terminal préféré :
`lspci | egrep "VGA|3D|Display"`
Si le système vous répond, ainsi, avec deux lignes, telles que :
`$ lspci | egrep "VGA|3D|Display"`
`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)`
Alors, c'est votre cas !
**Explications**
* la première information '01:00.0' est relative à l'option BusID - elle
peut-être différente selon votre configuration matérielle.
{{< note info>}}
**INFORMATION** : Ne cherchez pas à utiliser le pilote libre 'nouveau'
si votre carte graphique de fabriquant nvidia n'est pas supportée par
celui-ci.
1. Pour savoir, si elle est supportée, lisez la [page du "code name" fournie par le projet nouveau](https://nouveau.freedesktop.org/wiki/CodeNames/),
et recherchez la mention correspondante à votre GPU.
2. Puis selon le "code name" correspondant, lisez cette [page](https://nouveau.freedesktop.org/wiki/VideoAcceleration/)
pour connaître le support ou non de votre carte vidéo.
3. **Si votre carte graphique n'est pas supportée, utilisez directement le
projet Bumblebee avec le pilote privatif !**
Pour récapituler, il faut la version du serveur X suivante pour :
* l'architecture matérielle NV110, nommée **Maxwell** : **[xf86-video-nouveau-1.0.14](https://cgit.freedesktop.org/nouveau/xf86-video-nouveau/commit/?h=xf86-video-nouveau-1.0.14&id=e6479845ec0db20dc733c621b7967b751840a552)**
* l'architecture matérielle NV130, nommée **Pascal** : **[xf86-video-nouveau-1.0.15](https://cgit.freedesktop.org/nouveau/xf86-video-nouveau/commit/?id=e472b47d15634a864c8c981ed588d882aceaf26b)**
La version du serveur X est disponible à partir de :
* Jessie : [1.0.11](https://packages.debian.org/jessie/xserver-xorg-video-nouveau)
* Stretch : [1.0.13](https://packages.debian.org/stretch/xserver-xorg-video-nouveau)
* Buster : [1.0.16](https://packages.debian.org/buster/xserver-xorg-video-nouveau)
De fait, **les cartes de famille Maxwell, ou Pascal, n'ont pas le support
du pilote libre ni pour Jessie, ni pour Stretch**.
**Pour les plus récentes, passez directement à nvidia**.
**Si votre carte graphique n'est pas supportée, ou semble mal supportée du
fait de saccades, utilisez directement le projet Bumblebee avec le pilote privatif !**
{{}}
### Vérification modules kernel
Vérifiez que vous n'avez aucun des deux modules suivants installés et/ou chargés :
`$ lsmod | egrep -i "nouveau|vga_switcheroo"`
Si c'est le cas, il faudra les décharger, à l'aide de la commande :
`# modprobe -r nom-du-module`
{{< note warning >}}
**ATTENTION** : Il est possible que vous ayez le message d'erreur suivant
'modprobe:FATAL:Module nouveau in use' lorsque vous cherchez à décharger
le pilote… veuillez lire le chapitre concernant l'{{< anchor erreur "modprobe:FATAL:Module nouveau in use" >}},
ci-dessous, en fin de page, à la section sus-nommée…
sans trop vous en soucier, non plus !
{{}}
### Pré-requis
Vérifier que vous avez bien les binaires, ci-dessous, installés :
* Pour architecture 32bits :
`# apt install gcc make linux-headers-i586 dkms bbswitch-dkms`
* Pour architecture 32bits (Stretch Backports) :
`# apt install -t stretch-backports gcc make linux-headers-i686 dkms bbswitch-dkms`
* Pour architecture 64bits :
`# apt install gcc make linux-headers-amd64 dkms bbswitch-dkms`
Puis, assurez-vous que le module bbswitch fonctionne bien :
`# modprobe bbswitch load_state=0`
### Dernières vérifications
Vérifiez que vous n'avez pas de fichier de configuration `/etc/X11/xorg.conf`,
ni de répertoire `/etc/X11/xorg.conf.d/` - si c'est le cas, supprimez-le
avec vos droits administrateur !
---
## Installation
### Gestion des dépôts
La [page wiki du projet Debian][1] nous informe que les utilisateurs de [Jessie][2],
et [Sid][3] peuvent installer Bumblebee à partir des dépôts officiels Debian.
*Depuis le 26.05.2013, cela semble aussi le cas pour les utilisateurs des
dépôts [Wheezy-Backports][4] !*
{{< note info >}}
**NOTE** : Il est aussi nécessaire de s'assurer d'avoir paramétré les dépôts `contrib` et `non-free`.
{{}}
### Ajout support architecture 32 bits
**Architecture 64 bits** : Pensez à **ajouter la gestion de l'architecture i386**,
et installez en plus le package `primus-libs-ia32` - anciennement *primus-libs:i386* -
si vous voulez faire fonctionner un binaire 32 bits.
### Choisir le pilote
Mettez-à-jour votre système, et installez les binaires :
* `bumblebee` - rien que pour l'usage du {{< anchor "pilote libre nouveau" "pilote nouveau" >}},
* ou `bumblebee-nvidia` - pour l'usage du {{< anchor "pilote privatif Nvidia" "pilote nvidia" >}}.
#### pilote nouveau
`# apt update && apt install bumblebee mesa-utils`
Ainsi que le fait remarquer le [changelog][5], il est suggéré d'installer
à-partir de la version 1.0.15-2 du serveur X nouveau le firmware *firmware-misc-nonfree*.
**Si vous exécutez Buster, ou supérieure, faites-le !**
#### pilote nvidia
`# apt update && apt install bumblebee-nvidia primus nvidia-kernel-dkms nvidia-xconfig nvidia-settings nvidia-vdpau-driver vdpau-va-driver mesa-utils xserver-xorg-video-nvidia linux-headers-$(uname -r)`
**Préférez la version des backports si elle est disponible !**
*(En 2015, vous auriez pu subir ce {{< anchor "bogue 735049" "bogue 735049" >}}…)*
{{< note info >}}
**INFORMATION** : Il semble nécessaire d'installer le binaire [VirtualGL](http://www.virtualgl.org/),
requis par Optirun ; malheureusement il n'est pas dans les dépôts Debian.
Téléchargez-le à partir de la [page de téléchargement du projet](https://sourceforge.net/projects/virtualgl/files/)…
**ne téléchargez pas l'archive .tar.gz** ; cliquez sur le répertoire portant
le nom de la dernière version en cours, puis vous trouverez parmi les
différents fichiers un fichier portant le nom suivant *virtualgl_num-version_arch.deb*
(où 'num-version' est le numéro de version en cours, et 'arch' est à choisir selon votre architecture…)…
puis installez-le à l'aide de l'outil `dpkg`…
*[source](https://fixmynix.com/install-and-configure-nvidia-optimus-with-bumblebee-in-debian/)*
{{}}
---
## Configuration
### Ajout groupe Bumblebee
{{< note warning >}}
**ATTENTION** : Normalement cette étape est exécutée automatiquement lors
de l'installation. À ne faire que si vous avez le {{< anchor "message d'erreur" "" >}} ci-dessous !
{{}}
Avec les droits administrateur, il vous faut ensuite ajouter votre utilisateur
au groupe bumblebee :
`# adduser ID_USER bumblebee`
Pensez à redémarrer votre session, voire votre machine !
### Configurations supplémentaires
Les configurations ci-dessous ne sont normalement pas nécessaires !
Ces informations sont utiles au cas où se pose un souci relatif à l'{{< anchor utilisation utilisation >}}.
#### Configuration pilote nvidia
Il peut être utile d'informer Bumblebee d'utiliser le module *nvidia*,
au lieu du module *nouveau*. Par défaut, il utilise le pilote nouveau.
Avec des droits administrateur, il faut d'abord modifier le fichier `/etc/bumblebee/bumblebee.conf`
pour configurer la ligne `DRIVER=`, telle que :
`DRIVER=nvidia`
{{< note tip >}}
Si `nvidia` ne fonctionne pas, changez pour `DRIVER=nvidia-current`.
{{}}
Pensez à {{< anchor "redémarrer le service" "Redémarrage du service bumblebeed" >}} !
#### Liste noire : module nouveau
Cela peut être intéressant de "blacklister" le module nouveau, si et seulement si,
vous voulez n'utiliser que le pilote privatif Nvidia.
*(afin d'être sûr que ce ne sera pas ce module qui gérera la carte Nvidia, mais bien le pilote Nvidia !)*
Créez, avec vos droits administrateur, le fichier `/etc/modprobe.d/nouveau-blacklist.conf`,
et ajoutez ces écritures :
`blacklist nouveau`
`blacklist lbm-nouveau`
`options nouveau modeset=0`
`alias nouveau off`
`alias lbm-nouveau off`
#### upgrade
Si le système ne le fait pas tout seul, comme un grand, pensez à faire
courir à nouveau le module pour votre kernel, avec vos droits administrateur !
Avec la commande `dkms`, telle que :
`# dpkg-reconfigure nvidia-kernel-dkms`
#### Gestion de la batterie
Pour gérer correctement l'énergie de la batterie lors de l'usage de la
carte Nvidia, il peut être nécessaire de créer le fichier `/etc/modprobe.d/bbswitch.conf`
et d'y ajouter ceci - normalement le projet Bumblebee installe le paquet
**bbswitch** et le gère correctement - :
`options bbswitch load_state=0 unload_state=0`
Ensuite, il vous faut modifier le fichier `/etc/bumblebee/bumblebee.conf`
et configurer les lignes `PMMethod` ainsi :
`PMMethod=bbswitch`
Pensez à {{< anchor "redémarrer le service" "Redémarrage du service bumblebeed" >}} !
Ensuite, {{< anchor "testez le bon fonctionnement" "Test du fonctionnement de la batterie" >}} de la gestion de la batterie.
#### Steam
1. Ajoutez la variable d'environnement `OPTIMUS_PREFIX`
`# sh -c 'echo OPTIMUS_PREFIX=\"primusrun\" >> /etc/environment'`
2. Déloguez-vous de votre session pour vous reconnectez !
3. Puis, pour chaque jeu, dont vous voulez profiter d'optirun, il faut
modifier 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 "Properties".
Ensuite, cliquez sur le bouton [SET LAUNCH OPTIONS] et spécifiez dans le
champ l'information qui suit :
`$OPTIMUS_PREFIX %command%`
Une solution plus simple est d'éditer les propriétés de lancement et d'ajouter
directement :
`primusrun %command%`
---
## Utilisation
Toutes les étapes précédentes de {{< anchor vérifications Vérifications >}},
d'{{< anchor installations installation >}} et de {{< anchor configurations configuration >}},
ayant été faites, vous pouvez être sûr que Bumblebee fonctionne grâce au
binaire **optirun**.
Donc, pour activer la gestion du GPU Nvidia, il faut faire précéder toute
commande par l'usage de la commande `optirun`.
`$ optirun [optirun-options] [application-parameters]`
Pour trouver la liste des options de optirun, vous pouvez, soit :
* lire la page du manuel avec la commande `man optirun`,
* exécuter : `$ optirun --help`
### Test
Le premier test que vous pouvez faire est :
`$ optirun glxgears -info`
### Panel Nvidia
**Ne cherchez pas à l'utiliser en cliquant sur l'icône correspondante, dans votre menu, cela ne fonctionnera pas.**
Il vous faut le lancer ainsi - c'est le seul moyen ! - :
`$ optirun nvidia-settings -c :8`
### Redémarrage du service bumblebeed
Selon votre version de debian :
* Si **initd** : `/etc/init.d/bumblebeed restart`
* Si **service** : `service bumblebeed restart`
* Si **systemd** : `systemctl restart bumblebeed`
---
## Dépannage
{{< note info >}}
Concernant la gestion des erreurs ci-dessous, après avoir appliqué la correction,
pensez à {{< anchor "redémarrer le service Bumblebee" "Redémarrage du service bumblebeed" >}} !
{{}}
### Bogue 735049
**ATTENTION** : Depuis Janvier 2014, lors de l'installation du package
*bumblebee-nvidia*, il est possible que vous ayez droit à un fenêtre d'avertissement
vous demandant de créer le fichier xorg.conf !
* **NE LE FAITES PAS !**
* **NE LAISSEZ PAS** l'outil debconf créer le fichier pour vous !
* **N'EXÉCUTEZ PAS** l'outil nvidia-xconfig !
*Bogue [735049][6] qui semble être résolu depuis octobre 2015 !*
### [ERROR]Cannot access secondary GPU - error: Could not enable discrete graphics card
Vérifiez le journal de dmesg pour savoir si vous trouvez la référence suivante :
`Refused to change power state, currently in D3`
Cela semble être dû à un problème de gestion de l'ACPI *(souvent retrouvés
dans des portables de marque Dell)* avec le noyau 4.8 et plus récent.
#### PMMethod=none
Éditez `/etc/bumblebee/bumblebee.conf` pour paramétrez `PMMethod=none`.
#### pcie_port_pm=off
Si vous utilisez le pilote nvidia, il peut être utile de modifier le
fichier `/etc/default/grub` pour ajouter la désactivation suivante : `pcie_port_pm=off`
Mettez-à-jour votre grub et redémarrez votre ordinateur :
`# update-grub`
`# shutdown -r now`
*[source](https://github.com/Bumblebee-Project/bbswitch/issues/140#issuecomment-403306682)*
### [ERROR]Cannot access secondary GPU - error: Could not load GPU driver
{{< note info >}}
**NOTE** : 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é, {{< anchor "redémarrez le service Bumblebee" "Redémarrage du service bumblebeed" >}} 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 !**
{{}}
#### Modification de "Driver"
Ouvrez le fichier `/etc/bumblebee/bumblebee.conf`, avec les droits administrateur,
et modifiez la ligne `Driver=` par `Driver=nvidia`.
#### Modification de "KernelDriver"
Ouvrez le fichier `/etc/bumblebee/bumblebee.conf`, avec les droits administrateur,
et dans la section `[Driver-nvidia]`, vérifiez la ligne `KernelDriver=`
qu'elle soit bien ainsi `KernelDriver=nvidia-current`.
Pour vérifier le nom du module nvidia, exécutez les deux commandes suivantes :
`# modinfo nvidia`
`# modinfo nvidia-current`
Normalement vous devriez avoir ces retours :
`# modinfo nvidia`
`modinfo: ERROR: Module nvidia not found.`
ou, par exemple :
`# modinfo nvidia-current`
`filename: /lib/modules/3.16.0-4-amd64/updates/dkms/nvidia-current.ko`
`alias: char-major-195-*`
`version: 340.96`
`supported: external`
`license: NVIDIA`
`(…)`
Si jamais, vous avez un résultat sur `modinfo nvidia`, modifiez la ligne
`KernelDriver=` ainsi `KernelDriver=nvidia` <= **ce qui ne devrait pas avoir lieu !**
Si aucune des deux commandes ne retourne rien, vous avez eu un souci lors
de l'installation <= **ce n'est pas normal ; cherchez la raison !**
*Bogue [717687][7]*
### [ERROR]Cannot access secondary GPU - error: [XORG] (EE) /dev/dri/card0: failed to set DRM interface version 1.4: Permission denied
{{< note info >}}
**NOTE** : 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é, {{< anchor "redémarrez le service Bumblebee" "Redémarrage du service bumblebeed" >}} 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érification xserver-xorg-video-nvidia
Vérifiez l'installation du paquet "xserver-xorg-video-nvidia" - **s'il n'est pas installé, faites-le !**
#### Modification fichier xorg.conf.nvidia
Ouvrez le fichier `/etc/bumblebee/xorg.conf.nvidia`, et ajoutez les informations suivantes :
`Section "Screen"`
`Identifier "Default Screen"`
`Device "DiscreteNvidia"`
`EndSection`
***Bogue [756522][8]** qui touche **Debian Jessie**, à-propos des **Bumblebee versions** : **3.2.1-5**, **3.2.1-7** et **nvidia versions** : *340.***,
#### Vérification prise en charge par nouveau
* Si vous avez installé Bumblebee pour fonctionner avec le pilote libre
'nouveau', vérifiez le {{< anchor "support de votre GPU" "Vérification matérielle" >}} nvidia par le pilote.
* Si votre version de GPU est bien prise en charge par le pilote 'nouveau',
vérifiez l'écriture de l'{{< anchor "identifiant de Bus PCI" "Erreur Identifiant BusPCI" >}}, tel que ci-dessous.
* S'il n'est pas pris-en-charge, installez la version "{{< anchor "Bumblebee+nvidia" "pilote nivida" >}}".
#### Erreur Identifiant BusPCI
Profitez-en pour vérifier l'écriture de l'identifiant du Bus PCI relatif
à votre carte graphique Nvidia.
{{< note warning >}}
**ATTENTION** : L'identifiant de Bus PCI doit bien être écrit ainsi :
**BusID "PCI:01:00:0"** - *et non pas BusID "PCI:01:00.0"*.
Parfois il peut être nécessaire de mettre en commentaire l'identifiant de
Bus PCI, pour que cela puisse fonctionner correctement…
ce qui normalement est le cas d'une installation par défaut !
{{}}
#### Incompatibilité 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 **virez ce dernier**, s'il est installé !
*[source][9]*
### [ERROR]Cannot access secondary GPU - error: [XORG] (EE) Failed to load module "mouse" (module does not exist, 0)
{{< note info >}}
**NOTE** : 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é, {{< anchor "redémarrez le service Bumblebee" "Redémarrage du service bumblebeed" >}} 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érifiez l'installation du paquet **xserver-xorg-input-mouse**, si ce n'est pas le cas, faites-le !
#### Vérifier le fichier xorg.conf.nvidia
Vérifiez le fichier `/etc/bumblebee/xorg.conf.nvidia`.
#### Vérifier votre identifiant PCI
Vérifiez que votre {{< anchor "identifiant de Bus PCI" "Erreur Identifiant BusPCI">}} 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`…
voir le chapitre {{< anchor Vérification Vérifications >}} !
### [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 `/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 !
### [ERROR]Could not connect to bumblebee daemon - is it running?
Vérifiez que le {{< anchor "service Bumblebee" "Redémarrage du service bumblebeed" >}} soit fonctionnel !
### [ERROR]Unknown accel/display bridge:
Le "pont" *('bridge' en anglais)* que vous cherchez à utiliser avec
l'option `-b` d'optirun n'existe pas. **Modifiez votre commande !!!**
### [ERROR]You've no permission to communicate with the Bumblebee daemon. Try adding yourself to the 'bumblebee' group
Ce message d'erreur vous informe que votre identifiant utilisateur semble
ne pas être ajouté {{< anchor "groupe bumblebee" "Ajout groupe Bumblebee" >}}.
**Ajoutez-le !**
### fallen off the bus
{{< note info >}}
**NOTE** : 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é, {{< anchor "redémarrez le service Bumblebee" "Redémarrage du service bumblebeed" >}} 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érifiez la sortie dmesg !**
Si `dmesg` vous informe du souci GPU suivant `fallen off the bus`, il y a
deux manières de régler le problème :
#### Test "rcu_idle_gp_delay <<<1"
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`.
Mettez-à-jour votre grub et redémarrez votre ordinateur :
`# update-grub`
`# shutdown -r now`
#### Incompatibilité kernels (3.10 à 3.19)
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 !
*Il semble que ce soit surtout un bogue Nvidia… cf [Bumblebee issue 445][10]*
### error while loading shared libraries: libturbojpeg.so
L'erreur complète est la suivante :
`error while loading shared libraries: libturbojpeg.so: cannot open shared object file: No such file or directory`
Si vous avez une architecture {{< anchor 32 "architecture 32 bits" >}} ou {{< anchor 64 "architecture 64 bits" >}} bits :
#### architecture 32 bits
Si votre architecture est 32 bits, tapez dans votre terminal console préférée,
cette commande avec les droits administrateur :
`# ln -s /usr/lib/i386-linux-gnu/libturbojpeg.so.0 /usr/lib/i386-linux-gnu/libturbojpeg.so`
#### architecture 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`
### modprobe:FATAL:Module nouveau in use
Lors de l'installation, au tout début, il vous est dit de décharger le module
nouveau. Si le système vous répond l'erreur suivante : `modprobe:FATAL:Module nouveau in use`,
il est intéressant de le désactiver lors du démarrage du noyau.
Ne vous inquiétez pas trop de ce message d'erreur, mais plutôt 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 :
`GRUB_CMDLINE_LINUX_DEFAULT="quiet nouveau.modeset=0 modprobe.blacklist=nouveau"`
Mettez-à-jour votre grub… et redémarrez votre station.
*[source][11]*
### primus: fatal: failed to load any of the libraries: (…)/libGL.so.1
Lorsque vous exécutez optirun, 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`
ou :
`$ 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`
1. La première chose à tester est :
`$ primusrun glxgears`
* Si cela fonctionne, alors précéder les commandes non pas avec *optirun*,
mais `primusrun`.
* Sinon un bogue [#867033][12] est ouvert… sachez que c'est galère
à corriger, parce que même en installant les packages ci-dessous,
vous ne serez pas sûr de résoudre le problème.
2. Dans un premier temps, vérifiez que vous avez bien installé le package **primus-libs-ia32**.
3. Vous pouvez essayer l'une des solutions suivantes - *sachant qu'il n'y
a aucune garantie de fonctionnement* :
* 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 [22][13])
* É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 [59][14])
* Essayez l'installation des packages suivants :
**libgl1-nvidia-glx libgl1-nvidia-glx:i386 nvidia-driver-libs nvidia-driver-libs-i386**
### Freezes diverses
Il existe plusieurs raisons pour lesquelles le portable peut "freezer",
essayez les solutions proposées - *en anglais* :
#### Freezes lors de l'activation du serveur graphique
* https://github.com/Bumblebee-Project/Bumblebee/issues/764#issuecomment-559980823
* https://github.com/Bumblebee-Project/Bumblebee/issues/764#issuecomment-612384824
#### Freezes au boot
* https://github.com/Bumblebee-Project/Bumblebee/issues/1036#issuecomment-521974873
* https://github.com/Bumblebee-Project/Bumblebee/issues/1036#issuecomment-612779453
### Test du fonctionnement de la batterie
Pour tester le fonctionnement :
1. vous pouvez procéder ainsi en mode terminal :
`$ cat /proc/acpi/bbswitch`
`0000:01:00.0 OFF`
2. Lancement d'optirun :
`$ optirun glxgears > /dev/null &`
`[1] 4785`
3. Vérification de bbswitch :
`$ cat /proc/acpi/bbswitch`
`0000:01:00.0 ON`
4. Arrêt d'optirun, par l'appui simultanée des touches {{< kbd "CTRL+C" >}} :
`[VGL] ERROR: in readback--`
`[VGL] 246: Window has been deleted by window manager`
`[1]+ Termine 1 optirun glxgears > /dev/null`
5. Après avoir fermé la fenêtre de glxgears :
`$ cat /proc/acpi/bbswitch`
`0000:01:00.0 OFF`
## Documentations
* Vous pouvez retrouver un complément d'informations sur la [page wiki du projet Debian][15]…
* Sur le forum Debian-fr.org, à-partir du 23 août 2019, j'ai écrit ce complément d'informations titré
**["[Doc] Nvidia Optimus + Bumblebee : Dans quel état gère… [Infos]"][16]**
qui montre à quel point la situation devient compliquée…
je l'ai maintenu jusqu'en début 2020 - je n'ai de fait plus ce type
d'architecture graphique !
* J'ai écrit ce tutoriel la première fois en Janvier 2013, pour la [communauté Debian-fr.xyz][17] ;-)
* J'ai collaboré à l'écriture de cette [page wiki][18] pour la communauté Debian-Facile.org,
depuis mai 2016.
---
[1]: https://wiki.debian.org/fr/Bumblebee
[2]: http://packages.debian.org/search?suite=jessie&searchon=names&keywords=bumblebee
[3]: http://packages.debian.org/search?suite=sid&searchon=names&keywords=bumblebee
[4]: http://backports.debian.org/changes/wheezy-backports.html
[5]: https://metadata.ftp-master.debian.org/changelogs//main/x/xserver-xorg-video-nouveau/xserver-xorg-video-nouveau_1.0.16-1_changelog
[6]: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=735049
[7]: https://bugs.debian.org/717687
[8]: https://bugs.debian.org/756522
[9]: https://github.com/Bumblebee-Project/Bumblebee/issues/749#issuecomment-216352740
[10]: https://github.com/Bumblebee-Project/Bumblebee/issues/455#issuecomment-22497464
[11]: https://fixmynix.com/nvidia-optimus-troubleshooting-in-debain-kali-linux-ubuntu/
[12]: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=876033
[13]: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=876033#22
[14]: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=876033#59
[15]: http://wiki.debian.org/fr/Bumblebee
[16]: https://www.debian-fr.org/t/doc-nvidia-optimus-bumblebee-dans-quel-etat-gere-infos/79959
[17]: https://wiki.debian-fr.xyz/NVidia_Optimus_Bumblebee
[18]: https://debian-facile.org/doc:materiel:cartes-graphique:nvidia:optimus