web-dev-qa-db-fra.com

Configurez 27 "2560x1440 pour un moniteur avec EDID corrompu

J'essaie de faire fonctionner un moniteur avec mon ordinateur portable Ubuntu. Le moniteur est ceci [moniteurs coréens 27 "pas cher] qui a une résolution de 2560x1440 - et rien d’autre. Voici quelques spécifications de ce moniteur:

  • 2560x1440 à 60Hz
  • Uniquement une entrée DVI-D à double liaison - pas d'autre port d'entrée (pas de port HDMI ni de port d'affichage)
  • pas d'OSD
  • pas de scalaire
  • signale un EDID corrompu
  • 2560x1440 @ 60Hz, est-ce que je l'ai déjà dit?

Quoi qu'il en soit, le moniteur fonctionne à merveille avec mon ordinateur de bureau Ubuntu doté d'une carte nVidia avec sortie DVI. Cependant, j'ai des problèmes pour utiliser ce moniteur avec mon ordinateur portable. Après quelques recherches, j'ai trouvé un quelquesmessages suggérant d'utiliser un adaptateur actif pour le port d'affichage mini, alors je suis allé acheter n mini-écran à double liaison DVI -D adaptateur. . Lors de l'utilisation de cet adaptateur, le moniteur est reconnu par l'outil nvidia-settings mais avec des informations de résolution incorrectes.

enter image description here

Comme vous pouvez le constater, le moniteur n’est pas correctement reconnu et aucune autre résolution ne peut être définie. Ce post sur les forums ubunt et cet autre post sur overclock suggèrent tous deux que le moniteur signale un fichier EDID corrompu. J'ai essayé de suivre leurs instructions, mais je n'ai pas encore pu afficher d'image sur mon moniteur depuis mon ordinateur portable.

L'ordinateur portable que j'utilise est un ASUS G75VW avec un écran 1920x1080. Il possède un VGA, un HDMI 1.4a et un port mini-écran. La carte graphique est un nvidia gforce gtx 660M avec 2 Go de mémoire dédiée. J'utilise Ubuntu 12.10 ici que je mets à jour depuis 12.04 il y a quelques semaines.

Comme je l'ai dit, j'ai essayé plusieurs suggestions, notamment spécifier Modeline dans xorg.conf et créer des liens vers des fichiers EDID trouvés dans les messages de forum ci-dessus. Cependant, je ne suis pas sûr que les fichiers EDID que j'ai trouvés conviennent à mon moniteur. Je pense que la solution à mon problème consiste à obtenir le fichier EDID de mon moniteur puis à le réparer et à modifier xorg.conf pour forcer le pilote nvidia à charger la résolution correcte. Cependant, je ne suis pas sûr des étapes à suivre pour y parvenir.

Voici la partie de la sortie de Sudo xrandr --prop liée à ce moniteur:

DP-1 connected 800x600+1920+0 (normal left inverted right x axis y axis) 0mm x 0mm
    SignalFormat:   DisplayPort
    supported: DisplayPort 
    ConnectorType:  DisplayPort
    ConnectorNumber: 3 (0x00000003)
    _ConnectorLocation: 3 (0x00000003)
    800x600        60.3*+

Je m'attendais à voir le fichier EDID dans cette sortie comme c'était mentionné dans cet article , mais ce n'est pas là. J'ai aussi essayé d'ajouter un nouveau mode en utilisant xandr après ce document. . Voici ce que j'ai fait et l'erreur que j'ai eu:

$ cvt 2560 1440 60
# 2560x1440 59.96 Hz (CVT 3.69M9) hsync: 89.52 kHz; pclk: 312.25 MHz
Modeline "2560x1440_60.00"  312.25  2560 2752 3024 3488  1440 1443 1448 1493 -hsync +vsync
$ xrandr --newmode "2560x1440_60.00"  312.25  2560 2752 3024 3488  1440 1443 1448 1493 -hsync +vsync
$ xrandr --addmode DP-1 "2560x1440_60.00"

X Erreur de la demande échouée: BadMatch (attributs de paramètre non valides). Code d'opération principal de la demande ayant échoué: 140 (RANDR) Code d'opération mineur de la demande ayant échoué: 18 (RRAddOutputMode) Numéro de série de la demande ayant échoué: 39 Numéro de série actuel dans le flux de sortie: 40

Je n'ai aucune idée de ce que cette erreur est à propos. J'ai essayé d'ajouter un autre mode, cette fois en utilisant l'utilitaire gtf. Cela n'a fait aucune différence. Voici le résultat de xrandr -q:

xrandr -q

Screen 0: minimum 8 x 8, current 2720 x 1080, maximum 16384 x 16384
VGA-0 disconnected (normal left inverted right x axis y axis)
LVDS-0 connected 1920x1080+0+0 (normal left inverted right x axis y axis) 382mm x 215mm
   1920x1080      60.0*+   40.0  
DP-0 disconnected (normal left inverted right x axis y axis)
HDMI-0 disconnected (normal left inverted right x axis y axis)
DP-1 connected 800x600+1920+0 (normal left inverted right x axis y axis) 0mm x 0mm
   800x600        60.3*+
  2560x1440_60.00 (0x3f9)  312.2MHz
    h: width  2560 start 2752 end 3024 total 3488 skew    0 clock   89.5KHz
    v: height 1440 start 1443 end 1448 total 1493           clock   60.0Hz
  2560x1440 (0x3fa)  311.8MHz
    h: width  2560 start 2744 end 3024 total 3488 skew    0 clock   89.4KHz
    v: height 1440 start 1441 end 1444 total 1490           clock   60.0Hz

Et voici la chose la plus proche que j'ai à un xorg.conf de travail

Section "ServerLayout"
# Removed Option "Xinerama" "0"
    Identifier     "Layout0"
    Screen      0  "Screen0" 0 0
    Screen      1  "Screen1" RightOf "Screen0"


 InputDevice    "Keyboard0" "CoreKeyboard"
    InputDevice    "Mouse0" "CorePointer"
    Option         "Xinerama" "0"
EndSection

Section "Files"
EndSection

Section "Monitor"
    Identifier     "Monitor1"
    VendorName     "Unknown"
    ModelName      "DFP-3"
    HorizSync       89.40
    VertRefresh     60.00
    #HorizSync       43.95
    #VertRefresh     30.00
    ModeLine       "2560x1440_60" 311.83 2560 2744 3024 3488 1440 1441 1444 1490 -hsync +vsync
    #ModeLine       "2560x1440_30" 146.27 2560 2680 2944 3328 1440 1441 1444 1465 -hsync +vsync
    Option         "DPMS"
EndSection

Section "Monitor"
    # HorizSync source: edid, VertRefresh source: edid
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "Chi Mei Optoelectronics corp."
    HorizSync       44.4 - 67.1
    VertRefresh     40.0 - 60.0
    Option         "DPMS"
EndSection

Section "Device"
    Identifier     "Device1"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "GeForce GTX 660M"
    BusID          "PCI:1:0:0"
    Screen          1
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "GeForce GTX 660M"
    BusID          "PCI:1:0:0"
    Screen          0
EndSection

Section "Screen"
    Option         "Stereo" "0"
    #Option    "NoLogo" "False"
    #Option        "UseEDID" "False"
    #Option        "UseEDIDDPI" "False"
    #Option    "UseEDIDFreqs" "False"
    Option         "metamodes"      "2560x1440_60"
    Identifier     "Screen1"
    Device         "Device1"
    Monitor        "Monitor1"
    DefaultDepth    24
    Option         "ExactModeTimingsDVI" "True"
    #Option         "metamodes" "DFP-3: 2560x1440_60 +0+0"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

Section "Screen"
# Removed Option "metamodes" "DFP-0: nvidia-auto-select +0+0; DFP-0: nvidia-auto-select +0+0; DFP-0: 1920x1080 +0+0; DFP-0: 1920x1080_60 +0+0; DFP-0: 1920x1080_40 +0+0; DFP-0: nvidia-auto-select @1920x1024 +0+0; DFP-0: nvidia-auto-select @1920x720 +0+0; DFP-0: nvidia-auto-select @1920x768 +0+0; DFP-0: nvidia-auto-select @1920x600 +0+0; DFP-0: nvidia-auto-select @1920x480 +0+0"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "Stereo" "0"
    #Option         "nvidiaXineramaInfoOrder" "DFP-0"
    Option         "metamodes" "DFP-0: nvidia-auto-select +0+0; DFP-0: nvidia-auto-select +0+0; DFP-0: 1920x1080 +0+0; DFP-0: 1920x1080_60 +0+0; DFP-0: 1920x1080_40 +0+0; DFP-0: nvidia-auto-select +0+0; DFP-0: nvidia-auto-select +0+0; DFP-0: nvidia-auto-select +0+0; DFP-0: nvidia-auto-select +0+0; DFP-0: nvidia-auto-select +0+0"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

#Section "Extensions"
#    Option         "Composite" "Disable"
#EndSection

Après plusieurs heures de peaufinage des configurations X, j'ai décidé qu'il était temps de demander de l'aide ici. J'apprécierais vraiment si quelqu'un ayant de l'expérience en matière de configuration EDID et X pouvait m'aider à résoudre ce problème.

4
Aras

J'ai eu un problème similaire récemment. J'aurais pu créer un fichier Xorg.conf personnalisé, mais cela aurait nui à toute la nouvelle configuration automatique de Nice lorsque je me suis connecté à d'autres moniteurs.
J'ai à nouveau écrit l'EDID corrompu:

Voici quelques matériels de lecture: ref: https://en.wikipedia.org/wiki/Extended_display_identification_data#External_links
edid-rw: https://github.com/bulletmark/edid-rw (cela pourrait fonctionner pour vous ... J'ai essayé et j'ai pu lire l'edid mais je n'ai pas pu essayez-le d'abord?)

Vous devez trouver l'adresse i2c du moniteur:

i2cdetect -l
// cherche vga, dans ce cas, j'ai "1"

i2cdetect 1
// cherche l'adresse .. dans ce cas, un seul .. J'ai 0x50

Sudo i2cdump 1 0x50 b
// récupère l'edid actuel

J'ai trouvé une liste sur Internet pour edid de mon moniteur dans le cadre d'une liste de xorg dans un article de bogue. Mettez-le dans le fichier new.bin:

Checksum! .. Cette ligne suivante devrait cracher 0

x = $ (sum -s new.bin | cut -d "" -f 1); echo "$ x% 256" | bc

Depuis edid-rw ci-dessus n'a pas fonctionné pour moi, j'ai examiné:

J'ai utilisé cela pour écrire l'edid:
AVERTISSEMENT - DANGEREUX - Assurez-vous que vos adresses i2c sont correctes et insérez-les ci-dessous!

chat new.bin | hexdump -v -e '"Sudo i2cset -y 1 0x50 0x% _ax 0x "/ 1"% 02X b\n "'

vérifier le résultat final:
(veillez à utiliser l'adresse que vous avez trouvée ci-dessus en utilisant i2cdetect au lieu de "1 0x50")

Sudo i2cdump 1 0x50 b> test.bin
test de chat.bin
x = $ (sum -s test.bin | cut -d "" -f 1); echo "$ x% 256" | bc devrait renvoyer 0 si bon

3
JJones