Nvidia optimus une technologie à éviter pour GNU/linux en attendant Wayland ?

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

J’ai acquis tout récemment un nouvel ordinateur portable. Il a pour objectif de remplacer mon PC fixe qui présente depuis plusieurs mois des signes de défaillance répétés (à moins que ce ne soit que de l’obsolescence programmée) et cela malgré diverses modifications ou changement de pièces et de systèmes d’exploitation. Ce portable doit également me permettre de voyager en emportant mon environnement de travail et servir d’outil de présentation.

La quête

Me voici donc parti en quête de l’oiseau rare, suffisamment bien équipé pour tenir la route au moins cinq ans voir plus (mon PC actuel avait plus de 6 ans) mais dans un budget raisonnable. Bref le mouton à cinq pattes comme de bien entendu. Mon cahier des charges comprenait :

  • Un processeur multi_core;
  • 4Go de RAM;
  • 250Go de disque dur minimum;
  • Webcam intégrée;
  • Carte graphique puissante;

Mon choix après avoir feuilleté de nombreuses pages de sites web commerciaux s’est arrêté sur un MSI N6005. Il est équipé d’un iCore 3, de 4Go de RAM, d’un disque dur de 320Go, Wifi, bluetooth, USB 2 (encore un peu trop pour trouver de l’USB 3) et d’une carte graphique NVidia 325M dotée de 1Go de mémoire. Cette carte est importante pour de futurs projets dont j’aurais l’occasion de vous reparler.

Le monstre à deux têtes

Cependant quand je dis une carte ce n’est pas tout à fait vrai, en fait il y a deux cartes graphiques : une carte Intel intégrée à la carte mère ET la carte NVidia. C’est en effet la nouvelle mode technologique des portables qui sortent en ce moment.

Quel intérêt ? Il s’agit de disposer d’un système qui bascule sur la carte graphique qui correspond au mieux à notre usage de l’instant. Par exemple au moment où j’écris ces lignes, une carte graphique rudimentaire suffit pour gérer l’affichage de mon navigateur. L’idée est donc d’utiliser le processeur intégré et de bénéficier de sa faible consommation électrique. Il est clair que lorsque je suis à la maison cela a moins d’intérêt, par contre dans un train cela prend tout son sens en augmentant l’autonomie de la machine.

Par contre si j’ai besoin de faire du rendu en trois dimensions dans des jeux ou autres simulateurs, la nVidia est là pour fournir sa puissance brute. NVidia nous a donc concocté un système dénommé Optimus qui permet de basculer de façon transparente d’une carte à l’autre.

Le noeud de l’affaire

Comme vous vous en doutez, je compte bien utiliser sur ce portable une distribution GNU/Linux. J’ai donc pris soin avant de procéder à mon achat de vérifier qu’il n’y aurait pas « d’embrouille » avec ce matériel.

Il est utile de rappeler que si le support matériel des systèmes GNU/Linux a fait d’énormes progrès en l’espace de quelques années, il n’est pas encore parfait. Il convient donc de bien vérifier au préalable que le matériel sur lequel on compte installer un système d’exploitation libre est bien supporté par cette dernière. Une information que vous pourrez trouver en général sur les sites de chaque distribution. Canonical a d’ailleurs mis en ligne tout récemment un catalogue plutôt complet.

En faisant mes recherches, je découvre ce document sur le site d’Ubuntu-FR qui explique que la technologie NVidia Optimus serait à l’heure actuelle à éviter. Coté pilotes propriétaire, nVidia n’a présenté aucun pilote Linux permettant le support d’Optimus. Et ils ne prévoient pas d’en développer.

Le plus ennuyeux est qu‘il semblerait même qu’il faille modifier en profondeur Xorg pour faire fonctionner cette technologie. Le mieux que l’on puisse faire serait d’éteindre la carte nVidia pour économiser l’énergie ou de l’utiliser pour du calcul à l’aide de CUDA (Compute Unified Device Architecture). Un peu dommage.

Et pourtant il l’a fait

Malgré tous ces avertissements (je dois avoir la tête dure) et parce que je suis du genre à toujours voir les verres à moitié pleins, j’ai acheté le monstre à deux têtes. Je me suis dit que mes amis les développeurs trouveraient bien une solution à cela et surtout il y avait cette piste apparue dans la version 2.6.34 de Linux : VGA-switcheroo. Ce récent ajout au noyau permet de basculer d’une carte graphique à une autre.

Certes pas de façon transparente, car il faut redémarrer le serveur X pour changer de carte graphique. Cependant pour mes besoins c’était largement suffisant et je me suis donc laissé convaincre.

A ce stade de l’article, je tiens à être bien clair, n’achetez pas de portable doté de cette technologie nVidia Optimus si vous voulez utiliser une distribution GNU/Linux sans utiliser la ligne de commande, ni casse-tête. Choisissez un modèle équipé d’une seule carte graphique !

