Configure 27" 2560x1440 for a monitor with corrupt EDID
I had a similar problem recently. I could've made a custom Xorg.conf file but that would've undermined all the nice new automatic configuration when I connected to other monitors.
I re-wrote the corrupted EDID instead:
Here are some reading materials:
ref: https://en.wikipedia.org/wiki/Extended_display_identification_data#External_links
edid-rw: https://github.com/bulletmark/edid-rw ( this might work for you... I tried it and could read the edid but couldn't write?! Try it first?)
You need to find the monitor's i2c address:
i2cdetect -l
// look for vga, in this case I got "1"
i2cdetect 1
// look for address.. in this case only one.. I got 0x50
sudo i2cdump 1 0x50 b
// get the current edid
I found a listing on the internet for my monitor's edid as part of an xorg listing in a bug post. Put it in file new.bin:
Checksum!.. This next line should spit out 0
x=$( sum -s new.bin | cut -d " " -f 1 ); echo "$x % 256 " |bc
Since edid-rw above didn't work for me I looked into:
I used this to write the edid:
WARNING - DANGEROUS - Make sure your i2c addresses are correct and insert them below!
cat new.bin | hexdump -v -e '"sudo i2cset -y 1 0x50 0x%_ax 0x" /1 "%02X b\n"'
check final result:
(make sure to use the address info you found above using i2cdetect instead of " 1 0x50 ")
sudo i2cdump 1 0x50 b >test.bin
cat test.bin
x=$( sum -s test.bin | cut -d " " -f 1 ); echo "$x % 256 " |bc should return 0 if good
Aras
I am into building web application these days. I tend to work on the frontend where I can combine my love for great user experience with programming.
Updated on September 18, 2022Comments
-
Aras over 1 year
I am trying to get a monitor work with my Ubuntu laptop. The monitor is this cheap 27" Korean monitors which has a 2560x1440 resolution -- and nothing else. Here are some specifications of this monitor:
- 2560x1440 @60Hz
- Only one dual link DVI-D input -- no other input port (no HDMI or display port)
- no OSD
- no scalar
- reports corrupt EDID
- does 2560x1440 @60Hz, did I say that already?
Anyways, the monitor works beautifully with my Ubuntu desktop which has an nVidia card with DVI output. However, I am having problem using this monitor with my laptop. After some searching around I found a few posts suggesting to use an active adaptor for mini display port, so I went and bought a mini display to dual link DVI-D adaptor.. When using this adaptor the monitor is recognized by
nvidia-settings
tool but with incorrect resolution information.As you can see the monitor is incorrectly recognized and there are no other resolution available to set. This post on ubuntu forums and this other post on overclock both suggest that the monitor is reporting corrupt EDID file. I have tried following their instructions, but so far I have not been able to display any image on the monitor from my laptop.
The laptop I am using is an ASUS G75VW with a 1920x1080 screen. It has a VGA, an HDMI 1.4a, and a mini display port. The graphic card is an nvidia gforce gtx 660M with 2GB dedicated memory. I am running Ubuntu 12.10 on here which I upgrade from 12.04 a few weeks ago.
As I said I have tried several suggestions, including specifying
Modeline
inxorg.conf
and also linking to EDID files I found from those forum posts above. However, I am not sure if the EDID files I found are suitable for my monitor. I think the solution to my problem consist of obtaining the EDID file of my monitor and then fixing it and modifyingxorg.conf
to force nvidia driver to load the correct resolution. However, I am not sure what steps I need to take to do this.Here is the part of
sudo xrandr --prop
output that is related to this monitor: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*+
I was expecting to see the EDID file in this output as was mentioned in this post, but it is not there. I also tried adding the a new mode using
xandr
following this document.. Here is what I did and the error I got:$ 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 Error of failed request: BadMatch (invalid parameter attributes) Major opcode of failed request: 140 (RANDR) Minor opcode of failed request: 18 (RRAddOutputMode) Serial number of failed request: 39 Current serial number in output stream: 40
I have no idea what this error is about. I tried adding another mode, this time using the
gtf
utility instead. That did not make any difference. Here is the output ofxrandr -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
And here is the closest thing I have to a working xorg.conf
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
After several hours of tweaking X configurations, I decided it was time to ask for help here. I would really appreciate if someone with experience regarding EDID and X configuration could give me a hand to solve this issue.
-
Scott Severance over 11 yearsI noticed on the eBay page you mentioned that it explicitly says that it doesnt' work with laptops or internal video cards.
-
Aras over 11 yearsyes I know that. As I said, I was hoping there would be a way around it, but I have not found any solution.
-
Bill about 11 yearsAras did you ever find a solution to this issue? I'm suffering with it to.
-
Aras about 11 years@bill no I did not. After trying so many different methods and a hand full of active and passive adaptors, I gave up. Now I have the monitor attached to my desktop computer. It's a really nice screen.
-
rubo77 about 10 yearsI also tried to connect my Crossover High Res. Monitor to Intel HD Graphics 4400. Did you try PowerStrip on Windows to get the correct Linux Modeline Parameter for your monitor?
-
rubo77 about 10 years
-
Aras about 10 yearscool, thanks for sharing this! I will give it a shot when I have a change. Can you explain a bit more what exactly is happening in the last two steps? Are you modifying the edid and copying it back to the monitor itself?
-
JJones almost 10 yearsYes, it's writing the new EDID back to the monitor. I found the correct edid for my monitor in a boot log someone else posted and google indexed.