Quelques commandes et notes sur le debug d’un serveur X, utile pour l’installation d’un double écran ou de deux cartes vidéo.
Avoir un peu plus d’info sur le démarrage des cartes et les modes découverts:
$ startx -- -logverbose 6
Xinerama:
il est vieillissant mais il a l’avantage de faire tourner un écran virtuel sur cartes vidéo avec chacune leur écran. c’est une bonne alternative à xrandr 1.3.
Section « ServerLayout »
Identifier "HDMI_and_LCD" Screen 0 "Screen0" 0 0 Screen 1 "Screen1" Below "Screen0" Option "Xinerama" "1"
EndSection
Section « Screen »
Identifier "Screen0" Device "card_330M" Monitor "Philips" Option "ConnectedMonitor" "DFP-0" Option "CustomEDID" "DFP-0:/etc/X11/xorg.conf.d/philips" SubSection "Display" Viewport 0 0 Depth 24 Modes "1920x1200" EndSubSection
EndSection
Section « Screen »
Identifier "Screen1" Device "card_intel" Monitor "Sony LCD" SubSection "Display" Viewport 0 1200 Depth 24 Modes "1600x900" EndSubSection
EndSection
Xrandr 1.4:
avec xrandr 1.4 les multi cartes sont gérés mais il faut une distri qui l’embarque (ce n’est pas le cas de la debian Wheezy).
Section « ServerLayout »
Identifier "HDMI_and_LCD" Screen 0 "Screen0" Screen 1 "Screen1" Option "Xinerama" "0"
EndSection
Section « Screen »
Identifier "Screen0" Device "card_330M" Monitor "Philips" Option "ConnectedMonitor" "DFP-0" Option "CustomEDID" "DFP-0:/etc/X11/xorg.conf.d/philips" Option "MetaModes" "DFP-0:1920x1200 +0+0" SubSection "Display" Depth 24 Modes "1920x1200" EndSubSection
EndSection
Section « Screen »
Identifier "Screen1" Device "card_intel" Monitor "Sony LCD" Option "MetaModes" "eDP-2:1600x900 +0+1200" SubSection "Display" Depth 24 Modes "1600x900" EndSubSection
EndSection
Gestion des EDID
Certaines cartes (c’est le cas sur le VAIO serie Z) n’accepte aucune description de moniteur manuel, elle cherche l’EDID du moniteur connecté, dans le cas ou le moniteur ne publie pas ou que la carte n’arrive à découvrir cet EDID on se retrouve bloqué avec soit le X server en vrac soit la carte montée mais aucune sortie vidéo. Pour remettre cela debout, il faut récupérer l’EDID du moniteur à la mano au format binaire et l’identifier lors du démarrage de X.
Récupérer l’EDID:
Soit utiliser un outil (attention il ne voit pas toujours l’écran qu’on veut) pour afficher la liste des ecran vu:
$ get-edid | parse-edid
pour avoir le fichier binaire
$ get-edid>/etc/X11/xorg.conf.d/ecran.edid
Si l’ecran n’est pas list, il faut passer par le log de Xorg qui en mode verbose 6 affichera la chaine hexa des EDID decouvert. il faut ensuite copier et transformer cette chaine hexa en binaire. un petit coup de python ou php fait l’affaire.
Force l’EDID dans Xorg
dans la section screen, (je prefere dans screen car ca correspond avec la vision xorg: screen = quel moniteur avec quel carte)
Option "CustomEDID" "DFP-0:/etc/X11/xorg.conf.d/ecran.edid"
le DFP-0 est l’identifiant de la sortie vidéo de la carte, on la découvre dans le log de xorg avec le verbose 6.