Faire un don ! | | style | statistiques | contactez-nous | plan | lettre d'information

Journal : Les grands écrans c'est bien (mais galère)

Posté par Croconux () le 28 décembre 2007
Après avoir bien galéré, je me suis décidé à écrire ce journal car je pense que ça peut servir à d'autres.

Pour mon nowel, je me suis fait plaisir, je me suis acheté un grand écran qui troue les fesses : 24" 1920x1200, que du bonheur (pensais-je). J'ai passé une demi journée à galérer pour le faire fonctionner correctement. En démarrant sous Linux (Debian sid à jour), je me suis retrouvé avec une résolution très laide (1280x768). Bon, jusque là c'est normal, mon ancien écran était un 19" à tube donc je pensais naivement qu'en ajoutant les modes supplémentaires ça passerait. Que nenni. En cherchant sur le net, je me suis rendu compte que je n'étais pas un cas isolé. Visiblement, les écrans avec une résolution trop élevée (22" et plus) posent pas mal de problèmes. D'après ce que j'ai pu trouver, les modes jusqu'à 1600x1200 sont standardisé VESA mais au dessus, chaque fabricant d'écran fait un peu ce qu'il veut et c'est franchement le boxon.

Première piste, les modelines. Chez certains ça semble résoudre le problème. En cherchant à droite à gauche, j'ai vu que pour une même résolution, il y avait à peu près autant de timings que d'écrans. J'en ai essayé quelques uns sans succès. Dans Xorg.log, j'ai toujours "No valid mode for 1920x1200. Removing". Je me suis dit qu'il me fallait surement les timing exacts de mon écran. Bon, comment les obtenir ? Après enquête, chaque moniteur est capable de donner les informations sur les modes qu'il supporte. Plusieurs outils permettent de lire ses infos :

- "read-edid"/"get-edid" : Pas de bol ces outils font des appels VBE de bas niveau (un truc hérité du DOS) qui ne marchent qu'en 32bits et je suis sur AMD64. C'est mort.

- "xresprobe" : Un script fourni avec xorg. D'après ce que j'ai pu lire, il n'est pas trop maintenu et, contrairement à ce que dit la doc, il utilise encore les infos VBE (pour les DFP en tous cas). C'est mort aussi. Il me renvoie des infos vides.

- "ddcprobe" : Apparemment, il interroge la carte graphique et l'écran. Pas de bol non plus, il me liste une série de modes standards (jusqu'à 1280x1024) puis dans la section "edid" se contente d'un joli "edidfail". Tiens donc, mon écran renverrait-il des conneries ? Dans le doute je met la main sur une box windows pour voir ce que ça donne et là, plein les yeux. La résolution native de mon écran est reconnue et c'est magnifique. Bon si ça marche sans avoir installé le moindre driver, ça doit bien pouvoir marcher sous mon manchot, nom d'un eskimo à la banane !

Retour sous Linux mais cette fois en VGA (jusqu'ici j'avais utilisé le DVI). Bizarrement, là xorg me trouve le mode 1600x1200. Pas top mais il y a du mieux. "xresprobe" me trouve cette fois si des infos, même s'il reconnait pour le coup mon écran comme un CRT (c'est bizarre qu'en analogique on arrive à obtenir des infos et pas en numérique, mais bon). Du coup, il semble black lister les modes au dessus de 1600x1200. Après re-enquête, il s'avère qu'en interne, xorg ne fait plus appel à ces divers utilitaires pour lire les infos EDID. Il a sa propre méthode de lecture. Re-merde. Je sens que je vais finir par m'arracher les poils du cul à la pince à épiler.

