I’ve been wanting to make this work for a long time, but the two times I tried to configure it I gave up because I just didn’t know what else to do. This time I sat down and didn’t get up until it worked. I worked on the xorg.conf several times before, so I know my way around it. It was still quite a puzzle for me to get working.
If you want to know how to configure a display without EDID on Linux, click here.
First I tried using the X way. Multiple Monitors with a Screen each, using one Device, put together in a ServerLayout. That didn’t work for me. I changed it up a lot, and the best result I got was a native resolution with too high of a refresh rate and a distorted display. I was unable to manipulate this via xrandr.
I then read about a method that utilizes the NVIDIA driver called TwinView. This ended up working after a little tweaking. I also consulted the driver’s manual to check what the X options and parameters thereof are. I think that manual might be a little outdated, but it gave me some of the right information.
Okay, so short interlude. My primary monitor doesn’t supply EDID information, so I had to configure the xorg.conf manually to operate Debian. I had to fill in horizontal sync, vertical refresh, display size, a mode line. The additional monitor does not need any special configuration, so I thought.. Hey, I just need to configure the first monitor with the UseEDID options and the second one will work just like that! Well… no. Maybe it’s possible somehow, but I couldn’t get it working.
Here’s the working config.
Section "Monitor"
Identifier "Monitor0"
VendorName "QNIX"
ModelName "QX2710"
HorizSync 89.52 - 160.0
VertRefresh 59.96 - 120.0
DisplaySize 597 336
Modeline "2560x1440_60.00" 312.25 2560 2752 3024 3488 1440 1443 1448 1493 -hsync +vsync
Option "DPMS"
EndSection
Section "Monitor"
Identifier "Monitor1"
VendorName "Samsung"
ModelName "SyncMaster 2253LW"
HorizSync 31.469 - 79.976
VertRefresh 59.883 - 75.062
DisplaySize 467 295
Modeline "1680x1050_60.00" 146.25 1680 1784 1960 2240 1050 1053 1059 1089 -hsync +vsync
Option "DPMS"
EndSection
Section "Device"
Identifier "Device0"
Driver "nvidia"
VendorName "NVIDIA Corporation"
BoardName "GeForce GTX 480"
Option "NoLogo"
Option "UseEDID" "False"
Option "UseEDIDDPI" "False"
Option "UseEDIDFreqs" "False"
Option "ExactModeTimingsDVI" "True"
Option "TwinView"
Option "HorizSync" "DVI-I-2: 89.52 - 160.0; DVI-I-3: 31.469 - 79.976"
Option "VertRefresh" "DVI-I-2: 59.96 - 120.0; DVI-I-3: 59.883 - 75.062"
Option "MetaModes" "DVI-I-2: 2560x1440_60.00 +0+0, DVI-I-3: 1680x1050_60.00 +2560+390"
EndSection
Section "Screen"
Identifier "Screen0"
Device "Device0"
Monitor "Monitor0"
SubSection "Display"
Depth 24
EndSubSection
EndSection
Additional to the definitions in the Monitor sections, I added the HorizSync, VertRefresh and Metamode values to the Device section. If you need the output device names, you can use xrandr
without parameters.