Twinview et DVI sous Linux

Publié le par wardiz

Suite au montage d'un nouveau PC il y a quelques semaines je me lance dans la configuration de Xorg pour connecter mon vidéo-projecteur sur ce nouveau PC. Comme je l'ai déjà fais pour mon portable dans un autre article
La carte graphique est une Sparkle avec un GPU Nvidia 9600 GT refroidie passivement et possédant 2 sorties DVI et une sortie HDTV.
 


Coté vidéo projecteur je dispose d'une entrée VGA, j'utiliserai un adaptateur DVI -> VGA (5 euros sur LDLC).
 


Avant de connecter quoi que ce soit hormis l'écran, on regarde dans le fichier de log de Xorg ( /var/log/Xorg.log.0 ) la présence d'une ligne comme celle-ci :
... CRT-0 ou ... CRT-1

ca ne devrait pas être très différent ici.
(--) NVIDIA(0): Interlaced video modes are supported on this GPU
(--) NVIDIA(0): Connected display device(s) on GeForce 9600 GT at PCI:1:0:0:
(--) NVIDIA(0):     Philips 190CW (CRT-1)
(--) NVIDIA(0): Philips 190CW (CRT-1): 400.0 MHz maximum pixel clock

Je précise que mon écran possède un connecteur VGA et j'utilise donc un adaptateur pour le brancher sur la carte graphique. Si vous avez uniquement du DVI peut être qu'au lieu d'avoir CRT-0 ou CRT-1 vous devez chercher DVI-0 ou DVI-1.

Les sorties DVI et TV sont numérotées et identifiées par le driver sous les noms CRT-0, CRT-1, DFP-0, TV-0, ...
Dans mon cas j'avais CRT-1 ce qui m'indique que mon écran était connecté sur la seconde sortie de la carte graphique. J'éteinds le PC et je branche l'écran sur la première sortie car ca sera plus simple pour la suite; c'est également plus logique car le driver considère par défaut le périphérique CRT-0 comme l'écran principal; l'écran du PC sera à priori toujours l'écran principal dans le sens ou c'est celui qui est le plus souvent connecté pour ne pas dire en permanence. Dans la suite de l'article je pars du principe que l'écran est connecté sur la première sortie DVI de la carte graphique.
Une fois le PC rallumé je vérifie que dans /var/log/Xorg.log.0 j'ai bien la ligne CRT-0 :

(--) NVIDIA(0): Interlaced video modes are supported on this GPU
(--) NVIDIA(0): Connected display device(s) on GeForce 9600 GT at PCI:1:0:0:
(--) NVIDIA(0):     Philips 190CW (CRT-0)
(--) NVIDIA(0): Philips 190CW (CRT-0): 400.0 MHz maximum pixel clock

Contrairement au portable pas d'options à paramètrer dans le BIOS ici. Si je branche le vidéo projecteur sur la seconde sortie de la carte vidéo un redémarrage du serveur X suffit pour qu'il soit détecté, inutile de redémarrer le PC.
La configuration en mode Twinview de la section Device du fichier xorg.conf est quasi identique à celle que j'avais sur le portable.
Il faut remplacer les noms DFP-0 par CRT-0 pour l'écran et CRT-0 par CRT-1 pour le vidéo projecteur respectivement ce qui donne la configuration suivante :

Section "Device"
    Identifier  "Device1"
    Driver      "nvidia"
    VendorName  "NVIDIA Corporation"
    Option      "AddARGBGLXVisuals" "true"
    Option      "ConnectToAcpid" "false"
    Option      "DamageEvents" "true"
    Option      "NoLogo" "true"
    Option      "RenderAccel"   "true"
    Option      "RandRRotation" "true"
    Option      "SWCursor" "false"
    Option      "HWCursor" "true"
    Option      "XvmcUsesTextures" "true"
    Option      "TwinView" "true"
    Option      "TwinViewOrientation" "CRT-0 LeftOf CRT-1"
    Option      "TwinViewXineramaInfoOrder" "CRT-0"
    Option      "MetaModes" "CRT-0: 1440x900_75, CRT-1: 1280x768; CRT-0:1024x768,CRT-1:1024x768"
    Option      "HorizSync" "CRT-1: 15-60"
    Option      "VertRefresh" "CRT-1: 50-85"
EndSection

L'écran supporte une résolution de 1440x900 - que j'ai mis dans la configuration.
Pour le reste je vous renvoie à mon autre article puisque les paramètres sont exactement les mêmes.
Une différence notable se situe dans la notation de la résolution en 1440x900_75 : le _75 indique au driver la fréquence de rafraissichement du moniteur. Attention à ne pas mettre une valeur trop élevée car elle pourrait endommager votre matèriel. Consultez attentivement la documentation de votre matèriel, et si vous n'êtes pas sur ne mettez rien.

Il persiste un petit problème cependant : que le vidéo projecteur soit allumé ou pas, du moment qu'il y a simplement un cable connecté sur la deuxième sortie DVI de la carte, le driver "voit" 2 périphériques connectés. Le driver informe alors le serveur X que la taille de l'écran est celle qu'on a quand le second écran est allumé. Mais comme il est éteind on a un second écran fantome au niveau du window manager (GNOME, KDE, XFCE, FVWM, ... bref celui que vous utilisez). On voit la résolution maximale dans le fichier Xorg.log.0; dans mon cas ca donne :

(II) NVIDIA(0): Virtual screen size determined to be 2720 x 900

Idéalement il faut que le driver rapporte une résolution qui soit celle des écrans connectés ET allumés ... pour le moment j'ai pas trouvé comment faire; dés que j'aurai trouvé je mettrai la configuration dans un autre article.

Publié dans Linux

Commenter cet article