Retour en DVI (si j'ai pris un écran avec prise DVI ce n'est pas pour passer par de l'analogique). Un bon moyen de voir ce qui se passe : En mode console, démarrer X avec un maximum de logs "startx -- -logverbose 6". Là je me rend compte qu'xorg arrive bien à lire les infos EDID. Il liste les modes standards -plus- les modes supplémentaires de mon écran et le 1920x1200 en fait partie avec les timings exacts et tout. Sauf qu'un peu plus loin la plupart des modes sont invalidés "Mode is rejected: VertRefresh (75.0 Hz) out range" (celui là je veux bien, à la résolution max, il ne supporte que du 60 Hz) ou bien "Mode is rejected: Mode (1920 x 1200) is too large for DFP. Native resolution (Max: 1280 x 768)". Apparemment xorg s'est planté sur le calcul de la résolution native de mon écran.

Visiblement, certaines infos remontées sont erronées et du coup xorg invalides des modes qui sont bien valides. Il existe plusieurs façon de passer outre. Dans la section "Device" du xorg.conf il est possible de mettre "UseEDIDDpi", "UseEDIDFreqs" ou carrément "UseEDID" à false. J'ajoute en modeline le mode exact remonté par mon écran et je tente le coup. Les deux premiers ne changent rien. Après hésitation je tente le 3e en priant et là c'est l'écran noir. Je sens que je ne suis pas couché. Il existe aussi une option "ModeValidation" "NoEDIDModes" mais rien à faire. Puis c'est l'illumination : Je découvre une option de la mort inconnue de la section "Monitor" : "ModeValidation" "NoDFPNativeResolutionCheck". Miracle, ça marche nickel.

Bilan des courses, c'est quand même un peu le bronx dès qu'on sort des sentiers battus. Il y a une foule d'options pas franchement documentées dans xorg plus sans compter le fait que sur la section "Device" suivant le driver utilisé, les options sont différentes ou ne s'appellent pas pareil. Sinon, j'ai aussi découvert qu'apparemment le port DVI est limité en débit et ne permet pas de faire passer les résolutions les plus élevées (c'est vraiment couillon pour une norme aussi récente). Pour celà, il faut un DVI dual link. La limite est définie par le standard mais il est possible de passer outre (les liaisons DVI acceptent souvent plus que ce que le standard impose) et d'autoriser un débit plus élevé (Option "NoMaxPClkCheck"). Si ça ne marche pas, il faut ajouter une modeline limitant le débit. Pour celà, l'utilitaire "cvt" permet de générer des modelines avec débit réduit (option "-r"). Le port VGA ne semble pas soumis à ce type de limitation.

Bon, voilà c'était un peu long mais je pense avoir expérimenté quasiment toutes les looses possibles donc si ça peut aider... Maintenant je peux mouler et travailler en même temps sans avoir à changer de bureau. Que du bonheur.

> Lire le journal (46 commentaires, moyenne: 1,4).  

Vous avez demandé le commentaire #892724.

quel est ton modèle d'écran ?

Posté par palm123 (page perso, ) le 29/12/2007 à 13:02. (lien). Évalué à 2.

Un grand merci pour ton post, car j'hésite à acheter un 22 ou 24".
L'écran de Laurent Pointal, pour tout dire, ou le Iiyama ProLite B2403WS qui a la même dalle.

Je sens que ça va m'éviter pas mal de galères.

--
Les logiciels libres ne sont pas à la portée des non-spécialistes, dit Microsoft. Si même un gendarme ou un député est capable de se servir d'un PC sous Gnu/Linux...
  • [^]Re: quel est ton modèle d'écran ?

    Posté par undeuxtroisout () le 29/12/2007 à 16:13. (lien). Évalué à 1.

    Mon xorg.conf revu et corrigé pour le ProLite B2403WS:

    Section "ServerFlags"
    Option "blank time" "10" # 10 minutes
    Option "standby time" "12"
    Option "suspend time" "16"
    Option "off time" "20"
    Option "xinerama" "off"
    EndSection

    Section "ServerLayout"
    Identifier "Basil"
    Screen "Screen 1"
    Screen "Screen 2" rightof "Screen 1"
    InputDevice "Mouse0" "CorePointer"
    InputDevice "Keyboard0" "CoreKeyboard"
    EndSection

    Section "Files"
    FontPath "unix/:-1"
    EndSection

    Section "Module"
    Load "extmod"
    Load "dri"
    Load "dbe"
    Load "record"
    Load "xtrap"
    Load "glx"
    Load "type1"
    Load "freetype"
    EndSection

    Section "InputDevice"
    Identifier "Keyboard0"
    Driver "kbd"
    Option "XkbModel" "pc104"

    Option "XkbLayout" "us_intl"
    Option "XkbOptions" "compose:ralt"
    EndSection

    Section "InputDevice"
    Identifier "Mouse0"
    Driver "mouse"
    Option "Protocol" "IMPS/2"
    Option "Device" "/dev/input/mouse0"
    Option "Emulate3Buttons" "no"
    Option "Buttons" "5"
    Option "ZAxisMapping" "4 5"
    EndSection

    Section "Monitor"
    Identifier "B2403WS"
    HorizSync 30.0 - 81.0
    VertRefresh 56.0 - 76.0
    modeline "1920x1200" 193.16 1920 2048 2256 2592 1200 1201 1204 1242 -hsync +vsync
    Option "dpms"
    EndSection

    Section "Monitor"
    Identifier "VMPro450"
    HorizSync 30-115
    VertRefresh 50-160
    Option "dpms"
    EndSection

    Section "Monitor"
    Identifier "VMPro413"
    HorizSync 30.0 - 96.0
    VertRefresh 50.0 - 160.0
    Option "dpms"
    EndSection

    Section "Device"
    Identifier "MGA-1"
    Driver "mga"
    VendorName "Matrox Graphics, Inc."
    BoardName "MGA G550 AGP"
    BusID "PCI:1:5:0"
    Option "AGPMode" "4"
    Option "hwcursor" "on"
    EndSection

    Section "Device"
    Identifier "MGA-2"
    Driver "mga"
    Option "hwcursor" "on"
    BusID "PCI:1:5:0"
    Screen 1
    EndSection

    Section "Screen"
    Identifier "Screen 1"
    Device "MGA-1"
    Monitor "B2403WS"
    DefaultDepth 16

    Subsection "Display"
    Depth 16
    Modes "1920x1200" "1600x1200" "1280x1024" "1024x768" "800x600" "640x480"
    ViewPort 0 0
    EndSubsection
    EndSection

    Section "Screen"
    Identifier "Screen 2"
    Device "MGA-2"
    Monitor "VMPro450"
    DefaultDepth 16

    Subsection "Display"
    Depth 16
    Modes "1600x1200" "1280x1024" "1024x768" "800x600" "640x480"
    ViewPort 0 0
    EndSubsection
    EndSection

    Section "DRI"
    group "users"
    mode 0666
    EndSection

    • [^]Re: quel est ton modèle d'écran ?

      Posté par niol (page perso, ) le 22/01/2008 à 08:56. (lien). Évalué à 1.

      Pour le même écran, le Iiyama ProLite B2403WS, avec le driver xserver-xorg-video-i810, j'ai du mettre 915resolution pour ajouter le mode 1920x1200 qui est mal détecté et cà :

      [...]
      Section "Device"
              Identifier      "950GM"
              Driver          "i810"
              # This is required to allow HDTV playback, and this value of 8160 is
              # used instead of what is in the manual page (6144) because this has
              # been corrected in subsequent versions of the i810 driver, see
              # http://gitweb.freedesktop.org/?p=xorg/driver/xf86-video-inte(...)
              Option          "LinearAlloc"   "8160"
      EndSection
      
      Section "Monitor"
              Identifier      "B2403WS"
              Option          "DPMS"
              # Manual : Specs     : H 31.0-83.0, V 56.0-75.0
              #          1920x1200 : H 74.038   , V 59.950
              # DDC gives us bad refresh rates, and then HorizSync and VertRefresh
              # get ignored, so we want to disable DDC.
              Option          "DDC"   "false"
              HorizSync       30.0-81.0
              VertRefresh     56.0-76.0
              Modeline        "1920x1200" 193.16 1920 2048 2256 2592 1200 1201 1204 12
      42 -hsync +vsync
      EndSection
      [...]
      
      Ca marche très très bien, même avec un connecteur VGA.

    [^]Re: quel est ton modèle d'écran ?

    Posté par Nicolas Boulay () le 02/01/2008 à 00:03. (lien). Évalué à 2.

    J'ai un samsung 22" et une mdv. J'ai configuré X au travers des outils mandriva sur plug&play (en gros "débrouille toi") et tout à été reconnu tout seul à la bonne résolution.