Cette page présente une description du logiciel Bumblebee, dont le but est de supporter la technologie Optimus de NVIDIA sous GNU/Linux. Un topic dédié est également disponible sur le forum, partie Affichage et cartes graphiques.
Bumblebee est un projet indépendant géré par plusieurs développeurs réunis dans une équipe nommée Bumblebee Project et dont le but est de supporter la technologie Optimus (le support d'Hybrid SLI est aussi de la partie) sous GNU/Linux, que ce soit sous Ubuntu ou une autre distribution. Le support est néanmoins plus présent pour Ubuntu et ArchLinux que les autres distributions.
C'est la solution conseillée. Bumblebee offre la possibilité d'utiliser la carte graphique NVIDIA lorsque nécessaire (via au choix le pilote propriétaire nvidia ou le pilote libre nouveau, le pilote propriétaire nvidia étant cependant fortement recommandé dans le cas de cette technologie), et d'éteindre celle-ci le reste du temps. D'autres solutions existent, mais celle-ci à l'avantage d'être la plus stable, et a comme propriété non négligeable d'être en partie développée par un membre du forum Ubuntu-fr, ArchangeGabriel, qui pourra vous aider dans le topic dédié.
Une alternative à Bumblebee, nvidia-prime est intégrée dans les dépôts par défaut il faut donc soit installer Bumblebee soit PRIME (conflit si les 2 sont installés).Commentaire sur le Blog Linuxed (en) Tutoriel ici.
tout ce qui suit ne fonctionne plus sous Bionic et surement pas sous Xenial.
glxspheres
Si ça ne marche pas, il vous dit "commande introuvable", essayer
glxspheres64
Si cela ne marche toujours pas, voir le chapitre glxspheres et glxspheres64 , commande introuvable.
Une fenêtre apparaît, avec une animation de sphères colorées. Laisser tourner 30s, puis fermez la fenêtre, et notez le résultat.
optirun glxspheres
optirun glxspheres64
Normalement, les résultats devraient être supérieurs avec optirun. Cependant, l'utilisation de VirtualGL limite les performances pour le moment, mais les développeurs travaillent sur ce problème, néanmoins il se peut que dans certaines situations la carte NVIDIA n'offre pas de meilleures performances.
Dans le cas où la commande précédente ne fonctionnerait pas, Installez le paquet bumblebee-nvidia Puis redémarrez et essayez à nouveau.
Minimum :
sudo apt-get install --no-install-recommends bumblebee
Puis ajoutez à cette ligne selon vos besoins :
Pour effectuer le lancement d'une application avec la carte graphique NVIDIA, tapez dans un terminal :
optirun <application>
Par ailleurs, le gestionnaire de configuration nVidia settings est accessible seulement en lançant dans un terminal :
optirun -b none nvidia-settings -c :8
Pour lancer des applications avec primus (il faut l'avoir installé d'abord, cf. ci-dessus) :
optirun -b primus <application>
vous pouvez aussi tester avec (gain de 50% d'FPS sur league of legend)
VGL_READBACK=pbo optirun primus <application>
Pour savoir si votre carte Nvidia est désactivée, utilisez la commande :
optirun --status
qui doit vous repondre :
Bumblebee status: Ready (3.2.1). X inactive. Discrete video card is off.
Si vous trouvez on
c'est que votre carte Nvidia est active.
cat /sys/class/power_supply/BAT0/power_now
(A noter que BAT0 peut être à remplacer par BAT1 sur certains modèles, voir même un autre chiffre)
optirun bash
Il semble a priori ne rien s'être passé, mais en réalité la carte est maintenant allumée.
cat /sys/class/power_supply/BAT0/power_now
update-grub
Un autre moyen de vérifier la consommation est d'utiliser l'outil powerstat
Cela dépend des modèles, mais pour la plupart, c'est matériellement impossible. La carte NVIDIA et la carte Intel sont matériellement connectées entre elles, et seule la carte Intel est connectée à l'écran. Donc l'affichage passe forcément par la carte Intel, il n'est donc pas possible de la désactiver. Au mieux, il sera possible dans un futur lointain de tout faire tourner sur la carte NVIDIA et de n'utiliser la carte Intel que pour l'affichage à l'écran.
Cependant certaines cartes mères gérent la désactivation des composants matériels video et son depuis le Bios ( carte Gigabyte sous Peripherals/Internal Graphics –> Disable ) et certains modèles (Lenovo notamment) offrent cette possibilité.
Reportez-vous à ce tutoriel.
Un projet, aujourd'hui abandonné, visait à fournir cette fonctionnalité entre autres choses. Il s'agissait de bumblebee-ui. Une première vidéo de démonstration est disponible. On aura sûrement un outil similaire pour PRIME. Si vous utilisez Kubuntu ou autre distribution utilisant KDE, voir Plasma Bumblebee Indicator
C'est normal, car c'est la réalité. Bumblebee utilise le pilote nvidia et l'a donc installé. Cependant, ce driver n'est chargé que lorsqu'il est utilisé, c'est-à-dire lorsque optirun tourne, car ce n'est pas lui qui est responsable de l'affichage. Rien d'alarmant donc.
Tout d'abord, si on vous conseille d'utiliser nvidia-xconfig, ne le faites pas !
En fait, le Panneau de Configuration NVIDIA ne détecte votre carte que si le fichier xorg.conf utilisé est celui de celle-ci et que de plus le serveur X.org sur lequel le Panneau tourne est géré par cette carte. Ces conditions font qu'il n'est pas possible d'utiliser le Panneau de Configuration NVIDIA tel quel pour le moment, nous réfléchissons aux différentes options qui s'offrent à nous pour contourner ce problème.
Voir à la section "Utilisation" ci-dessus, comment lancer nvidia-settings.
Non pas du tout, ce devrait plutôt être un "Warning" (Avertissement) qu'une "Error" (Erreur), mais ça ne pose en aucun cas de problèmes.
Très certainement. A moins qu'il ne s'agisse d'un problème simple dont les solutions existent déjà, votre port HDMI est probablement relié à la carte nVidia. Nous avons beaucoup de travaux à faire de ce point de vue là, car pour le moment, il est quasiment impossible d'utiliser un tel port HDMI sous Linux.
Vous rencontrez un problème, un message d'erreur, et vous ne savez pas quoi faire ? Commencer par comparer votre problème avec ceux décrits ici (chaque problème comporte plusieurs cas qui sont tous réglés par la solution proposée a priori, vous n'avez pas nécessairement tous les symptômes), et vous trouverez peut-être le (ou les) votre et sa (leur) solution(s).
C'est la première chose à vérifier, lire la page de la doc sur Optimus pour le vérifier.
Il est important d'avoir la dernière version disponible, de nombreux problèmes sont corrigés au fur et à mesure de leur découverte. Vérifiez donc qu'il n'y a pas de mises à jour disponibles avec le gestionnaire idoine.
Au 26/04/2013, les paquets de Bumblebee Project en sont aux versions suivantes (distro est à remplacer par le nom de version de votre système, e.g. oneiric) :
Il est conseillé d'utiliser la dernière version stable du pilote nvidia (331 au 04/03/2014), cf. la partie correspondante du guide d'installation.
Un problème très fréquent sous Quantal est que les headers ne sont pas installés sur le système, empêchant la compilation du pilote nvidia ainsi que de bbswitch. Le message d'erreur correspondant est généralement celui-ci :
[ERROR]The Bumblebee daemon has not been started yet or the socket path /var/run/bumblebee.socket was incorrect. [ERROR]Could not connect to bumblebee daemon - is it running?
La solution est la suivante (remplacer nvidia-current par la version que vous utilisez) :
sudo apt-get purge bbswitch-dkms nvidia-current sudo apt-get install linux-headers-generic sudo apt-get install --reinstall nvidia-current bbswitch-dkms bumblebee
Vérifiez s'il existe un fichier xorg.conf dans le dossier /etc/X11. Si oui, il force très probablement l'utilisation de la carte nVidia ce qui est alors fort certainement à l'origine du problème, donc supprimez-le :
sudo rm /etc/X11/xorg.conf
Puis redémarrez.
Si ce n'est pas le cas (i.e. le fichier n'existe pas) où que le problème persiste, regardez le problème suivant.
Xlib: extension "GLX" missing on display ":0"
Error: couldn't find RGB GLX visual or fbconfig
ERROR(596): Could not obtain RGB visual with requested properties
Ce problème vient d'une mauvaise installation du pilote nvidia qui a supplanté les librairies graphiques de la cartes Intel. Pour le corriger, ouvrez un terminal et entrez ceci :
sudo apt-get install --reinstall libgl1-mesa-glx bumblebee-nvidia
Redémarrez.
[ERROR]Cannot access secondary GPU - error: [XORG] (EE) [drm] failed to open device
Premièrement, commencez par vérifier que le pilote nouveau n'est pas charge en mémoire :
lsmod | grep nouveau
S'il n'y a pas de retour, tout va bien. Sinon, effectuez ceci:
sudo rmmod nouveau
Ensuite, vérifiez que le pilote nvidia est bien construit dans le noyau en mémoire :
sudo modprobe nvidia-current
Si vous obtenez ce message d'erreur :
FATAL: Module nvidia_current not found.
Effectuez ceci :
sudo apt-get install --reinstall nvidia-current
Redémarrez et vérifiez si cela a résolu votre problème.
Sinon, essayez de modifier l'option "Driver" dans /etc/bumblebee/bumblebee.conf en remplaçant "Driver=" par "Driver=nvidia", redémarrer et vérifier si cela a résolu le problème.
ERROR: ld.so: object 'librrfaker.so' from LD_PRELOAD cannot be preloaded: ignored.
ERROR: ld.so: object 'libdlfaker.so' from LD_PRELOAD cannot be preloaded: ignored.
Si vous êtes sur une version 64bits, commencez par vérifier que le paquet virtualgl-libs:i386 est bien installé. Si ce n'est pas le cas, installez-le et regardez si votre problème est réglé.
Si c'est le cas (paquet installé) ou que votre problème n'est pas réglé, vous êtes dans l'un des cas de figures suivants, et il n'existe aucune solution envisageable actuellement :
[ERROR]Cannot access secondary GPU - error: [XORG] (EE) NVIDIA(0): Failed to initialize the NVIDIA GPU at PCI:1:0:0. Please [ERROR]Aborting because fallback start is disabled.
rcutree.rcu_idle_gp_delay=1
à la ligne
GRUB_CMDLINE_LINUX_DEFAULT=
Exemple :
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
devient
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash rcutree.rcu_idle_gp_delay=1"
[VGL] ERROR: Could not open display :8
Certains programmes lancent des processus fils qui ne sont alors pas récupérés pas optirun. C'est un problème sur lequel nous travaillons, une solution temporaire qui peut faire l'affaire dans de nombreux cas est de réaliser la manipulation suivante.
Ouvrez un terminal, et lancez ceci :
optirun bash
Une nouvelle interface de terminal tournant sur la carte nVidia est alors disponible, vous pouvez lancer votre programme (sans optirun) via celle-ci.
Vérifiez les fichiers /var/log/Xorg.8.log et /var/log/kern.log. Si le premier se termine par :
(EE) NVIDIA(GPU-0): WAIT: (E, 0, 0x857d)
Et/ou que le second contient ces lignes :
NVRM: Xid (0000:01:00): 16, Head 00000000 Count 00000000 NVRM: Xid (0000:01:00): 16, Head 00000000 Count 00000001 NVRM: Xid (0000:01:00): 16, Head 00000000 Count 00000002 NVRM: Xid (0000:01:00): 16, Head 00000000 Count 00000003 NVRM: Xid (0000:01:00): 16, Head 00000000 Count 00000004 NVRM: Xid (0000:01:00): 16, Head 00000000 Count 00000005 NVRM: Xid (0000:01:00): 16, Head 00000000 Count 00000006 NVRM: Xid (0000:01:00): 16, Head 00000000 Count 00000007
Il peut s'agir d'un bug présent dans le noyau Linux avec la fonction de virtualisation des processeurs Intel. La solution est d'ajouter "intel_iommu=off" à la ligne de démarrage. Ou alors d'une incompatibilité du driver nvidia (rare).
Il faut modifier le fichier init de bumblebeed :
sudo gedit /etc/init/bumblebeed.conf
Rechercher les lignes suivantes :
start on (login-session-start or desktop-session-start) stop on (desktop-shutdown)
Et les remplacer par :
start on runlevel [2345] stop on runlevel [016]
Sauvegarder puis redémarrer.
Sous Ubuntu Trusty 14.04 (et au moins dans sa version Gnome Shell Remix), il est possible qu'un certain nombre de paquets nécessaires au fonctionnement de bumblebee ne soit pas présents par défaut dans les dépots officiels (bien que les paquets principaux bumblebee et bumblebee-nvidia le soit). Dans ce cas, les différentes commandes de tests "glxspheres" ou "glxspheres64" renvoient l'erreur "commande introuvable" bien que vous ayez suivi entièrement la procédure décrite plus haut pour Ubuntu 14.04.
Dans ce cas, l'ajout du PPA:Bumblebee est nécessaire:
Dans un terminal, saisir les commandes suivantes :
sudo apt-add-repository ppa:bumblebee/stable
sudo apt update
sudo apt upgrade
Si vous obtenez le message :
$ optirun -b none nvidia-settings -c :8 [ 1313.538315] [ERROR]You've no permission to communicate with the Bumblebee daemon. Try adding yourself to the 'bumblebee' group [ 1313.538347] [ERROR]Could not connect to bumblebee daemon - is it running?
Exécuter la commande et redémarrer
sudo gpasswd -a user(à remplacer) bumblebee
$ optirun -b none nvidia-settings -c :8 [ 1710.110775] [ERROR]Cannot access secondary GPU - error: [XORG] (EE) Failed to load module "nvidia" (module does not exist, 0) [ 1710.110829] [ERROR]Aborting because fallback start is disabled.
Vous pouvez maintenant suivre la procédure d'installation et de test décrite plus haut pour Ubuntu 14.04.