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:
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.
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.
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