Nvidia Optimus, ça rocks sous GNU/Linux grâce à Bumblebee

closeCet article a été publié il y a 12 ans 9 mois 11 jours, il est donc possible qu’il ne soit plus à jour. Les informations proposées sont donc peut-être expirées.

Un titre d’article en forme de Hourra, puisque j’ai enfin pu faire marcher ma carte Nvidia et ne pas me contenter du processeur graphique intégré dans l’Intel icore 3. Cerise sur le gâteau, les performances graphiques sont meilleures sous Fedora que Windows.

Bumblebee la solution

Souvenez-vous, tout avait commencé par  un pari fou (idiot ?) consistant à acheter un ordinateur portable dont la compatibilité matérielle n’était pas assurée à 100% avec mes distributions GNU/Linux. Tout ce que l’on vous dit qu’il ne faut pas faire. Pour ceux qui veulent en savoir plus sur la technologie Optimus de Nvidia je vous renvoie à cet article paru en février 2010. Nous ne sommes quand même pas non plus en train de parler d’une nouveauté technologique récente…

Vous trouverez tout le nécessaire et les explications sur le site de cette solution dénommée Bumblebee. Oui comme le robot des Transfomers, les développeurs de logiciels libres ont su rester de grands enfants 🙂 .

L’installation est réalisée par un script qui se charge d’installer le nécessaire en fonction de votre distribution. Pour l’instant, seul Ubuntu, Linux Mint, OpenSuSE et Fedora sont pris en charge. Il vous installe quelques packages supplémentaires dont VirtualGL et la dernière version du pilote propriétaire de Nvidia.

Bumblebee permet « seulement » de lancer un programme en forçant l’utilisation de la carte Nvidia. Le reste des applications continuant à utiliser le processeur graphique Intel. En ce qui me concerne, cela répond à mon besoin.

Quand les développeurs vous viennent en aide

J’avais réalisé un premier test avant ma migration sur la version 15 de ma Fedora et à l’époque cela ne fonctionnait pas. J’avais remis mes tests et recherches à plus tard en espérant que le passage à Fedora 15 réglerait le souci. Or là aussi pas mieux.

J’ai donc soumis un rapport de bug en suivant la procédure décrite à l’aide de l’utilitaire ad hoc fourni avec Bumblebee : bumblebee-bugreport . Il vous génère un fichier compressé contenant les informations sur votre configuration qu’il vous suffit d’envoyer par email en doublant cela d’une déclaration de bug.

Je recevais une réponse dans les heures qui suivirent ou presque me demandant de télécharger une nouvelle version de Bumblebee et de tester. Et là ça  marche ! Un grand merci aux developpeurs de Bumblebee

Et ça marche bien

Le test classique consiste à lancer un utilitaire nommé glxgears qui affiche un engrenage en trois dimensions et vous donne le nombre d’images générées par seconde. Avec la carte graphique Intel j’obtiens environ 53 images par secondes. En lançant la commande optirun32 (ou optirun64 selon que vous utilisez un programme en 32 ou 64 bits) je passe à plus de 360 images par seconde soit environ sept fois plus.

Il me restait à tester cela avec un vrai programme comme PhoenixViewer qui est un logiciel libre utilisé avec les simulateurs d’univers virtuels comme le service Second Life ou le logiciel sous licence BSD OpenSimulator. PhoenixViewer s’installe sur le poste de l’utilisateur et se charge du rendu en trois dimensions, la puissance de la carte graphique est donc primordiale.

Les tests avec et sans Bumblebee sont sans appel. En activant le rendu à un niveau quasi maximum, j’atteins 2 à 3 images par seconde avec la carte Intel. Avec la carte Nvidia, je monte à prés de 15 à 17 images par seconde.

PhoenixViewer fonctionne également sous Windows Seven, j’ai donc voulu voir s’il y avait une différence. Et là surprise les résultats sont moins bons. J’ai forcé l’utilisation de la carte Nvidia avec le client PhoenixViewer pour être certain de bien l’utiliser, car sous Windows la bascule est automatique en principe. Je constate que le rendu s’effectue entre 8 et 10 images par seconde avec la même configuration de de rendu que sous Fedora.

Je n’ai pas trop d’explication sur cet écart entre Fedora et Windows Seven, je ferais probablement quelques tests complémentaires. Mais encore une fois cela confirme le bon fonctionnement de Bumblebee.

Crédit image : certains droits réservés par gadgetdude

Philippe Scoffoni

Je barbote dans la mare informatique depuis 30 ans (premier ordinateur à 16 ans, un ORIC ATMOS) et je travaille à mon compte au travers de ma société Open-DSI. J'accompagne les associations, TPE et PME dans leurs choix et dans la mise en oeuvre se solutions informatiques libres.

