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 :
=>
(install bumblebee + bbswitch + nvidia-drivers + virtualgl)
Si pbs avec WIne :
ABI_X86="64 32" emerge -qv virtualgl
faire
module-rebuild -X rebuild
en cas de rebuild noyau
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
=>
(install bumblebee + bbswitch + nvidia-drivers + virtualgl)
Si pbs avec WIne :
ABI_X86="64 32" emerge -qv virtualgl
faire
module-rebuild -X rebuild
en cas de rebuild noyau