Xorg.conf (nvidia) Second Monitor getting settings of first

I've been spending the weekend (and some time before that) trying to set up my Korean QHD270 and Benq G2222HDL monitors with Ubuntu 13.10.

With the nouveau drivers install both monitor function perfectly fine. After installing the nvidia drivers the Benq works but the QHD270 does not.

Now, after days of struggling I managed to get the QHD270 to work following a mixture of blogs, particularly; this one and learnitwithme. Now, unfortunatly my G2222HDL does not work. I fixed the QHD270 by supplying a custom EDID, my xorg.conf looks like so (excluding keyboard and mouse):

Section "ServerLayout"
    Identifier     "Layout0"
    Screen  "Default Screen" 0 0
    InputDevice    "Keyboard0" "CoreKeyboard"
    InputDevice    "Mouse0" "CorePointer"
EndSection

Section "Monitor"
     Identifier "Configured Monitor"
EndSection

Section "Device"
    Identifier     "Configured Video Device"
    Driver         "nvidia"
    Option "CustomEDID" "DFP:/etc/X11/edid-shimian.bin"
EndSection

Section "Screen"
    Identifier "Default Screen"
    Device "Configured Video Device"
    Monitor "Configured Monitor"
EndSection

Now, I tried defining a new Device,Monitor and Screen then in ServerLayout adding Screen "Second Screen" RightOf "Default Screen", but after doing so neither monitor worked.

Hoping to fix the issue using a GUI based tool I opened up NVIDIA X Server Settings, which shows my current layout as:

enter image description here

It seems that something is being output to the monitor, as suggested by my print screen:

enter image description here

Any help would be greatly appreciated.


Output of xrandr:

Screen 0: minimum 8 x 8, current 5120 x 1440, maximum 16384 x 16384
DVI-I-0 disconnected (normal left inverted right x axis y axis)
DVI-I-1 connected primary 2560x1440+0+0 (normal left inverted right x axis y axis) 597mm x 336mm
   2560x1440      60.0*+
HDMI-0 disconnected (normal left inverted right x axis y axis)
DP-0 disconnected (normal left inverted right x axis y axis)
DVI-D-0 connected 2560x1440+2560+0 (normal left inverted right x axis y axis) 597mm x 336mm
   2560x1440      60.0*+
DP-1 disconnected (normal left inverted right x axis y axis)

And an extract from my log file (perhaps this is relevant?)

[     7.862] (--) NVIDIA(0): Valid display device(s) on GeForce GTX 680 at PCI:2:0:0
[     7.862] (--) NVIDIA(0):     CRT-0
[     7.862] (--) NVIDIA(0):     ACB QHD270 (DFP-0) (boot, connected)
[     7.862] (--) NVIDIA(0):     DFP-1
[     7.862] (--) NVIDIA(0):     DFP-2
[     7.862] (--) NVIDIA(0):     DFP-3
[     7.862] (--) NVIDIA(0):     DFP-4
[     7.862] (--) NVIDIA(0): CRT-0: 400.0 MHz maximum pixel clock
[     7.862] (--) NVIDIA(0): ACB QHD270 (DFP-0): 330.0 MHz maximum pixel clock
[     7.862] (--) NVIDIA(0): ACB QHD270 (DFP-0): Internal Dual Link TMDS
[     7.862] (--) NVIDIA(0): DFP-1: 165.0 MHz maximum pixel clock
[     7.862] (--) NVIDIA(0): DFP-1: Internal Single Link TMDS
[     7.862] (--) NVIDIA(0): DFP-2: 165.0 MHz maximum pixel clock
[     7.862] (--) NVIDIA(0): DFP-2: Internal Single Link TMDS
[     7.862] (--) NVIDIA(0): DFP-3: 330.0 MHz maximum pixel clock
[     7.862] (--) NVIDIA(0): DFP-3: Internal Single Link TMDS
[     7.862] (--) NVIDIA(0): DFP-4: 960.0 MHz maximum pixel clock
[     7.862] (--) NVIDIA(0): DFP-4: Internal DisplayPort

Solution 1:

You may try using the following xorg.conf. It configures two Screen and a ServerLayout section to manage them.

Section "Device"
    Identifier "nvidia0"
    Driver     "nvidia"
    Option     "CustomEDID" "DFP:/etc/X11/edid-shimian.bin"
    Option      "RenderAccel"              "true"
    Option      "UseEdidFreqs"             "true"
    Option      "MetaModes"     "2055x1440,1920x1080;1366x768,1366x768;1024x768,1024x768"
    Screen     0
    BusID      PCI:2:0:0
EndSection

Section "Device"
    Identifier "nvidia1"
    Driver     "nvidia"
    Option      "RenderAccel"              "true"
    Option      "UseEdidFreqs"             "true"
    Option      "MetaModes"     "2055x1440,1920x1080;1366x768,1366x768;1024x768,1024x768"
    Screen     1
    BusID      PCI:2:0:0
EndSection

Section "Monitor"
    Identifier "Monitor0"
    Option     "DPMS"
EndSection

Section "Monitor"
    Identifier "Monitor1"
    Option     "DPMS"
EndSection

Section "Screen"
    Identifier "Screen0"
    Device     "nvidia0"
    Monitor    "Monitor0"
    DefaultDepth  24
    SubSection "Display"
        Depth      24
        Modes      "2055x1440" "1920x1080" "1366x768" "1024x768" 
    EndSubSection
EndSection

Section "Screen"
    Identifier "Screen1"
    Device     "nvidia1"
    Monitor    "Monitor1"
    DefaultDepth  24
    SubSection "Display"
        Depth      24
        Modes      "2055x1440" "1920x1080" "1366x768" "1024x768" 
    EndSubSection
EndSection

Section "ServerLayout"
    Identifier "ServerLayout0"
    Screen     0 "Screen0" 0 0
    Screen     1 "Screen1" RightOf "Screen0"
    InputDevice "Generic Keyboard" "CoreKeyboard"
    InputDevice "Configured Mouse" "CorePointer"
    Option     "Xinerama"
EndSection

I may be missing something, so you will have to test this out. I used the confs from here as reference.

Another approach you may try is configuring your monitors manually, using xrandr. You will have to configure another Monitor section and even the second Device section without the EDID, nonetheless. But the command line would be:

$ xrandr --output DVI-I-1 --primary --mode 2560x1440 --output DVI-D-0 --mode 1920x1080 --right-of DVI-I-1

or even in multiple lines as:

$ xrandr --output DVI-I-1 --primary --mode 2560x1440
$ xrandr --output DVI-D-0 --mode 1920x1080 --right-of DVI-I-1

EDIT: Added MetaModes to Device section, and SubSection with modes to Screen section.