Bumblebee : Différence entre versions

De ArchwikiFR
(Gestion de l'énergie)
m (Correction de mesa-dri par mesa pour l'installation de Bumbledee en 64bits lien pkg)
 
(32 révisions intermédiaires par 8 utilisateurs non affichées)
Ligne 1 : Ligne 1 :
 
[[en:Bumblebee]]
 
[[en:Bumblebee]]
{{Warning|Bumblebee est en cours de développement, il est possible que vous rencontriez un certain nombre de bogues.}}
+
{{Warning|Bumblebee est en cours de développement, il est possible que vous rencontriez un certain nombre de bogues. Reportez les bogues sur la page [https://github.com/Bumblebee-Project/Bumblebee/issues GitHub de Bumblebee].}}
 
''Bumblebee est une solution pour la technologie Nvidia Optimus permettant d'exploiter la carte graphique dédiée.''
 
''Bumblebee est une solution pour la technologie Nvidia Optimus permettant d'exploiter la carte graphique dédiée.''
  
Ligne 9 : Ligne 9 :
 
[http://www.bumblebee-project.org/ Bumblebee] est un script d'installation basé sur VirtualGL pour être en mesure d'utiliser le GPU dédié, qui n'est physiquement pas connecté à l'écran.
 
[http://www.bumblebee-project.org/ Bumblebee] est un script d'installation basé sur VirtualGL pour être en mesure d'utiliser le GPU dédié, qui n'est physiquement pas connecté à l'écran.
  
NB : La carte gérée par bumblebee intervient en seconde carte , penser à aussi installer le pilote pour la carte intel [[http://wiki.archlinux.fr/Intel intel]]pour,dans un 1er temps avoir un affichage graphique
+
{{note|La carte gérée par bumblebee intervient en seconde carte, pensez aussi à installer le pilote pour la carte intel [[Intel]] pour, dans un 1er temps avoir un affichage graphique.}}
  
 
== Installation ==
 
== Installation ==
Deux versions sont disponibles depuis AUR :
+
Depuis début avril Bumblebee est dans le [[Depots|dépot '''[community]''']]:
*{{AUR|bumblebee}} : Version stable du paquet. Utilise par défaut le Pilote nVidia
+
*{{pkg|bumblebee}} : Version stable du paquet. Utilise par défaut le Pilote nVidia.
*{{AUR|bumblebee-git}} : Version de la branche de développement. Permet l'utilisation des pilotes nVidia et Nouveau (Libre).
+
Autre version disponible depuis [[AUR]]:
 +
*{{AUR|bumblebee-git}} : Version de la branche de développement.
  
Pour lancer des applications 32-bit sur un système 64-bit, il faut également installer le paquet {{AUR|lib32-virtualgl}}.
+
Pour lancer des applications 32-bit sur un système 64-bit, il faut également installer le paquet {{pkg|lib32-nvidia-utils}} (le [[Depots|dépôt '''[multilib]''']] doit être activé).
  
Pour ajouter la fonctionalité de gestion de l'énergie, vous avez besoin d'installer {{AUR|bbswitch}} ou {{AUR|bbswitch-git}} pour la branche de développement.
+
Pour ajouter la fonctionalité de gestion de l'énergie, vous avez besoin d'installer {{pkg|bbswitch}} depuis '''[community]'''.
  
=== Utiliser le pilote nVidia ===
+
=== Installation de Bumblebee avec Intel / Nvidia ===
{{important|Il ne faut pas installer {{pkg|nvidia-utils}} sous peine de casser votre système !}}
 
Vous aurez besoin de {{AUR|nvidia-bumblebee}} afin d'utiliser le pilote nVidia.
 
{{note|Il est possible d'utiliser {{AUR|dkms-nvidia}} pour les kernels 2.6.}}
 
  
=== Utiliser le pilote Nouveau ===
+
Installer {{pkg|mesa}}, {{pkg|xf86-video-intel}}, {{pkg|bumblebee}} et {{pkg|nvidia}} (le paquet nvidia installera {{pkg|nvidia-utils}} en dépendance).
Pour utiliser le pilote libre Nouveau, il faut installer la version Git de Bumblebee ainsi que les paquets suivants :
 
*{{pkg|xf86-video-nouveau}} : Pilote d'accélération 3D (Expérimental)
 
*{{pkg|nouveau-dri}} : Mesa DRI + Galium 3D
 
*{{pkg|mesa}} : Mesa 3D
 
  
== Configuration ==
+
pacman -S mesa xf86-video-intel bumblebee nvidia
  
Vous devez configurer un second serveur X, installer le pilote propriétaire, et démarrer le service Bumblebee.
+
{{Note|L’implémentation d'OpenCL pour Nvidia nécessite également l'installation du paquet {{pkg|opencl-nvidia}}.}}
  
=== Charger le module du moyau ===
+
{{tip|Pour lancer des applications 32 bits, telles que des jeux sous [[wine]], sur un système 64 bits vous aurez encore besoin d'ajouter {{pkg|lib32-nvidia-utils}} et {{pkg|lib32-mesa-libgl}} depuis le [[Depots|dépôt '''[multilib]''']].
 +
pacman -S lib32-nvidia-utils lib32-mesa-libgl
 +
}}
  
==== Pilote nVidia ====
+
{{Warning|Ne pas installer {{pkg|lib32-nvidia-libgl}} ! Bumblebee trouvera les bonnes bibliothèques.}}
  
Il faut dans un premier temps désactiver Nouveau.
+
=== Installation de Bumblebee avec Intel / Nouveau ===
rmmod nouveau
 
Ajouter ensuite une ligne au fichier {{filename|/etc/modprobe.d/modprobe.conf}} afin d'empêcher le chargement de Nouveau au démarrage.
 
  
{{File|name=/etc/modprobe.d/modprobe.conf|content=<nowiki>blacklist nouveau</nowiki>}}
+
*{{pkg|xf86-video-nouveau}} : Pilote d'accélération 3D (Expérimental)
 +
*{{pkg|nouveau-dri}} : Mesa DRI + Galium 3D
 +
*{{pkg|mesa}} : Mesa 3D
  
Charger le pilote nVidia :
+
  pacman -S mesa-dri xf86-video-intel bumblebee xf86-video-nouveau nouveau-dri mesa
  modprobe nvidia
 
  
Puis éditer {{filename|/etc/rc.conf}} afin de charger le pilote au démarrage.
+
== Configuration ==
  
{{File|name=/etc/rc.conf|content=<nowiki>[...]
+
Vous devez configurer un second serveur X, installer le pilote propriétaire, et démarrer le service Bumblebee.
MODULES=(... nvidia ...)
 
[...]</nowiki>}}
 
 
 
==== Pilote Nouveau ====
 
 
 
Assurez-vous de ne pas avoir blacklisté le pilote afin de ne pas rencontrer de problème lors de son chargement.
 
  
 
=== Ajouter les permissions ===
 
=== Ajouter les permissions ===
  
 
Pour pouvoir utiliser {{codeline|optirun}}, il est nécessaire d'ajouter les utilisateurs au groupe bumblebee :
 
Pour pouvoir utiliser {{codeline|optirun}}, il est nécessaire d'ajouter les utilisateurs au groupe bumblebee :
  usermod -a -G bumblebee <utilisateur>
+
  gpasswd -a <utilisateur> bumblebee
 
{{note|Remplacez {{codeline|<utilisateur>}} par votre login d'utilisateur.}}
 
{{note|Remplacez {{codeline|<utilisateur>}} par votre login d'utilisateur.}}
  
Ligne 67 : Ligne 56 :
  
 
Depuis le terminal :
 
Depuis le terminal :
 
+
systemctl start bumblebeed.service
{{rc|bumblebeed}}
 
  
 
Charger au démarrage :
 
Charger au démarrage :
 
+
systemctl enable bumblebeed.service
{{File|name=/etc/rc.conf|content=<nowiki>[...]
 
DAEMONS=(... @bumblebeed)
 
[...]</nowiki>}}
 
  
 
== Tester Bumblebee ==
 
== Tester Bumblebee ==
Ligne 84 : Ligne 69 :
  
 
{{Note|{{codeline|glxgears}} fait partie du paquet {{pkg|mesa-demos}}.}}
 
{{Note|{{codeline|glxgears}} fait partie du paquet {{pkg|mesa-demos}}.}}
 +
 +
 +
Si ''glxgears'' ne marche pas, essayez les commandes suivantes :
 +
*Si vous avez un système 64 bits :
 +
glxspheres64
 +
Puis :
 +
optirun glxspheres64
 +
Puis :
 +
optirun glxspheres64
 +
 +
{{Note|{{codeline|glxspheres64}} fait partie du paquet {{pkg|virtualgl}}.}}
  
 
== Utilisation ==
 
== Utilisation ==
Ligne 91 : Ligne 87 :
 
Pour voir les options propres à la commande optirun :
 
Pour voir les options propres à la commande optirun :
 
  optirun --help
 
  optirun --help
 +
 +
{{tip|Il est conseillé d'utiliser {{codeline|primusrun}} au détriment de {{codeline|optirun}} puisqu'elle offre de meilleures performances.}}
 +
 +
Usage :
 +
primusrun <application>
 +
Ou :
 +
optirun -b primus <application>
 +
{{Note|{{codeline|primusrun}} fait partie du paquet {{pkg|primus}}.}}
 +
{{Note|Si votre carte graphique Nvidia supporte CUDA alors il vous faut l'activer au moyen de Bumblebee pour profiter de cette dernière technologie.}}
 +
 +
== Nvidia Settings ==
 +
Pour avoir accès, avec Bumblebee , à Nvidia settings, utiliser cette commande:
 +
optirun nvidia-settings -c :8
  
 
==Gestion de l'énergie==
 
==Gestion de l'énergie==
Ligne 96 : Ligne 105 :
 
Le but de la gestion de l'énergie est d'éteindre la carte graphique lorsqu'elle n'est pas utilisée et l'allumer à nouveau lorsque c'est nécessaire. Actuellement, passer d'une carte à l'autre n'est pas géré automatiquement.
 
Le but de la gestion de l'énergie est d'éteindre la carte graphique lorsqu'elle n'est pas utilisée et l'allumer à nouveau lorsque c'est nécessaire. Actuellement, passer d'une carte à l'autre n'est pas géré automatiquement.
  
Pour activer la gestion de l'énergie, assurez-vous que vous avez bien installé {{AUR|bbswitch}} ou {{AUR|bbswitch-git}} et que le module est chargé au démarrage :
+
Pour activer la gestion de l'énergie, assurez-vous que vous avez bien installé {{pkg|bbswitch}} ou {{AUR|bbswitch-git}} et que [[Kernel_modules#Chargement|le module est chargé au démarrage]].
 +
{{note|Il est possible d'utiliser {{AUR|bbswitch-dkms}} pour éviter de devoir recompiler le module à chaque mise à jour du kernel.}}
  
{{note|Il est possible d'utiliser {{AUR|dkms-bbswitch}} pour éviter de devoir recompiler le module à chaque mise à jour du kernel.}}
+
Pour économiser un maximum d'énergie en activant la carte Nvidia que lorsqu'en on a besoin, vous pouvez créer le fichier '''/etc/modprobe.d/bbswitch.conf''' :
  
{{File|name=/etc/rc.conf|content=<nowiki>[...]
+
{{File|name=/etc/modprobe.d/bbswitch.conf|content=<nowiki>
MODULES=(... bbswitch ...)
+
options bbswitch load_state=0 unload_state=0
[...]</nowiki>}}
+
</nowiki>}}
  
 
Maintenant dans le fichier {{filename|/etc/bumblebee/bumblebee.conf}} modifier les options :
 
Maintenant dans le fichier {{filename|/etc/bumblebee/bumblebee.conf}} modifier les options :
Ligne 119 : Ligne 129 :
 
Redémarrez maintenant le daemon depuis le terminal :
 
Redémarrez maintenant le daemon depuis le terminal :
  
{{rc|bumblebeed|restart}}
+
systemctl restart bumblebeed.service
 +
 
 +
Il est maintenant possible de tester l'activation automatique de la carte Nvidia :
 +
 
 +
$ cat /proc/acpi/bbswitch
 +
0000:01:00.0 OFF
 +
$ optirun glxgears > /dev/null &
 +
$ cat /proc/acpi/bbswitch
 +
0000:01:00.0 ON
 +
# Après avoir fermé la fenêtre de glxgears
 +
$ cat /proc/acpi/bbswitch
 +
0000:01:00.0 OFF
 +
 
 +
==Problèmes==
 +
 
 +
===La carte secondaire ne peut pas être activée===
 +
Si vous obtenez une erreur ressemblant à ceci :
 +
[ERROR]Cannot access secondary GPU - error: Could not enable discrete graphics card
 +
Il est possible que cela soit dû à un paramètre de gestion de l'énergie qui empêche la carte de s'activer, via tlp ou laptop-mode-tools. Pour permettre l'activation de la carte, obtenir l'ID de celle-ci via la commande suivante :
 +
lspci | grep "NVIDIA" | cut -b -8C
 +
Puis copier cet ID dans la liste noire runtime-pm de tlp ou laptop-mode-tools avec un éditeur de texte comme nano ou vim.
 +
 
 +
Pour tlp, se rendre dans "'''/etc/default/tlp'''" et ajouter ou modifier la ligne RUNTIME_PM_BLACKLIST="ID-de-la-carte"
 +
 
 +
Pour laptop-mode-tools, se rendre dans "'''/etc/laptop-mode/conf.d/runtime-pm.conf'''" et modifier la ligne AUTOSUSPEND_RUNTIME_DEVID_BLACKLIST="ID-de-la-carte"
 +
 
 +
'''Si le problème persiste''', alors c'est que le noyau ne détecte pas la carte nvidia et il est très probable que cela soit dû à [https://wiki.archlinux.org/index.php/NVIDIA/Troubleshooting#Modprobe_Error:_%22Could_not_insert_'nvidia':_No_such_device%22_on_linux_%3E=4.8 ce problème]. Pour y remédier, il faut passer au noyau le paramètre "'''pcie_port_pm=off'''".
  
 
== Voir Aussi ==
 
== Voir Aussi ==
* [https://github.com/MrMEEE/bumblebee Martin Juhl's GitHub repository] '''(en)'''
+
* [http://www.bumblebee-project.org/ Project Website] '''(en)'''
 +
* [https://github.com/Bumblebee-Project/Bumblebee ArchangeGabriel's GitHub Repository] '''(en)'''
 
* [http://linux-hybrid-graphics.blogspot.com/ Linux Hybrid Graphics] '''(en)'''
 
* [http://linux-hybrid-graphics.blogspot.com/ Linux Hybrid Graphics] '''(en)'''
  
 
[[Category:Matériel]]
 
[[Category:Matériel]]
 
[[Category:Xorg]]
 
[[Category:Xorg]]

Version actuelle datée du 27 avril 2020 à 21:24

Attention : Bumblebee est en cours de développement, il est possible que vous rencontriez un certain nombre de bogues. Reportez les bogues sur la page GitHub de Bumblebee.

Bumblebee est une solution pour la technologie Nvidia Optimus permettant d'exploiter la carte graphique dédiée.

À propos de Bumblebee

La technologie Nvidia Optimus optimise automatiquement votre ordinateur portable, en permettant des performances graphiques remarquables, tout en améliorant l’autonomie de votre batterie pour que votre plaisir dure plus longtemps. [...]

Bumblebee est un script d'installation basé sur VirtualGL pour être en mesure d'utiliser le GPU dédié, qui n'est physiquement pas connecté à l'écran.

Note : La carte gérée par bumblebee intervient en seconde carte, pensez aussi à installer le pilote pour la carte intel Intel pour, dans un 1er temps avoir un affichage graphique.

Installation

Depuis début avril Bumblebee est dans le dépot [community]:

  • bumblebee : Version stable du paquet. Utilise par défaut le Pilote nVidia.

Autre version disponible depuis AUR:

Pour lancer des applications 32-bit sur un système 64-bit, il faut également installer le paquet lib32-nvidia-utils (le dépôt [multilib] doit être activé).

Pour ajouter la fonctionalité de gestion de l'énergie, vous avez besoin d'installer bbswitch depuis [community].

Installation de Bumblebee avec Intel / Nvidia

Installer mesa, xf86-video-intel, bumblebee et nvidia (le paquet nvidia installera nvidia-utils en dépendance).

pacman -S mesa xf86-video-intel bumblebee nvidia
Note : L’implémentation d'OpenCL pour Nvidia nécessite également l'installation du paquet opencl-nvidia.
Astuce : Pour lancer des applications 32 bits, telles que des jeux sous wine, sur un système 64 bits vous aurez encore besoin d'ajouter lib32-nvidia-utils et lib32-mesa-libgl depuis le dépôt [multilib].
pacman -S lib32-nvidia-utils lib32-mesa-libgl
Attention : Ne pas installer lib32-nvidia-libgl ! Bumblebee trouvera les bonnes bibliothèques.

Installation de Bumblebee avec Intel / Nouveau

pacman -S mesa-dri xf86-video-intel bumblebee xf86-video-nouveau nouveau-dri mesa

Configuration

Vous devez configurer un second serveur X, installer le pilote propriétaire, et démarrer le service Bumblebee.

Ajouter les permissions

Pour pouvoir utiliser optirun, il est nécessaire d'ajouter les utilisateurs au groupe bumblebee :

gpasswd -a <utilisateur> bumblebee
Note : Remplacez <utilisateur> par votre login d'utilisateur.

Lancer le service Bumblebee

Depuis le terminal :

systemctl start bumblebeed.service

Charger au démarrage :

systemctl enable bumblebeed.service

Tester Bumblebee

Vous pouvez tester Bumblebee en comparant ces deux commandes :

glxgears

Puis :

optirun glxgears
Note : glxgears fait partie du paquet mesa-demos.


Si glxgears ne marche pas, essayez les commandes suivantes :

  • Si vous avez un système 64 bits :
glxspheres64 

Puis :

optirun glxspheres64 

Puis :

optirun glxspheres64
Note : glxspheres64 fait partie du paquet virtualgl.

Utilisation

Pour lancer un programme en utilisant la carte graphique dédiée :

optirun <application>

Pour voir les options propres à la commande optirun :

optirun --help
Astuce : Il est conseillé d'utiliser primusrun au détriment de optirun puisqu'elle offre de meilleures performances.

Usage :

primusrun <application>

Ou :

optirun -b primus <application>
Note : primusrun fait partie du paquet primus.
Note : Si votre carte graphique Nvidia supporte CUDA alors il vous faut l'activer au moyen de Bumblebee pour profiter de cette dernière technologie.

Nvidia Settings

Pour avoir accès, avec Bumblebee , à Nvidia settings, utiliser cette commande:

optirun nvidia-settings -c :8

Gestion de l'énergie

Le but de la gestion de l'énergie est d'éteindre la carte graphique lorsqu'elle n'est pas utilisée et l'allumer à nouveau lorsque c'est nécessaire. Actuellement, passer d'une carte à l'autre n'est pas géré automatiquement.

Pour activer la gestion de l'énergie, assurez-vous que vous avez bien installé bbswitch ou bbswitch-git et que le module est chargé au démarrage.

Note : Il est possible d'utiliser bbswitch-dkms pour éviter de devoir recompiler le module à chaque mise à jour du kernel.

Pour économiser un maximum d'énergie en activant la carte Nvidia que lorsqu'en on a besoin, vous pouvez créer le fichier /etc/modprobe.d/bbswitch.conf :

Fichier: /etc/modprobe.d/bbswitch.conf
options bbswitch load_state=0 unload_state=0

Maintenant dans le fichier /etc/bumblebee/bumblebee.conf modifier les options :

Fichier: /etc/bumblebee/bumblebee.conf
[...]
[bumblebeed]
KeepUnusedXServer=false
...
[driver-nvidia]
PMMethod=bbswitch
...
[driver-nouveau]
PMMethod=bbswitch
[...]

Redémarrez maintenant le daemon depuis le terminal :

systemctl restart bumblebeed.service

Il est maintenant possible de tester l'activation automatique de la carte Nvidia :

$ cat /proc/acpi/bbswitch 
0000:01:00.0 OFF
$ optirun glxgears > /dev/null &
$ cat /proc/acpi/bbswitch
0000:01:00.0 ON
# Après avoir fermé la fenêtre de glxgears
$ cat /proc/acpi/bbswitch
0000:01:00.0 OFF

Problèmes

La carte secondaire ne peut pas être activée

Si vous obtenez une erreur ressemblant à ceci :

[ERROR]Cannot access secondary GPU - error: Could not enable discrete graphics card

Il est possible que cela soit dû à un paramètre de gestion de l'énergie qui empêche la carte de s'activer, via tlp ou laptop-mode-tools. Pour permettre l'activation de la carte, obtenir l'ID de celle-ci via la commande suivante :

lspci | grep "NVIDIA" | cut -b -8C

Puis copier cet ID dans la liste noire runtime-pm de tlp ou laptop-mode-tools avec un éditeur de texte comme nano ou vim.

Pour tlp, se rendre dans "/etc/default/tlp" et ajouter ou modifier la ligne RUNTIME_PM_BLACKLIST="ID-de-la-carte"

Pour laptop-mode-tools, se rendre dans "/etc/laptop-mode/conf.d/runtime-pm.conf" et modifier la ligne AUTOSUSPEND_RUNTIME_DEVID_BLACKLIST="ID-de-la-carte"

Si le problème persiste, alors c'est que le noyau ne détecte pas la carte nvidia et il est très probable que cela soit dû à ce problème. Pour y remédier, il faut passer au noyau le paramètre "pcie_port_pm=off".

Voir Aussi