Take the 2-minute tour ×
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free, no registration required.

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.

enter image description here

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 in xorg.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 modifying xorg.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 of 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

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.

share|improve this question
    
I noticed on the eBay page you mentioned that it explicitly says that it doesnt' work with laptops or internal video cards. –  Scott Severance Nov 7 '12 at 6:26
    
yes I know that. As I said, I was hoping there would be a way around it, but I have not found any solution. –  Aras Nov 7 '12 at 6:28
    
Aras did you ever find a solution to this issue? I'm suffering with it to. –  Bill Apr 26 '13 at 20:59
    
@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. –  Aras Apr 29 '13 at 3:47
    
I 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 Feb 11 at 11:50

1 Answer 1

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

share|improve this answer
    
cool, 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? –  Aras Apr 2 at 1:04
    
Yes, 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. –  JJones Jun 28 at 12:59

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.