Et ça donne quoi ?

Le choix de la distribution n’a pas été long. Mais j’avoue avoir hésité entre la Fedora 14 et Ubuntu 10.10. C’est finalement cette dernière que j’ai retenue pour mes essais. Je maîtrise bien mieux les distributions basées sur Debian. Je n’aime pas mettre les mains dans les problématiques d’affichage. J’ai toujours trouvé cela un peu pénible. Mais c’est l’occasion d’en apprendre un peu plus, donc en ce qui me concerne, ça ne se refuse pas.

Aucun souci d’installation pour Ubuntu 10.10. Cependant, tout n’est pas rose à l’arrivée. Je n’arrive pas à faire marcher le bluetooth par exemple. Pas de messages d’erreur particulier, tout semble reconnu, mais les périphériques restent invisibles pour le MSI alors que mon N900 les voit bien. Passons, je n’ai pas d’usage impératif de cela.

Le son sur le casque microphone envoi un souffle sur le haut-parleur gauche. Il doit y avoir quelque chose qui fait interférence, mais je n’ai pas trouvé. Si quelqu’un à une piste, merci de la laisser en commentaire. J’ai déjà installé et compilé les drivers fournis sur le site de Realtek pour le HDA Inetl qui équipe le MSI. Rien n’y fait. Je passe aussi, c’est plutôt mon N900 qui fait office de Jukebox d’ordinaire.

J’ai laissé Windows Seven sur la machine. Inutile de dire que le bluetooth et le son fonctionnent sans les défauts rencontrés sous Ubuntu. A titre d’essai, j’ai constaté le même souci de souffle avec le LiveCD de Fedora 14.

Plat de résistance

Passons à VGA-switcheroo qui est activé dans Ubuntu grâce à la version 2.6.35 de Linux. Son fonctionnement est simple et bien expliqué sur ce tutoriel en anglais (pour Ubuntu et Fedora) avec en prime un script permettant de faciliter la bascule entre les cartes graphiques.

Le principe est sur le papier très simple. Il suffit d’écrire une commande dans un fichier nommé switch situé dans /sys/kernel/debug/vgaswitcheroo/

cat switch # Pour voir la carte qui est active
echo DDIS > switch # Pour activer la carte additionnelle (il faut
redémarrer le serveur d'affichage X pour que celui-ci prenne en compte le changement)
echo DIGD > switch # Pour activer la carte intégrée (avec un redémarrage)
echo OFF > switch # Pour éteindre la carte qui n'est pas utilisée

Seul soucis, c’est qu’à l’heure où j’écris ce billet seule la désactivation de la carte nVidia fonctionne. C’est un peu angoissant. On trouve un peu de tout dans les forums et il est difficile de se faire une idée précise. Certains parviennent à faire fonctionner leur carte nVidia, d’autres pas. Il semblerait que le BIOS puisse y être pour quelque chose aussi. Certains portables disposent d’options permettant de forcer l’usage de la carte nVidia.

Pour finir sur le sujet, l’architecture Optimus ne permet pas de désactiver la carte intégrée Intel car si j’ai bien compris c’est elle qui transmet le signal à l’écran et fait appel au processeur graphique de la nVidia en cas de forte sollicitation. Une différence de taille avec les portables équipés de cartes ATI pour lesquelles l’intégration n’aurait pas été poussée aussi loin. De fait, il semble plus simple de faire marcher la bascule entre cartes avec de l’ATI.

Wayland la planche de salut ?

waylandCe qui revient souvent dans ce que j’ai pu lire, mais je serais bien incapable d’en juger, c’est que la conception du serveur d’affichage Xorg commencerait à dater. Un nom qui revient souvent comme solution à ce problème nVidia Optimus est le projet Wayland.

On a entendu parler de Wayland pour des systèmes d’exploitation comme Meego mais aussi Ubuntu qui envisage de l’utiliser avec Unity pour ces prochaines versions. Mais Fedora n’est pas en reste et envisagerait une première intégration à titre expérimental dans la prochaine version 15 de Fedora.

L’architecture de Wayland est différente de celle de Xorg et semble plus simple plaçant le « compositor » ou pilote matériel au centre du processus d’affichage. Un mode de fonctionnement qui ne semble pas sans impact sur le fonctionnement des « clients Wayland » c’est-à-dire les programmes.

Pour faciliter la transition et garder une certaine compatibilité, Wayland sera en mesure d’utiliser un serveur X au prix de quelques changements de ce dernier pour pouvoir communiquer avec Wayland.

