by Haruka :: 2012/02/13 :: 5 min read
#nvidia

Utiliser NVIDIA Optimus sous Linux grâce à Bumblebee (MAJ)


MAJ 08.12.2012 : Bumblebee a été mis à jour et permet désormais de lancer Steam avec la commande optirun, il est aussi possible d’utiliser les pilotes beta Nvidia 310, qui intègrent les optimisations de Valve et doubles les performances sous Linux. Pour une installation et configuration des drivers Nvidia 310, cliquer ici.


NVIDIA Optimus, le principe

Optimus est une technologie dédiée aux netbooks et mise au point par NVIDIA. Elle permet de bénéficier d’une carte graphique puissante sans pour autant réduire considérablement la batterie de l’ordinateur. Le principe est simple : le netbook est équipé de deux GPU physiquements liés : un Intel et un NVIDIA. Optimus est capable de passer de l’un à l’autre de manière totalement transparente pour l’utilisateur. En utilisation classique (burautique, Internet, etc) la puce NVIDIA n’est pas sollicité. La carte est même éteinte ! Au lancement d’un jeux par exemple le système d’exploitation passe automatiquement sur le GPU NVIDIA. Simple, non ? L’avantage premier est d’améliorer considérablement l’autonomie de l’ordinateur en utilisation classique.

NVIDIA Optimus logo

Le problème pour nous Linuxien est que X.Org (le moteur graphique de Linux) ne sait pas gérer la technologie Optimus. Aucun développement n’est prévue du coté de la Fondation X.Org qui devrait revoir en profondeur le code source pour y intégrer Optimus. Un développement qui ne pourrait pas arriver avant quelques années.

Présentation de Bumblebee

Heureusement depuis mai 2011 un projet sous licence GPL a été lancé avec la volonté d’apporter une solution à la gestion de NVIDIA Optimus sous Linux. Il s’agit du projet Bumblebee dont la version 3 est sortie le 19 janvier 2012.

Bumblebee logo

Bumblebee essai d’imiter le fonctionnement d’Optimus. La carte NVIDIA est gérée via un serveur X séparé et connecté à un “fake screen” (il est configuré dans X.Org mais pas utilisé). Ce second serveur utilise VirtualGL comme si c’était un serveur distant. Bumblebee peut faire appel a ce second serveur et est capable d’éteindre physiquement la carte NVIDIA.

Installation de Bumblebee

Ubuntu

Il suffit d’ajouter le ppa et les paquets comme ci-dessous :


sudo add-apt-repository ppa:bumblebee/stable
sudo apt-get update
sudo apt-get install bumblebee bumblebee-nvidia

Debian

La procédure est un peut plus complexe mais est détaillé ici

Arch Linux

Les paquets sont disponibles dans AUR.


yaourt -S bumblebee

On ajoute l’utilisateur courant au groupe “bumblebee” (droits root nécessaires)


usermod -a -G bumblebee $USER

$USER est une variable d’environnement qui contient le nom de l’utilisateur de la session courante (echo $USER)

Ensuite il faut redémarrer ou se reconnecter. Vous pourrez alors bénéficier des effets de votre bureau GNOME, Unity ou KDE (installez “compiz-settings-manager”

Utiliser Bumblebee

Lancer une application avec la carte NVIDIA grâce à la commande “optirun”, syntaxe :


optirun [options]  [application-parameters]

Exemple :


optirun supertux

Pour comparer les deux cartes (Intel et NVIDIA) on peut utiliser l’outil glxspheres :


glxspheres
optirun glxspheres

Laissez tourner quelques secondes puis fermez la fenêtre et comparer les chiffres dans le terminal. Ceux de la commande lancé avec optirun doivent être plus grand.

Conclusion

Sur mon Asus et grâce à Bumblebee j’ai gagné 2h d’autonomie de batterie (passant de 5h à 7h). J’ai pu retrouver les effets de bureaux sous Ubuntu avec Unity 3D. En revanche j’ai des problèmes pour utiliser “optirun” qui pousse X.Org à 100% de mon CPU et qui se termine par une erreur. Mais finalement je me passe complètement de ma carte NVIDIA sous Linux.

Pour ceux qui souhaites utiliser leur port HDMI malheureusement Bumblebee ne le permet pas. Mais c’est en cours de développement par les contributeurs du projet.

Troubleshooting :

https://github.com/Bumblebee-Project/Bumblebee/wiki/Troubleshooting

Sources :

wiki officiel : https://github.com/Bumblebee-Project/Bumblebee/wiki/Install-and-usage

wiki de configuration (pas nécessaire pour une utilisation standart) : https://github.com/Bumblebee-Project/Bumblebee/wiki/Configuration

wiki ubuntu : https://wiki.ubuntu.com/Bumblebee

wiki archlinux : http://wiki.archlinux.fr/Bumblebee

Nvidia Optimus : http://www.nvidia.fr/object/optimus_technology_fr.html