20 réponses

  1. Julien dit :

    Salut Philippe
    Content que va marche pour toi 🙂
    De mon côté sous Debian ca fonctionne bizarrement.
    J ai lache l affaire et revendu la machine !!
    Je teste la nouvelle plateforme brazos d AMD.

  2. David dit :

    J’ai un PC qui à Nvidia, et avec ce dernier j’avoue que je me sers de ses pilotes proprio.
    Ça marche nickel, par contre à chaque changement de noyau, je dois réinstaller le pilote.
    Quand est-il avec Bumblebee ?

  3. David dit :

    s/quand/qu’en désolé :/

  4. Philippe dit :

    @Julien, tu me raconteras 😉
    @David, je ne sais pas encore. Il est probable que je sois aussi obligé de réinstaller le pilote

  5. bonob0h dit :

    @llez encore quelques effort et on va y arriver 😉

    Il n’y a pas des réglages de la carte dans Bumblebee comme par exemple dans nvidia sous windows ou tu choisis si tu veux un rendu rapide ou de qualité, etc ?

  6. Trim dit :

    @David Le problème de devoir réinstaller à chaque fois le driver proprio pour chaque nouveau noyau ne dépend aucunenement de bumblebee. En effet, tu auras peut-être remarqué que pour installer les pilotes proprios de nvidia, il est nécessaire d’avoir les headers du noyau et les compilateurs corrects par rapport au noyau (la bonne version de gcc), car l’installateur compile certaines librairies directement pour la version actuellement utilisée du noyau.
    En tous cas, tu peux très facilement le remarquer sous Debian quand tu fais une installation manuelle (je ne sais plus s’il existe une installation automatique sous Debian, comme sous Ubuntu).

    Si j’ai bien compris finalement, c’est que certaines librairies pour le driver proprio sont directements compilés sur ta propre machine, alors que Bumblebee est « simplement » une sorte de surcouche qui te permets d’utiliser correctement Optimus en adéquation avec les serveurs/clients Xorg. Il faut comprendre dans ce message, que Bumblebee ne recrée pas les drivers proprios, mais les utilise. Il sera donc toujours nécessaire de suivre la même procédure d’installation de driver proprio et de mise-à-jour noyau avec driver proprio (ce qui n’est pas utile d’ailleurs, avec le driver libre « nouveau »).

  7. David dit :

    Merci pour toutes ces infos.

    Ton message est assez étonnant, car, j’ai justement partitionné mon Kubuntu, pour y installer une debian (bureau KDE) en liveCD (pour répondre à ta question ;))

    J’ai eu d’ailleurs un souci : perte de signal vidéo, que j’ai pu arranger en modifiant le grub, je ne vais pas réinventer la roue, j’explique tout là : http://www.debian-fr.org/ma-1ere-installation-debian-mode-desktop-kde-en-livecd-t33790.html

    Ça fonctionne nickel sans le pilote proprio du coup, pas eu le temps de faire un comparatif. Je tenterai demain, car là je ne suis pas sur mon PC fixe, mais sur le kubuntu du portable de ma femme 😛

  8. Philippe dit :

    @bonob0h non c’est à fond à fond à fond ou pas du tout 🙂

  9. David dit :

    Oui, bon c’est vrai qu’avec le libre de la carte nvidia, je ne peux pas dire pour le moment que ce soit plus performant.
    D’ailleurs, je ne sais pas si c’est lié, mais Kaffeine et notamment le processus kaffeine-xul use grave le CPU, alors qu’avant, rien, nickel le calme plat. Idem pour le bureau en 3D avec kwine (compiz pour les gnomiens) qui ne fonctionne pas génial du coup, voir pas du tout.

  10. Philippe dit :

    @David : Coté performances les pilotes libre ne sont pas au niveau des proprio c’est clair.

  11. Trim dit :

    Hello!

    N’ayant pas encore reçu mon nouveau Lenovo T420-s, je me suis amusé à lire le README de Bumblebee (j’avoue que je ne le fais presque jamais, mea culpa 🙂 ) et j’ai eu la surprise de lire ces lignes :

    « So now we just need somebody to write an application for automatically
    balance which applications should be run on which card..  »
    Cette ligne ne m’a pas trop surpris, mais je trouverai bien que l’on garde la possibilité de pouvoir aussi choisir soi-même s’il faut activer ou non la carte NVidia (à mon avis, il serait bien d’avoir la gestion automatique pour tout le monde tout en gardant la gestion manuelle pour une gestion plus fine de ses ressources).

    Mais ce qui m’a vraiment étonné est celle-ci :

    « Support for automatically shutting down and starting up the nVidia card has
    been added in version 1.4.20 for Ubuntu. Other distributions are in
    progress. »

    Au vu de ce que j’avais suivi du projet, je ne penserai pas que ça serait possible d’activer/désactiver automatiquement la carte NVidia et ça c’est une très bonne nouvelle pour nos petites batteries 🙂

  12. Philippe dit :

    @Trim : c’était possible depuis pas mal de temps via les ACPI http://asusm51ta-with-linux.blogspot.com/ C’est ce qu’à implémenter bumblebee il me semble

  13. Berillions dit :

    Salut Phillipe,

    Petite question entre Optimus et Bumblebee.
    Est-il possible d’installer les drivers Nvidia propriétaire et d’utiliser bumblebee ?

    Sachant que si on installe les drivers proprio, on arrive sur un écran noir si l’on a une carte utilisant Optimus.

  14. Philippe dit :

    @Berillions Il ne faut pas notamment sous Ubuntu qui le propose installer les drivers nVidia propriétaire au risque d’avoir le fameux écran noir dont tu parles.
    Il faut laisser le script d’installation de bumblebee s’en charger car il ne l’activera pas.
    C’est le rôle de bumbleblee et de la bibliothéque virtuaGL de le faire via la commande optirun de bumblebee et uniquement pour le programme concerné. Il n’y a donc pas de risque d’écran noir.

  15. berillions dit :

    C’est donc Bumblebee qui s’occupe de l’installation des drivers proprio…
    J’hésite à me racheter un PC portable avec une carte graphique plus puissante. (J’ai une Gt330M)

    Exemple pour wine, ce serait un truc du genre :
    optirun(32/64) wine blabla

  16. Philippe dit :

    Tout à fait. Je n’ai pas fait d’essai avec Wine cependant. Pour ce qui est des portables avec carte graphique si l’autonomie n’est pas ton soucis premier, essaie de choisir une machine dotée d’une architecture classique (processeur + carte graphique séparée), ce sera plus simple 😉

  17. Eric dit :

    Question débile de la part d’un possesseur d’un Dell M6600 flambant neuf (je ne l’ai pas sélectionné pour sa carte graphique en priorité, mais il se trouve qu’elle est là).

    On peut désactiver Optimus au niveau du BIOS si on veut utiliser les drivers nVidia. Dans ce cas le GPU nVidia est-il bien aux commandes pour ce qui est du graphique ? En d’autres termes, est-ce que cette configuration permet de bénéficier de la pleine puissance du GPU nVidia (avec les drivers propriétaires bien entendu) ?

    J’ai bien conscience que désactiver Optimus signifie consommer un maximum, mais les batteries ne me servent que pour étaler les micro-coupures du secteur par temps d’orage 🙂 En fait j’ai acheté ce modèle en tant que workstation portable et non pas qu’outil bureautique pour salle d’embarquement d’aéroport. Alors l’autonomie sur batteries n’est pas vraiment un problème en ce qui me concerne.

    Merci d’avance pour tout retour d’info.

  18. Philippe dit :

    Dans ton cas effectivement, le mieux est de désactivé Optimus pour ne disposer que de la carte Nvidia. A priori cela a lontemps était la seule solution pour exploiter la Nvidia avec ce type de configuration. Mais tout les portables n’ont pas cette possibilité au niveau du BIOS.
    Normalement en faisant cela, la commande lspci|grepVGA ne devrait plus te montrer qu’une seule carte graphique. A ce moment là tu n’as plus qu’à installer les drivers proprio de façon traditionnelle pour bénéficier de toute la puissance de ta carte.

  19. Bonob0h dit :

    bonob0h <<< version "Comment ça marche" attention a la toute puissance sur un portable … ça peut faire chauffer de quoi faire cuire un oeuf sur le plat … ce qui fait aussi pas mal de bruit … donc prévoir un "frigidaire" sous le portable 😉

  20. Eric dit :

    Merci à tous pour vos réponses rapides.

    lspci ne montre effectivement que la carte nVidia et l’installation des drivers proprio ne pose aucun problème (ni le boot suivant 😉 J’ai fait le test glxgears, et ça me donne aux alentours de 3700 FPS en 1024×768 🙂 Ca devrait aller pour Blender et ses copains 🙂

    Pour ce qui est du chauffage, j’ai été agréablement surpris par ce portable : la ventilation est extrêmement discrète, y compris pendant le test glxgears. Et il chauffe moins que son prédécesseur (un Precision M90, qui était équipé d’une nVidia Quadro FX 3500M déjà assez performante).

    Y’a plus qu’à espérer que le petit nouveau me fasse un aussi bon usage que son ancêtre (pratiquement 5 ans, trimballé en déplacements,…), qui va de toute manière être transmis à quelqu’un d’autre dont les besoins en puissance seront largement en-dessous des capacités du M90.