intel 945GM et sortie double écran - Installation - Linux et OS Alternatifs
Marsh Posté le 22-09-2007 à 14:24:35
Depuis la version 7.2, X.org est prévu pour fonctionner sans le fichier de configuration xorg.conf
La grande nouveauté de cette version 7.3 vient du fait qu'elle est censée supporter l'auto-configuration lors d'un événement hotplug en rapport avec le serveur X qui s'exécute. Le but est (à terme) de pouvoir brancher à chaud sous X n'importe quel type d'écran pour que celui-ci soit automatiquement configuré de façon optimale par rapport aux caractéristiques de l'écran détecté.
En théorie donc, tout cela est bien beau jusqu'ici, mais compte tenu de la relative jeunesse de cette version, on manque encore de recul par rapport au fonctionnement de X.org 7.3 et du coup il est fort possible qu'en pratique son comportement soit assez loin de celui attendu.
Dans ton cas, la toute première piste à suivre est très certainement X RandR 1.2 (man xrandr) qui est chargé de toute la partie détection et configuration auto dans X.org 7.3. Bien sûr, cela peut aussi tout à fait provenir d'un bug au niveau du driver xserver-xorg-video-intel lui-même et non directement au niveau du serveur X, aussi cette possibilité n'est pas à exclure non plus.
Autrement, le problème que tu rencontres ressemble à un problème de conflit entre ton fichier de configuration et la prise en charge dynamique des écrans détectés. Logiquement, les paramètres de xorg.conf devraient prendre le dessus, mais il est bien possible que le serveur X force tout de même la configuration avec des paramètres qu'il "pense" être meilleurs pour l'écran (alors qu'en réalité ça n'est pas forcément le cas si l'auto-détection des caractéristiques de l'écran échoue en partie ou est erronée).
Si tu n'as pas encore testé, essayes sans le fichier de configuration xorg.conf et retente de brancher ta TV à chaud pour voir le comportement adopté par X.org ; si les résultats ne sont pas concluants, refais éventuellement le test (sans xorg.conf à nouveau) mais en rebootant ton ordinateur avec la TV de branchée. Une autre possibilité est de jouer sur l'auto-détection des caractéristiques de l'écran en la désactivant via l'option DDC "False" dans la section Monitor du xorg.conf.
Note que pour une prise en charge correcte des résolutions supportées par le BIOS vidéo des chipsets Intel, l'utilitaire 915resolution était jusqu'ici nécessaire, mais apparemment il ne devrait plus être utilisé depuis la version 7.3 de X.org.
Voici quelques pistes à tenter ; une recherche sous google avec les termes xorg 7.3 945GM pourront t'en apporter d'autres. Dans tous les cas, je ne pense pas non plus que le fait de bidouiller les sources de X.org soit une bonne idée, ou alors seulement de façon très temporaire.
Si aucune solution ne fonctionne, en dernier recours, comme tu sembles avoir des compétences avancées sous Linux, tu peux toujours tenter de t'adresser directement à l'équipe de développement de X.org et de leur faire part des problèmes que tu rencontres en leur fournissant des explications aussi concises qu'ici (je ne pense pas qu'ils soient hostile à ce genre de retours utilisateur, sachant que cela peut les aider à améliorer X.org pour ses prochaines versions).
Marsh Posté le 26-09-2007 à 11:43:52
Salut
Merci de ta réponse qui m'apporte pas mal d'éléments nouveaux dans ma recherche.
De mon coté j'ai eu du nouveau, je me suis inscrit sur la mailing-list de xorg , et j'ai compris certaines choses.
- Pour ce driver en particulier, il y a un nommage bien précis des moniteurs connectés sur chaque sortie, il faut nommer chaque section "Monitor" monitor-VGA, monitor-LVDS et monitor-TV. Il suffit ensuite de mettre une option enable à false pour le monitor LVDS , ce qui désactive automatiquement la sortie LVDS. Du coup, le driver redirige automatiquement le pipe A sur VGA, et le pipe B sur TV.
- Si le cable composite TV n'est pas connecté au moment où on démarre le serveur X, il désactive automatiquement la sortie TV. C'est assez génant, il va falloir maintenir l'impédance dans le cable, car je n'aurai pas toujours de signal vidéo au démarrage. Je n'ai pas trouvé comment désactiver cette option (qui, je trouve, ne sert à rien).
- J'arrive maintenant à avoir le VGA et la TV en mode clone mais je n'arrive toujours pas à fixer la résolution voulue au démarrage d'Xorg en configurant dans xorg.conf :
Soit je désactive DDC, et dans ce cas, il se fixe automatiquement sur 1024x768 sur VGA, et 1024x768 sur TV.
Soit j'active DDC, et dans ce cas, il se fixe automatiquement sur 1280x1024 sur VGA (résolution nominale de l'écran), et 1024x768 sur TV.
Dans tous les cas, pour que le clone fonctionne bien, il est nécessaire pour moi d'avoir les 2 memes résolutions sur les 2 sorties. Il faut donc je trouve une résolution commune.
1024x768 m'irait bien, mais il y a un pb sur l'image générée par la sortie TV, elle comprend des bandes noires autour et c'est assez génant (surement du au traitement de conversion fait par le chipset TVOUT) et je pense que ca le fait sur toutes les résolutions différentes de la résolution PAL (720x576).
Je cherche donc à changer la résolution et j'utilise xrandr (v 1.3). J arrive bien à changer la résolution de chacune de mes sorties de facon indépendante, mais je n'ai pas accès aux résolutions que je souhaite.
Je n'ai que :
- 1600x1200, 1600x1024, 1400x1050, 1280x1024, 1280x960, 1152x864, 1024x768, 800x600, et 640x480 pour la sortie VGA.
- 1024x768, 800x600, 848x480, 640x480 pour la sortie TV
Pas de 720x576 pour aucune des 2. Soit, je vois que xrandr permet d'ajouter de nouvelles résolutions, j'ajoute 720x576 en prenant des parametres standard de ModeLine trouvés sur le net. J'arrive bien à ajouter la nouvelle résolution pour le mode VGA, mais ca ne marche pas pour la TV il me sort cette erreur :
Citation : |
Je ne peux donc pas passer la TV en 720x576 (un comble, la véritable résolution du mode PAL de la sortie composite) alors que sur le VGA , ca fonctionne bien (dur de trouver un ecran VGA qui accepte ce mode).
J'ai également tenté d'utiliser 915resolution mais mis a part ajouter un nouveau mode dans le bios, je ne vois pas quoi en faire car il n'y a pas l'air d'avoir de lien entre 915resolution et xrandr.
Je suis un peu bloqué car je ne vois pas quoi faire de plus, et de toutes facons je ne peux pas fixer les parametres dans xorg.Conf il les ignore
Marsh Posté le 26-09-2007 à 15:04:02
En ce qui concerne les bandes noires autour de l'image sur la sortie TV, j'ai trouvé comment les supprimer. Et ce, quelle que soit ma résolution (mon problème de résolution est du coup également réglé, je peux rester en 1024x768 sur la TV OUT).
Il s'agit en fait de 4 parametres de la sortie TV qui sont fixés à une valeur quelconque au démarrage (LEFT TOP BOTTOM RIGHT). Il suffit de les mettre à 0 avec la commande xrandr de la facon suivante :
Code :
|
Il me reste à trouver le moyen de fixer ces paramètres au démarrage, et j'ai terminé mon investigation
Marsh Posté le 04-02-2008 à 15:09:30
Bonjour
Je relance à nouveau ce sujet car j'ai de nouveaux des problèmes avec ce chipset sous linux.
La qualité de l'image en composite et sur la sortie DVI sont médiocres sous linux (quelque soit la version du driver et la distribution) comparée sous windows. Je m'explique :
- Sortie TV (composite) : l'image sous windows avec les drivers fournis par le constructeur (intel) est de qualité très correcte (le mieux qu'on puisse s'attendre d'une sortie composite venant d'un chipset graphique). J'espérais donc avoir une qualité proche sous linux, malheureusement il n'en est pas de même. En effet, l'image présente des irrégularités au niveau de certaines transitions de couleurs, cela fait comme un scintillement. Par exemple, les pattes d'un oiseau posé sur un poteau électriques sont bien droites et rectilignes sous windows (fond bleu pour le ciel, et pattes jaunes / orange, c'est un dessin animé), mais sous linux, les pattes et le ciel bleu sont striées en diagonale, et ca scintille -> image pas très belle. Si je m'amuse à garder le même motif mais que je change les couleurs, ca ne le fait plus. (fond noir et rectangle rouge, c'est flagrant, tout le rectangle rouge est strié).
Je pense que cela est du à un mauvais paramétrage du composant via le driver (écriture de registre), mais n'ayant pas toutes les informations nécessaires pour savoir où corriger, je ne peux pas aller plus loin.
- Sortie DVI : alors là, c'est un problème totalement différent, ca ressemble à un bug matériel (ca arrive que ca le fasse sous windows mais pas systématiquement comme sous linux). Sur certaines couleurs bien spéficiques (surtout les couleurs sombres), j'ai un scintillement très étrange bleu pur (0,0,255), ou une autre couleur primaire. Ce scintillement arrive même sur une image fixe, la couleur alterne alors de sa vraie couleur au bleu, en scintillant très vite. Si la couleur est une grande surface , les alternances couleur/bleu peuvent se faire sur toute ou une partie de la surface, selon la couleur choisie. On dirait un genre de saturation.
Je précise que si je fais une capture d'écran (sous windows ou linux) , le phénomène n'apparait pas sur la capture, mais seulement à l'écran. Mais de toutes facons, sachant que ce problème arrive de facon aléatoire sous windows (en alternant les modes graphiques, parfois ca scintille, parfois non), cela doit etre un problème à la fois matériel et logiciel (ou bien un gros bug du driver mais j'y crois pas trop).
Je me suis evidemment inscrit sur la mailing list d'xorg pour tenter d'avoir quelques précisions sur ce point, mais sans réponse ... a vrai dire , qui ca intéresse d'avoir une bonne qualité d'image sur la sortie composite sous linux ^^ (j 'en ai besoin car je dois sortir des videos, et la qualité doit etre au moins aussi bonne qu'un lecteur DVD de salon).
Je vais tenter de faire des photos du phénomène (en comparant version windows / linux) pour qu'on se rende compte. Si quelqu'un a deja eu ce problème et sait comment le corriger, ca m'intéresse
Marsh Posté le 20-09-2007 à 09:49:28
Bonjour
Je suis confronté à un problème assez bizarre, je vais tenter d'expliquer (ca va être long ^^).
J'ai une carte PC de type SBC de marque AAEON modele 9310 qui vient de sortir, avec le chipset Intel 945GM. Je dois faire tourner dessus une application graphique sous linux , et je dois absolument faire ressortir l'image sur un maximum de sortie. Cette carte possède de base une sortie CRT (VGA), une sortie LVDS, et une sortie TV-OUT (Composite, YUV ou S-Video). On peut egalement avoir VIA une carte additionnelle DVO une sortie DVI, une seconde sortie TV et je crois une seconde sortie LVDS.
Ce chipset possède 2 pipes ce qui signifie que selon le cablage de l'intégrateur, on peut avoir différentes combinaisons simultanées pour du clonage écran, ou carrément 2 écrans différents (ce qui m'intéresse, c'est le clonage écran). On peut ainsi combiner CRT+TV , CRT+LVDS , LVDS+TV , etc... (CRT+DVI, TV1+TV2 ...). Je ne souhaite pas utiliser la sortie LVDS, je n'ai rien à brancher dessus. Par contre, j'ai besoin de CRT + TV , et éventuellement plus tard, DVI + TV , et CRT + DVI (mais je n'ai pas la carte extension DVO pour le moment donc je ne peux pas le tester).
Maintenant passons à linux
J'ai installé dessus un système linux en me basant sur la documentation LFS (www.linuxfromscratch.org), et j'arrive à obtenir un système stable. J'ai du faire quelques modifications sur le choix des packages car le matériel est trop récent pour les versions de packages proposées. J'ai du mettre le dernier noyau linux (2.6.22 à la place du 2.6.11.12), et j'ai du changer la version de XOrg, car le driver intel dans XOrg 6.8 ne détecte pas le chipset 945GM. J'ai donc installé la version 7.3 de XOrg (la derniere donc). J'ai également installé la derniere version de libxine (1.1.7) pour faire des tests de video.
Après avoir compilé Xorg (ce qui n'est pas simple !) , je teste d'abord la sortie CRT de ma carte, et là, ca fonctionne très bien : lecture d'un DVD avec xine, xine utilise bien le driver xvideo et affiche la vidéo sans ralentissement et 13% d'utilisation CPU (avec le précédent xorg, le driver intel ne detectant pas le chipset, c est le driver vesa qui prenait le relais, et c'était la catastrophe en terme de performances).
- Premier petit souci, quoi que je fasse dans xorg.conf , je n'arrive pas à changer la résolution de mon écran elle reste tout le temps figé sur 1280x1024. Le seul moyen (étrange) que j'ai réussi à utiliser pour changer de résolution est de forcer un moniteur avec des faibles caractéristiques. J'arrive difficilement par ce moyen à passer en 640x480 ou en 1280x1024 avec une fréquence de rafraichissement différente (faudra que je teste les autres résolutions).
Par contre si je mets ca dans la section screen :
- Bon c'est pas grave, je teste la TV-OUT.Et la, je comprends plus rien. Impossible de faire marcher la TV-OUT avec le peu de doc que je trouve sur internet.
En allant sur le site http://www.intellinuxgraphics.org/ (redirigé depuis le site intel.com) , je tombe sur un peu de doc (http://www.intellinuxgraphics.org/man.html) sur les options de la carte graphique. Dont une option qui m'intéresse :
Option "MonitorLayout" "anystr"Allow different monitor configurations. e.g. "CRT,LFP" will configure a CRT on Pipe A and an LFP on Pipe B. Regardless of the primary heads' pipe it is always configured as "<PIPEA>,<PIPEB>". Additionally you can add different configurations such as "CRT+DFP,LFP" which would put a digital flat panel and a CRT on pipe A, and a local flat panel on pipe B.For single pipe configurations you can just specify the monitors typeson Pipe A, such as "CRT+DFP" which will enable the CRT and DFPon Pipe A.Valid monitors are CRT, LFP, DFP, TV, CRT2, LFP2, DFP2, TV2 and NONE.NOTE: Some configurations of monitor types may fail, this depends onthe Video BIOS and system configuration.Default: Not configured, and will use the current head's pipe and monitor.
J'ai testé cette option et quelque soit la combinaison que je mets, ca ne fait rien. Pire, quand je regarde dans Xorg.0.0.log , je tombe sur la ligne de log suivante :
(WW) intel(0): Option "MonitorLayout" is not used.
D'ailleurs quand je suis les différentes manip proposés sur ce site et d'autres (http://doc.ubuntu-fr.org/materiel/multi-ecran) , je n'arrive à rien faire.
En analysant les logs d'un peu plus pret, je tombe sur des lignes intéressantes :
j'ai les 3 lignes suivantes :
Le driver détecte bien mes 3 sorties. Par contre on voit que seule la sortie VGA à un monitor. En regardant de plus près dans les sources du driver, je tombe la dessus (provient du fichier xf86CrtC.c faisant partie du xorg-server) :
J'en ai déduit (et après tests c'est bien ca) que xorg attribue automatiquement le moniteur configuré dans la section screen à la premiere sortie (donc ici mon0 pour VGA), et que le seul moyen d'attribuer un moniteur pour les autres sorties est de nommer le moniteur exactement comme la sortie. Pas mal, mais ca, c'est pas documenté
A noter que le nom du moniteur est prioritaire par rapport au moniteur spécifié dans la section screen.
Ensuite plus loin dans le log j'ai :
D'après ce que j'ai compris, le driver détecte s'il y a un cable branché ou non dessus (sauf pour le LVDS qu'il voit tout le temps connecté). La conséquence est que si au démarrage il ne voit aucun cable branché (= aucun signal), il ne fait pas le reste de l'initialisation pour la sortie. C'est assez génant...
Puis :
Je n'ai pas trouvé comment changer ce mode quoi que je fasse, je n'arrive pas à le faire varier SAUF en changeant les caractéristiques du moniteur attaché.
Puis vient les dernières lignes intéressantes :
D'après ce que j'ai compris, la carte 945GM gère 2 Pipes, et à nous de les brancher comme on veut sur telle ou telle sortie. Normalement c'est censé se faire avec l'option "MonitorLayout". Sauf que ca marche pas, je peux essayer toutes les combinaisons ca n'a aucune influence, et comme je l'ai marqué plus haut, ca me dit que que l'option n'est pas utilisé.
Par contre, en bidouillant un peu, j'ai reussi a passer le pipe A sur VGA, OU sur TV selon si je force tel ou tel écran. En gros, si je configure juste un seul moniteur spécialement pour le VGA, il bascule le pipe A sur VGA, si par contre je configure un écran spécialement pour la TV (avec un rafraichissement faible) il bascule automatiquement sur la TV. Le pb, c'est que j'ai soit l'un, soit l'autre (et en plus je ne peux pas fixer la résolution ). PAr contre le pipe B, lui, reste toujours sur LVDS et impossible de le bouger.
Du coup, j'ai tenté de mettre en commentaire dans le source l'initialisation de la sortie LVDS. Dans cette fonction :
j'ai commenté ca :
et la, miracle, ca marche : comme il ne detecte plus que 2 sorties , il me met automatiquement le pipe A sur VGA, et le pipe B sur TV, et j'ai bien les 2 images en meme temps sur les 2 ecrans. Par contre vu que je ne peux pas fixer la resolution de ma sortie VGA (qui reste en 1280x1024), la resolution de la TV etant 720x576, il me rogne l'image , et je n'ai pas tout sur la TV. Le seul moyen que j'ai trouvé pour avoir la meme image sur les 2 est de forcer le 640x480 sur ma sortie VGA (en mettant des parametres de moniteur tres faible expres), et du coup, j'ai egalement du 640x480 sur ma sortie TV.
Vous allez me dire, au final, ca marche, mais en fait ca ne me convient pas pour plusieurs raisons :
- je ne souhaite pas mettre un driver bancale (avec mon truc en commentaire bourrin) dans mon systeme, donc je prefererai une solution par configuration.
- je ne sais pas si ma bidouille marche avec la carte additionnelle permettant de gérer le DVI (et j'en aurai besoin).
Pour cela, je souhaiterai savoir si quelqu'un a déja configuré ce type de chipset sous linux et connaitrait un peu mieux les différents parametres à utiliser pour pouvoir :
- changer la resolution a souhait sur la sortie VGA
- configurer le VGA + TV en meme temps sans bidouiller le driver.
- existe-t-il une doc reellement complete expliquant le fonctionnement de xorg.conf, je n'ai trouvé que ca : http://www.x.org/archive/X11R6.8.0 [...] onf.5.html et je trouve que ca n'est pas suffisamment précis.
En espérant que quelqu'un pourra m'aider