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

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 ?

Optimus nVidia Matériel GNU/Linux Ce 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


Réagir à cet article

Article original écrit par Philippe Scoffoni le 06/03/2011. | Lien direct vers cet article

Cette création est mise à disposition sous un contrat Creative Commons BY à l'exception des images qui l'illustrent (celles-ci demeurent placées sous leur mention légale d'origine).

.

Vus : 1985
Publié par Philippe Scoffoni : 544