Tout ceci cependant n’est pas pour demain et il risque de s’écouler encore pas mal de temps avant de voir Wayland prendre éventuellement la place de Xorg.Autrement dit, je ne suis pas sur de voir mon problème « optimus » résolu sous peu. De plus, cette architecture Optimus aura peut-être disparu l’année prochaine et j’aurais peut-être revendu ce portable à un utilisateur de Windows inconditionnel.

Il me reste encore des pistes à explorer. Je n’ai pas encore essayé la version 2.6.37 de Linux par exemple. Entre-temps je viens d’installer la version 64 bits de Debian Mint sur le portable mais qui ne reçoit que la version 2.6.32 de la branche testing de Debian. Mais la version 2.6.37 est disponible pour l’architecture amd64 dans la branche unstable voisine. Ce sera pour une prochaine fois.

Si vous avez d’autres pistes à explorer, laissez-les en commentaire.

A lire sur le même sujet : NVIDIA Optimus, la technologie à éviter

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.

23 réponses

  1. fylefou dit :

    « Malgré tous ces avertissements (je dois avoir la tête dure) et parce que je suis du genre à toujours voir les verres à moitié pleins, j’ai acheté le monstre à deux têtes »
    ca me rappelle moi et mon aspire one 571 avec le fameux poulbso… si s’etait a refaire pour ma part , je pense pas que je l’acheterais.. mais peut etre que j’aurais fait pire avec un toshiba AC100

  2. Evildead dit :

    J’ai un Thinkpad T410 utilisant cette technologie et j’ai tout simplement désactivé la carte Intel dans le BIOS pour ne garder que la partie NVidia. Ça consomme certainement un peu plus, mais tout fonctionne très bien et sans aucune prise de tête…

  3. Philippe dit :

    @Evildead oui, mais il n’ya rien qui permette de désactiver la carte intel sur le MSI dans le BIOS hélas

  4. Michael Zed dit :

    @Evildead : J’ai commandé le T410s, donc à peu près le même matériel. Je peux savoir ce que tu utilises comme distribution, si t’as eu des problèmes à par ce truc Optimus ?

  5. Obidoub dit :

    Merci pour le retour d’expérience, c’est très intéressant. Je crois que la généralisation de ce type de solution (deux cartes graphiques) est due au fait que les processeurs Intel ont quasiment tous une partie graphique maintenant… donc plus trop de le choix.

    @fylefou: Ouep j’ai testé aussi le Poulsbo… retourné direct en SAV. Quand j’ai appris que c’était gravé en 130nm, que ça chauffait et qu’il fallait mettre un pilote graphique expérimental qui provoquait des micro-freezes, je me suis rendu compte qu’on se foutait de moi légèrement.

  6. Evildead dit :

    @Michael : J’utilise la dernière Ubuntu (10.10) et tout a fonctionné sans soucis dès le début. Je pense que c’est le driver Intel qui a été installé par défaut, et l’affichage fonctionnait correctement.

    Ensuite le système m’a proposé d’installer les drivers propriétaires NVidia, ce que j’ai fait, et au reboot plus de serveur X. Ça m’a semblé normal puisque par défaut Optimus utilise la carte Intel qui ne peut pas fonctionner avec le driver NVidia. Je suis allé dans le BIOS et j’ai choisi de toujours utiliser la carte NVidia (il y a trois choix : Intel, NVidia, ou Optimus). Après reboot, tout fonctionnait parfaitement.

    Pour ce qui est du WiFi et du son, je n’ai eu aucun soucis non plus, tout a été bon dès le début. Par contre je n’ai testé ni le Bluetooth, ni la webcam intégrée, ni le lecteur d’empreintes vu que je n’en ai pas encore eu l’utilité.

  7. fylefou dit :

    @Obidoub: t’as justifié comment le sav?

  8. Obidoub dit :

    @fylefou: J’ai commandé sur internet, donc j’ai profité du délais de rétractation de 7 jours.

  9. Philippe dit :

    @Evildead

    il y a trois choix : Intel, NVidia, ou Optimus

    Sur le MSI il y a zéro choix 🙁

  10. Evildead dit :

    Je m’étais renseigné avant l’achat et j’avais trouvé quelques commentaires de possesseurs de T410 qui parlait de cette option dans le BIOS 😉 Dans le cas contraire je me serais orienté vers un autre portable avec une carte plus classique.

  11. Julien dit :

    Et bien je vois que nous sommes donc 2 à avoir la tête dure 😉
    Je viens de changer mon laptop pour un Asus 1215n équipé lui aussi d’Optimus !!
    Et bien sache que ça me frustre tellement cette histoire que je me demande si je ne vais pas le revendre pour acheter un modèle avec une seule CG !!
    L’attitude de Nvidia est déplorable ceci dit. J’ai passé du temps sur leur blog et les échanges sont assez clairs. Ils ne comptent pas développer quoi que ce soit pour GNU/Linux. Du moins pour le moment. Mais la grogne commence à monter !!

  12. Syvolc dit :

    Même problème avec mon Asus X64JV… avec Optimus. Rien à faire, j’ai désactiver la carte NVidia et je survis avec la carte Intel.

    Ton article m’a interpellé car j’ai bloggé sur le même sujet il y a 4 mois avec un titre très ressemblant ^^
    http://syvolc.briolet.fr/2010/11/11/nvidia-optimus-la-technologie-a-eviter/

    ++
    Syvolc

  13. Philippe dit :

    @Julien : je me demande si je ne vais pas le revendre pour acheter un modèle avec une seule CG
    Moi c’est prévu 🙂 Pas tout de suite car j’en ai besoin en ce moment, mais ça risque de ne pas trainer. Si au moins je pouvais switcher de carte au niveau du BIOS ça me suffirait dans l’immédiat. Là je vais être obligé d’utilser Seven car j’ai absolument besoin de la patate de la nVidia à court terme 🙁
    @Syvolc : Arf si j’étais tombé sur ton billet, je n’aurais peut-être pas franchi le pas (quoi que 🙂 ). J’ai mis ton article en lien dans le mien !

  14. Philippe dit :

    @Michael Zed j’attend avec impatience ton retour :-). J’ai vu pas mal de post sur Optimus et Archlinux. On dirait que du côté de cette distribution on a pas mal épluché le problème.

  15. Syvolc dit :

    @Philippe : Merci beaucoup, j’ajoute ton blog à mes flux rss 😉

  16. siger dit :

    J’ai aussi tendance à voir les verres à moitié pleins. Au départ un ami m’a montré Mandriva et quand j’ai voulu tester son cd sur mon portable ça e marchait pas, problème de détection de carte graphique. Un an parès ça marchait sans problèmes. Comme quoi le libre évolue vite et bien et qu’un problème de détection peut se régler si on patiente. Merci le libre.

  17. Aloxe Corton dit :

    Dell XPS 2ème genération – avec les dernières versions de Linux, tout marche très bien SAUF la carte graphique nvidia. Dans le passé nvidia avait toujours un support linux super et donc je pensais bien faire en achetant une nvidia mais voilà que je me retrouve dans la … J’espère quand même que nvidia pourra quand même mettre au point des drivers qui utilisent uniquement la carte vidia sans le switching. Sinon il faut espérer que le Summer of Code 2011 trouve une solution avec linux hybrid graphics/ optimus prime / switcheroo mais je ne pense pas que les performances des drivers « nouveau » seront au niveaux des drivers propriétaires nvidia…

  18. N61J Asus dit :

    Optimus = catastrophe. A eviter a tout prix.

    Je n’ai jamais fait de si mauvais achat que celui la. En fait je souhaitais programmer le GPU Nvidia et switcher sur Intel pour la basse consommation.

    Rien ne marche, je ne trouve aucune solution, meme en ligne de commande. Essayez de charger les drivers nvidia sur une ubuntu maverick et vous allez vous amuser.

    Reflexion faite 2 GPU c’est debile. Il n’y a pas de raison valable, un bon GPU devrait etre capable de descendre sa consommation en éteignant des processeurs.

  19. Philippe dit :

    +1 🙂 Reflexion faite 2 GPU c’est débile. Il n’y a pas de raison valable, un bon GPU devrait être capable de descendre sa consommation en éteignant des processeurs.

  20. Berillions dit :

    Bonsoir,

    Malgré l’incompatibilité d’Optimus pour Linux, quels sont les laptops qui permettent de choisir en priorité la CG Nvidia sur celle d’Intel via une Option du BIOS.

    En plus du Lenovo ThinkPad T410 donc.

    Merci

  21. Trim dit :

    Hello! Il y a du nouveau pour Optimus sous Linux, sur LinuxFr, on peut lire ce journal : https://linuxfr.org/users/vatal/journaux/nvidia-optimus-fonctionnel-sur-linux et surtout ceci sur un des commentaires du journal https://linuxfr.org/users/vatal/journaux/nvidia-optimus-fonctionnel-sur-linux#comment-1231529 .

    Je me suis toujours dit que très peu de personnes utilisaient la fonctionnalité client-serveur du moteur graphique X et là, il semblerait que ce soit un tout bel exemple. Je m’en vais lire l’article cité par le journal et je viens vous redonner des nouvelles 🙂

    (je viens de commander un portable avec Optimus, alors en attendant qu’il arrive, je m’informe ^^)

  22. Philippe dit :

    @Trim : merci pour l’information !

  1. 5 mai 2011

    […] de charger deux drivers différents en même temps. La solution possible serait d’utiliser Wayland à la place de Xorg, c’est le cas de la version 11.04 de Ubuntu(en beta). Il faudrait alors développer un driver […]