Utiliser Gentoo et Calculate Linux

Gentoo : Installer Bumblebee pour les cartes NVidia Optimus

Cet article a été mis à jour, vous consultez ici une archive de cet article!
Table des matières

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.



Sous Linux, les 2 cartes sont allumées mais seule le chipset graphique Intel est utilisé, puisque pas de pilote NVidia compatible.

Donc, même si on ne fait rien, l'autonomie est réduite.




Si on s'amuse à installer les pilotes NVidia, en forçant Xorg à utiliser la NVidia, cela ne fonctionnera pas! (A l'heure d'aujourd'hui avec les drivers 319 et le kernel 3.9.2)





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'.



Même si on se fiche de l'autonomie, il n'est pas possible de désactiver dans le BIOS la puce graphique Intel pour ne fonctionner qu'avec la carte NVidia.



Installation





Dans un premier temps, on regarde ce dont bumblebee à besoin :



Code BASH :
emerge -p bumblebee
 
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
 
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