Gentoo : Installer Bumblebee pour les cartes NVidia Optimus
Table des matières
Une carte Optimus est une carte NVidia Hybride, couplée avec une puce intégrée Intel.
Le but de cette techno est d'améliorer l'autonomie d'un portable, et n'est présente que dans ceux-ci.
Sous Windows, c'est :
Ainsi, le PC, quand il n'a pas besoin de puissance graphique, on ne tourne que sur Intel.
Unn projet libre, nommé bumblebee est né pour pallier à ce problème, d'utiliser un fichier Xorg.nvidia pour lancer une application avec le pilote NVidia.
Mais avec seulement bumblebee installé, les deux cartes graphiques fonctionnent toujours. Même lorsque la NVidia n'est pas sollicitée.
En parallèle de bumblebee, on a bbswitch qui permet justement de couper l'alimentation de la carte NVidia lorsqu'aucune application 'optirun' n'est exécutée. (Optirun étant la commande permettant d'exécuter une application avec la carte graphique NVidia).
Ces deux logiciels (bumblebee et bbswith) fonctionnent en duo, avec le pilote NVidia installé à côté pour "reproduire" la technologie incluse dans le driver NVidia.
Sans bumblebee et bbswitch => Autonomie de 1h30 avec la batterie.
Sans les mêmes conditions avec bumblebee + bbswitch => Autonomie de 4h30 avec la batterie sans qu'aucune application 3D ne tourne avec la commande 'optirun'.
Dans un premier temps, on regarde ce dont bumblebee à besoin :
La réponse est semblable à ceci :
Il faut recompiler xorg-drivers avec le FLAG video_cards_nvidia, et bon nombre de paquets sont archtildés.
On complète les fichiers nécessaires pour l'installation de Bumblebee :
On teste à nouveau l'installation de bumblebee :
Maintenant, tout doit être bon :
Tout semble OK, alors on démarre l'installation :
Maintenant que bumblebee est installé, il ne faut pas oublier de lancer le service au démarrage du système :
Aussi, pour que les utilisateurs puissent utiliser bumblebee, ils doivent faire partie du groupe bumblebee :
Il se peut qu'en cas de mise à jour ou recompilation kernel, le service bumblebee ne trouve plus la carte NVidia.
Dans ce cas, il suffit de recompiler les modules :
Il se peut que les jeux lancés sous Wine avec la commande optirun ne veule pas de l'accélération graphique.
Il faut donc recompiler virtualgl avec le flag32 :
Ci besoin, modifier le /etc/make.conf
Introduction
Présentation
Une carte Optimus est une carte NVidia Hybride, couplée avec une puce intégrée Intel.
Le but de cette techno est d'améliorer l'autonomie d'un portable, et n'est présente que dans ceux-ci.
Le principe
Sous Windows, c'est :
- On tourne sur le chipset intégré Intel. Le pilote NVidia éteint la NVidia.
- Quand il y a de la demande de 3D, le pilote NVidia active celle-ci, et l’application utilise la NVidia.
- Quand l'application est fermée, la carte NVidia est de nouveau éteinte.
Ainsi, le PC, quand il n'a pas besoin de puissance graphique, on ne tourne que sur Intel.
L'histoire de Bumblebee
Unn projet libre, nommé bumblebee est né pour pallier à ce problème, d'utiliser un fichier Xorg.nvidia pour lancer une application avec le pilote NVidia.
Mais avec seulement bumblebee installé, les deux cartes graphiques fonctionnent toujours. Même lorsque la NVidia n'est pas sollicitée.
En parallèle de bumblebee, on a bbswitch qui permet justement de couper l'alimentation de la carte NVidia lorsqu'aucune application 'optirun' n'est exécutée. (Optirun étant la commande permettant d'exécuter une application avec la carte graphique NVidia).
Ces deux logiciels (bumblebee et bbswith) fonctionnent en duo, avec le pilote NVidia installé à côté pour "reproduire" la technologie incluse dans le driver NVidia.
Sans bumblebee et bbswitch => Autonomie de 1h30 avec la batterie.
Sans les mêmes conditions avec bumblebee + bbswitch => Autonomie de 4h30 avec la batterie sans qu'aucune application 3D ne tourne avec la commande 'optirun'.
Installation
Dans un premier temps, on regarde ce dont bumblebee à besoin :
Code BASH :
emerge -p bumblebee
La réponse est semblable à ceci :
Code BASH :
Calculating dependencies... done! [ebuild N ] dev-libs/libbsd-0.4.2 USE="-static-libs" [ebuild N ] app-admin/eselect-opencl-1.1.0-r1 [ebuild N ~] x11-misc/virtualgl-2.3.2-r2 USE="ssl" ABI_X86="(64) -32 (-x32)" [ebuild R ] x11-base/xorg-drivers-1.13 VIDEO_CARDS="nvidia*" [ebuild N ] x11-drivers/nvidia-drivers-319.17 USE="X acpi (multilib) tools -pax_kernel" [ebuild N ~] sys-power/bbswitch-0.6 [ebuild N ~] x11-misc/bumblebee-3.2.1 USE="bbswitch" VIDEO_CARDS="nouveau nvidia" The following keyword changes are necessary to proceed: (see "package.accept_keywords" in the portage(5) man page for more details) # required by bumblebee (argument) =x11-misc/bumblebee-3.2.1 ~amd64 # required by x11-misc/bumblebee-3.2.1[bbswitch] # required by bumblebee (argument) =sys-power/bbswitch-0.6 ~amd64 # required by x11-misc/bumblebee-3.2.1 # required by bumblebee (argument) =x11-misc/virtualgl-2.3.2-r2 ~amd64 The following USE changes are necessary to proceed: (see "package.use" in the portage(5) man page for more details) # required by x11-misc/bumblebee-3.2.1 # required by bumblebee (argument) =x11-base/xorg-drivers-1.13 video_cards_nvidia
Il faut recompiler xorg-drivers avec le FLAG video_cards_nvidia, et bon nombre de paquets sont archtildés.
On complète les fichiers nécessaires pour l'installation de Bumblebee :
Code BASH :
echo "x11-misc/bumblebee ~amd64 #Carte Optimus" >> /etc/portage/package.keywords/custom echo "sys-power/bbswitch ~amd64 #Carte Optimus" >> /etc/portage/package.keywords/custom echo "x11-misc/virtualgl ~amd64 #Carte Optimus" >> /etc/portage/package.keywords/custom echo "x11-base/xorg-drivers video_cards_nvidia #Carte Optimus" >> /etc/portage/package.use/custom
On teste à nouveau l'installation de bumblebee :
Code BASH :
emerge -p bumblebee
Maintenant, tout doit être bon :
Code BASH :
These are the packages that would be merged, in order: Calculating dependencies... done! [ebuild N ] dev-libs/libbsd-0.4.2 USE="-static-libs" [ebuild N ] app-admin/eselect-opencl-1.1.0-r1 [ebuild N ~] x11-misc/virtualgl-2.3.2-r2 USE="ssl" ABI_X86="(64) -32 (-x32)" [ebuild R ] x11-base/xorg-drivers-1.13 VIDEO_CARDS="nvidia*" [ebuild N ] x11-drivers/nvidia-drivers-319.17 USE="X acpi (multilib) tools -pax_kernel" [ebuild N ~] sys-power/bbswitch-0.6 [ebuild N ~] x11-misc/bumblebee-3.2.1 USE="bbswitch" VIDEO_CARDS="nouveau nvidia"
Tout semble OK, alors on démarre l'installation :
Code BASH :
emerge -qv bumblebee
Post-Configuration
Maintenant que bumblebee est installé, il ne faut pas oublier de lancer le service au démarrage du système :
Code BASH :
rc-update add bumblebee default
Aussi, pour que les utilisateurs puissent utiliser bumblebee, ils doivent faire partie du groupe bumblebee :
Code BASH :
usermod -G bumblebee -a <user>
Problèmes connus
Bumblebee ne fonctionne plus suite à une mise à jour kernel ou recompilation de celui-ci
Il se peut qu'en cas de mise à jour ou recompilation kernel, le service bumblebee ne trouve plus la carte NVidia.
Dans ce cas, il suffit de recompiler les modules :
Code BASH :
module-rebuild -X rebuild
Wine ne veut pas utiliser le pilote NVidia
Il se peut que les jeux lancés sous Wine avec la commande optirun ne veule pas de l'accélération graphique.
Il faut donc recompiler virtualgl avec le flag32 :
Code BASH :
ABI_X86="64 32" emerge -qv virtualgl
Ci besoin, modifier le /etc/make.conf
Code BASH :
echo "ABI_X86=\"64 32\" #Carte Optimus" >> /etc/make.conf