Dual Screen sur sortie HDMI avec Optimus

Partagez ici vos Trucs et vos Astuces.
Répondre
Avatar de l’utilisateur
Dunatotatos
Membre
Membre
Messages : 425
Inscription : 11 mai 2016, 20:56
Status : Hors-ligne

Je reprends ici un message que j'avais posté du .org. Je recherche souvent cette astuce, et elle sera plus facile à trouver ici. Voici une reprise du message original avec correction de typos, mais sans mise à jour du contenu.


Tout d'abord, les sources :
https://nouveau.freedesktop.org/wiki/Optimus/
https://wiki.debian.org/KernelModesetting
https://dri.freedesktop.org/wiki/DDX/

Ce T&A est destiné aux possesseurs d'un ordinateur portable équipé de la technologie Optimus. Selon les instructions de freedesktop.org, ces instructions devraient fonctionner sur tous les branchements possibles (écran du portable (LVDS) et port HDMI branchés tous les deux sur le chipset Intel, ou tous les deux sur la carte NVidia, ou l'un sur la carte NVidia et l'autre sur le chipset Intel). Cependant, ces instructions n'ont été testées avec succès que dans le cas de l'écran du portable branché sur le chipset Intel et le port HDMI sur la carte NVidia. Une exception pour les portables équipés d'un "hardware mux" (sorte d'interrupteur physique, je suppose) : il faudra plutôt se pencher sur Switcheroo. Mais ceci ne rentre pas dans le cadre de ce T&A.

Pour les curieux, j'ai testé la méthode consistant à utiliser par défaut la carte graphique, et à configurer l'écran de l'ordinateur via modesetting, mais le résultat n'est pas concluant. Le système n'est pas stable (apparemment, un problème de synchronisation des affichages qui fait que la carte NVidia effectue le rendu de l'image pendant que modesetting l'affiche), et l'affichage de l'écran du portable est forcément inclus dans la surface affichée par l'écran branché en HDMI. C'est comme un clone, voire moins intéressant.

J'ai tenté la configuration des deux écrans distincts utilisant chacun leur propre driver. L'écran du portable utilise la puce Intel, pendant que le second écran utilise la carte NVidia. Ce n'est pas très compliqué à mettre en place, mais le résultat n'est pas là. Il n'y a pas moyen d'obtenir un bureau étendu, et j'ai eu de nombreux problèmes de GLX non disponible.

La solution que j'ai adoptée est celle décrite sur le premier lien donné dans les sources. Si vous souhaitez une explication détaillée, je vous conseille de suivre le tuto du premier lien (en anglais). Ici, je fais un bref résumé.

Pour la suite, il faut utiliser
  • Une pile graphique à jour (noyau, xserver et mesa)
  • des drivers KMS pour les deux cartes graphiques
  • des drivers DDX pour les deux cartes graphiques
Concrètement, les versions du noyau, de xserver et de mesa en Sid conviennent. Je ne sais pas ce qu'il en est des autres versions de Debian.
Les drivers KMS et DDX sont assemblés dans un seul paquet pour chaque carte graphique. Pour un chipset Intel et une carte graphique NVidia, il faudra installer xserver-xorg-video-intel et xserver-xorg-video-nouveau. Il faut aussi supprimer tous les pilotes autres. Il ne servent à rien dans notre cas, et risquent d'interférer pour le pire des résultats. On veillera bien à supprimer toute trace des paquets nvidia.
Il faut aussi veiller à ne pas avoir de fichier xorg.conf, et pas de configuration qui mettrait nouveau sur une blacklist. Il faut donc supprimer /etc/X11/xorg.conf, et vérifier que aucun fichier de /etc/modprobe.d/ ne mette nouveau ou intel sur la blacklist.

Un redémarrage est nécessaire (quoique, je pense qu'il y a moyen de juste charger les modules nouveau et intel, mais je suis un noob).

Si tout s'est bien passé, un lsmod devrait lister (au moins) les modules i915 et nouveau dans les modules video. i915 est le driver DDX pour Intel. $ xrandr --listproviders devrait lister deux "Providers" de noms "Intel" et "nouveau".
Il faut ensuite indiquer quel driver utiliser de base. Je n'ai pas compris le fonctionnement exact. Essayez

$ xrandr --setprovideroffloadsink nouveau Intel

Si vous obtenez une erreur "XError of failed request : BadValue", inversez nouveau et Intel.

Si le port HDMI et l'écran LVDS sont sur le même GPU, passez le prochain paragraphe.

Sinon, il faut indiquer à xrandr d'utiliser un GPU pour passer le rendu au deuxième (traduction approximative du contenu du tuto sus-cité). Pour cela, cette commande fait l'affaire :

$ xrandr --setprovideroutputsource nouveau Intel

nouveau et Intel sont à mettre dans le même ordre que dans le paramétrage du driver d'offloading.

Et voilà, vous pouvez utiliser votre second écran branché en HDMI. Pour configurer le mode étendu, vous pouvez utiliser xrandr ou arandr pour le mode graphique. Les tutos et explications sur le fonctionnement de ces outils abondent sur le web, je n'ai pas besoin de vous en faire une nouvelle copie.

La dernière commande de ce tuto doit être exécutée à chaque démarrage. Vous pouvez l'ajouter je ne sais où pour activer automatiquement le deuxième écran.

Il est possible que quelques bugs d'affichage subsistent (essentiellement des petites parties de l'écran qui ne se rafraîchissent pas), mais ça reste minime, et les performances sont au rendez-vous. Un problème conséquent est la consommation d'énergie. Aucune carte n'est mise hors tension, et il semblerait que la carte NVidia tourne toujours à la fréquence la plus élevée. Ceci est un problème du driver nouveau. De futures mises à jour résoudront peut-être le problème.

Pour plus de détails, n'hésitez pas à lire les liens cités dans les sources, ainsi que celui-ci : https://wiki.ubuntu.com/X/Architecture
Avatar de l’utilisateur
lol
Site Admin
Site Admin
Messages : 4970
Inscription : 04 avr. 2016, 12:11
Localisation : Madagascar
Status : Hors-ligne

:023:

Merci.
Une page sur le Wiki donnerait de la visibilité à ton T&A !!!
Règles d'usage du forum. Signalez si vous avez posté votre question sur un autre forum. Explications ici
Debian Unstable. Mate/LXQT. Dieu, en créant l'homme, a quelque peu surestimé ses capacités.
Avatar de l’utilisateur
Dunatotatos
Membre
Membre
Messages : 425
Inscription : 11 mai 2016, 20:56
Status : Hors-ligne

Je m'y colle ASAP. Probablement dans quelques mois -_-
Si quelqu'un souhaite le faire avant moi, qu'il se fasse plaisir.
Avatar de l’utilisateur
Dunatotatos
Membre
Membre
Messages : 425
Inscription : 11 mai 2016, 20:56
Status : Hors-ligne

Pof pof pof, j'ai pris le temps.
C'est un simple copier-coller de ce post, avec une ou deux modifications pour coller à la syntaxe : https://wiki.debian-fr.xyz/HDMI_Dual_screen_Optimus
Avatar de l’utilisateur
lol
Site Admin
Site Admin
Messages : 4970
Inscription : 04 avr. 2016, 12:11
Localisation : Madagascar
Status : Hors-ligne

Dunatotatos a écrit : 23 févr. 2017, 13:58Pof pof pof, j'ai pris le temps.
C'est un simple copier-coller de ce post, avec une ou deux modifications pour coller à la syntaxe : https://wiki.debian-fr.xyz/HDMI_Dual_screen_Optimus
Cool! Merci.
J'y ai cru quand tu as parlé de mois... :blush:
Règles d'usage du forum. Signalez si vous avez posté votre question sur un autre forum. Explications ici
Debian Unstable. Mate/LXQT. Dieu, en créant l'homme, a quelque peu surestimé ses capacités.
Avatar de l’utilisateur
Dunatotatos
Membre
Membre
Messages : 425
Inscription : 11 mai 2016, 20:56
Status : Hors-ligne

Moi aussi j'y croyais ^^
Mais on sait tous que quelques mois, ça veut dire jamais...
Répondre