K40 multi-screen headless with different resolution

I’ve got a server with 8xK40’s in it.

I want to use one of them to create 2x headless screens, so I can remote into the server, and maximize those two screens onto my local screens. They need to work together, as if they were and single desktop, as I’m doing CAD-like software on it (alas, I need to be able to drag windows across screens).

If I do it on a local desktop with heads, the following configuration works just fine:

Section "ServerLayout"
    Identifier     "Layout0"
    Screen      0  "Screen0" 0 0
    InputDevice    "Keyboard0" "CoreKeyboard"
    InputDevice    "Mouse0" "CorePointer"
    Option         "Xinerama" "0"
EndSection

Section "Files"
EndSection

Section "InputDevice"
    # generated from default
    Identifier     "Mouse0"
    Driver         "mouse"
    Option         "Protocol" "auto"
    Option         "Device" "/dev/psaux"
    Option         "Emulate3Buttons" "no"
    Option         "ZAxisMapping" "4 5"
EndSection

Section "InputDevice"
    # generated from default
    Identifier     "Keyboard0"
    Driver         "kbd"
EndSection

Section "Monitor"
    # HorizSync source: edid, VertRefresh source: edid
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "Ancor Communications Inc ASUS VG278"
    HorizSync       24.0 - 140.0
    VertRefresh     50.0 - 122.0
    Option         "DPMS"
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "GeForce GTX TITAN"
    BusID          "PCI:1:0:0"
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "Stereo" "0"
    Option         "nvidiaXineramaInfoOrder" "DFP-0"
    Option         "metamodes" "DVI-I-1: nvidia-auto-select +0+0, DVI-D-0: nvidia-auto-select +1920+0"
    Option         "SLI" "Off"
    Option         "MultiGPU" "Off"
    Option         "BaseMosaic" "off"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

However, trying something similar on the server, doesn’t work:

Section "ServerLayout"
    Identifier     "Layout0"
    Screen      0  "Screen0" 0 0
    InputDevice    "Keyboard0" "CoreKeyboard"
    InputDevice    "Mouse0" "CorePointer"
    Option         "Xinerama" "0"
EndSection

Section "Files"
EndSection

Section "InputDevice"
    # generated from default
    Identifier     "Mouse0"
    Driver         "mouse"
    Option         "Protocol" "auto"
    Option         "Device" "/dev/psaux"
    Option         "Emulate3Buttons" "no"
    Option         "ZAxisMapping" "4 5"
EndSection

Section "InputDevice"
    # generated from default
    Identifier     "Keyboard0"
    Driver         "kbd"
EndSection

Section "Monitor"
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "Unknown"
    HorizSync       24.0 - 140.0
    VertRefresh     50.0 - 122.0
    Option         "DPMS"
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "Tesla K40m"
    BusID          "PCI:13:0:0"
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "Stereo" "0"
    Option         "UseDisplayDevice" "DVI-I-1, DVI-D-0"
    Option         "CustomEDID" "DVI-I-1:/etc/X11/edid/1920x1080.bin; DVI-D-0:/etc/X11/edid/1920x1080.bin"
    Option         "metamodes" "DVI-I-1: nvidia-auto-select +0+0, DVI-D-0: nvidia-auto-select +1920+0"
    Option         "nvidiaXineramaInfoOrder" "DVI-I-1"
    #Option         "TwinViewXineramaInfoOrder" "DVI-I-1"
    #Option         "TwinViewXineramaInfoOverride" "1920x1080+0+0, 1920x1080+1920+0"
    Option         "SLI" "Off"
    Option         "MultiGPU" "Off"
    Option         "BaseMosaic" "off"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

Section "Extensions"
    Option "RANDR"      "Enable"
EndSection

If I start with the configuration above, I get a default 640x480 screen. If I uncomment the TwinView lines above, i get the correct size (3840x1080, for 2x 1920x1080), however, it still shows up as a single screen in for example TeamViewer (which shows 2 screens for the non-headless configuration).

Any ideas how I can make headless dual-screen work properly/same-as/identical-to as if it had heads?

Also, is it possible to set that up with various screen sizes as well, and not just two uniform screens?

Thanks!

You would at least have to setup modelines for the needed resolutions.

I’m already providing a CustomEdid for each screen, shouldn’t that be enough?

Ok, didn’t notice the edid.
Maybe check the option usedisplaydevice none in the nvidia docs then.
A xorg log file would be helpful, too.

Here’s the links to 4 different runs:

Xorg.0.DVI-x-x.log: http://pastebin.com/Eh3U20YR
Original: Configuration is as in initial posting, using the CustomEDID

Xorg.0.none.log: http://pastebin.com/ZzDKT70k
Original w/following changes:

Option         "UseDisplayDevice" "DVI-I-1, DVI-D-0"

to

Option         "UseDisplayDevice" "none"

Xorg.0.TwinView.log: http://pastebin.com/usDwQ5iN
Original w/following changes:

#Option         "TwinViewXineramaInfoOrder" "DVI-I-1"
    #Option         "TwinViewXineramaInfoOverride" "1920x1080+0+0, 1920x1080+1920+0"

to

Option         "TwinViewXineramaInfoOrder" "DVI-I-1"
    Option         "TwinViewXineramaInfoOverride" "1920x1080+0+0, 1920x1080+1920+0"

Xorg.0.Virtual.log: http://pastebin.com/0U0VwnsQ
Original w/following changes:

SubSection     "Display"
        Depth       24
    EndSubSection

to

SubSection     "Display"
        Virtual     3840 1080
        Depth       24
    EndSubSection

and commented out the CustomEDID and MetaModes.

I’ve cut the first 14 columns of the log, so it’s easier to compare the output.

diff -u Xorg.0.DVI-x-x.log Xorg.0.none.log

--- Xorg.0.DVI-x-x.log  2017-02-01 07:55:15.311008845 -0600
+++ Xorg.0.none.log     2017-02-01 07:55:28.261507838 -0600
@@ -13,7 +13,7 @@
 Markers: (--) probed, (**) from config file, (==) default setting,
 mmand line, (!!) notice, (II) informational,
 , (EE) error, (NI) not implemented, (??) unknown.
-(==) Log file: "/var/log/Xorg.0.log", Time: Wed Feb  1 07:36:47 2017
+(==) Log file: "/var/log/Xorg.0.log", Time: Wed Feb  1 07:39:37 2017
 (==) Using config file: "/etc/X11/xorg.conf"
 (==) Using config directory: "/etc/X11/xorg.conf.d"
 (==) Using system config directory "/usr/share/X11/xorg.conf.d"
@@ -36,7 +36,7 @@
 (WW) Hotplugging is on, devices using drivers 'kbd', 'mouse' or 'vmmouse' will be disabled.
 (WW) Disabling Keyboard0
 (WW) Disabling Mouse0
-(II) Loader magic: 0x7fb51a140020
+(II) Loader magic: 0x7fd383e7b020
 (II) Module ABI versions:
        X.Org ANSI C Emulation: 0.4
        X.Org Video Driver: 19.0
@@ -104,8 +104,10 @@
 (**) NVIDIA(0): NVIDIA Multi-GPU disabled.
 (**) NVIDIA(0): Option "CustomEDID" "DVI-I-1:/etc/X11/edid/1920x1080.bin; DVI-D-0:/etc/X11/edid/1920x1080.bin"
 (**) NVIDIA(0): Option "MetaModes" "DVI-I-1: nvidia-auto-select +0+0, DVI-D-0: nvidia-auto-select +1920+0"
-(**) NVIDIA(0): Option "UseDisplayDevice" "DVI-I-1, DVI-D-0"
+(**) NVIDIA(0): Option "UseDisplayDevice" "none"
 (**) NVIDIA(0): Enabling 2D acceleration
+(**) NVIDIA(0): Option "UseDisplayDevice" set to "none"; enabling NoScanout
+(**) NVIDIA(0):     mode
 (II) NVIDIA(0): NVIDIA GPU Tesla K40m (GK110B) at PCI:13:0:0 (GPU-0)
 (--) NVIDIA(0): Memory: 11796480 kBytes
 (--) NVIDIA(0): VideoBIOS: 80.80.3e.00.0a

diff -u Xorg.0.TwinView.log Xorg.0.Virtual.log

--- Xorg.0.TwinView.log 2017-02-01 07:55:40.221968683 -0600
+++ Xorg.0.Virtual.log  2017-02-01 07:55:52.736450876 -0600
@@ -13,7 +13,7 @@
 Markers: (--) probed, (**) from config file, (==) default setting,
 mmand line, (!!) notice, (II) informational,
 , (EE) error, (NI) not implemented, (??) unknown.
-(==) Log file: "/var/log/Xorg.0.log", Time: Wed Feb  1 07:44:16 2017
+(==) Log file: "/var/log/Xorg.0.log", Time: Wed Feb  1 07:50:39 2017
 (==) Using config file: "/etc/X11/xorg.conf"
 (==) Using config directory: "/etc/X11/xorg.conf.d"
 (==) Using system config directory "/usr/share/X11/xorg.conf.d"
@@ -36,7 +36,7 @@
 (WW) Hotplugging is on, devices using drivers 'kbd', 'mouse' or 'vmmouse' will be disabled.
 (WW) Disabling Keyboard0
 (WW) Disabling Mouse0
-(II) Loader magic: 0x7f8ad2f76020
+(II) Loader magic: 0x7f6705476020
 (II) Module ABI versions:
        X.Org ANSI C Emulation: 0.4
        X.Org Video Driver: 19.0
@@ -95,17 +95,12 @@
 (==) NVIDIA(0): Default visual is TrueColor
 (==) NVIDIA(0): Using gamma correction (1.0, 1.0, 1.0)
 (**) NVIDIA(0): Option "Stereo" "0"
-(**) NVIDIA(0): Option "nvidiaXineramaInfoOrder" "DVI-I-1"
-(**) NVIDIA(0): Option "TwinViewXineramaInfoOrder" "DVI-I-1"
-(**) NVIDIA(0): Option "TwinViewXineramaInfoOverride" "1920x1080+0+0, 1920x1080+1920+0"
 (**) NVIDIA(0): Option "SLI" "Off"
 (**) NVIDIA(0): Option "MultiGPU" "Off"
 (**) NVIDIA(0): Option "BaseMosaic" "off"
 (**) NVIDIA(0): Stereo disabled by request
 (**) NVIDIA(0): NVIDIA SLI disabled.
 (**) NVIDIA(0): NVIDIA Multi-GPU disabled.
-(**) NVIDIA(0): Option "CustomEDID" "DVI-I-1:/etc/X11/edid/1920x1080.bin; DVI-D-0:/etc/X11/edid/1920x1080.bin"
-(**) NVIDIA(0): Option "MetaModes" "DVI-I-1: nvidia-auto-select +0+0, DVI-D-0: nvidia-auto-select +1920+0"
 (**) NVIDIA(0): Option "UseDisplayDevice" "DVI-I-1, DVI-D-0"
 (**) NVIDIA(0): Enabling 2D acceleration
 (II) NVIDIA(0): NVIDIA GPU Tesla K40m (GK110B) at PCI:13:0:0 (GPU-0)
@@ -114,7 +109,7 @@
 (II) NVIDIA(0): Detected PCI Express Link width: 16X
 (II) NVIDIA(0): Validated MetaModes:
 (II) NVIDIA(0):     "NULL"
-(II) NVIDIA(0): Virtual screen size determined to be 3840 x 1080
+(**) NVIDIA(0): Virtual screen size configured to be 3840 x 1080
 (WW) NVIDIA(0): Unable to get display device for DPI computation.
 (==) NVIDIA(0): DPI set to (75, 75); computed from built-in default
 (--) Depth 24 pixmap format is 32 bpp

Ok, so if using either TwinView or UseDisplayDevice none you always just get one virtual screen which you don’t want.
So maybe just load the edid and use the ConnectedMonitor option to override monitor detection and tell the driver they’re there.

Xorg.0.ConnectedMonitor.log: http://pastebin.com/dfdNuMp1

diff -du Xorg.0.DVI-x-x.log Xorg.0.ConnectedMonitor.log

--- Xorg.0.DVI-x-x.log  2017-02-01 07:55:15.311008845 -0600
+++ Xorg.0.ConnectedMonitor.log 2017-02-01 09:31:47.025215571 -0600
@@ -13,7 +13,7 @@
 Markers: (--) probed, (**) from config file, (==) default setting,
 mmand line, (!!) notice, (II) informational,
 , (EE) error, (NI) not implemented, (??) unknown.
-(==) Log file: "/var/log/Xorg.0.log", Time: Wed Feb  1 07:36:47 2017
+(==) Log file: "/var/log/Xorg.0.log", Time: Wed Feb  1 09:29:27 2017
 (==) Using config file: "/etc/X11/xorg.conf"
 (==) Using config directory: "/etc/X11/xorg.conf.d"
 (==) Using system config directory "/usr/share/X11/xorg.conf.d"
@@ -36,7 +36,7 @@
 (WW) Hotplugging is on, devices using drivers 'kbd', 'mouse' or 'vmmouse' will be disabled.
 (WW) Disabling Keyboard0
 (WW) Disabling Mouse0
-(II) Loader magic: 0x7fb51a140020
+(II) Loader magic: 0x7ff1f63d6020
 (II) Module ABI versions:
        X.Org ANSI C Emulation: 0.4
        X.Org Video Driver: 19.0
@@ -102,10 +102,12 @@
 (**) NVIDIA(0): Stereo disabled by request
 (**) NVIDIA(0): NVIDIA SLI disabled.
 (**) NVIDIA(0): NVIDIA Multi-GPU disabled.
+(**) NVIDIA(0): Option "ConnectedMonitor" "DFP,DFP"
 (**) NVIDIA(0): Option "CustomEDID" "DVI-I-1:/etc/X11/edid/1920x1080.bin; DVI-D-0:/etc/X11/edid/1920x1080.bin"
 (**) NVIDIA(0): Option "MetaModes" "DVI-I-1: nvidia-auto-select +0+0, DVI-D-0: nvidia-auto-select +1920+0"
 (**) NVIDIA(0): Option "UseDisplayDevice" "DVI-I-1, DVI-D-0"
 (**) NVIDIA(0): Enabling 2D acceleration
+(**) NVIDIA(0): ConnectedMonitor string: "DFP,DFP"
 (II) NVIDIA(0): NVIDIA GPU Tesla K40m (GK110B) at PCI:13:0:0 (GPU-0)
 (--) NVIDIA(0): Memory: 11796480 kBytes
 (--) NVIDIA(0): VideoBIOS: 80.80.3e.00.0a

Didn’t really change anything, resolution is still 640x480. The documentation for ConnectedMonitor says only DFP or CRT is allowed, so I assume the driver will correctly map that to the DVIs I specified. However, it almost looks like you cannot fake EDIDs and monitors on Tesla cards. Does anyone know if this should work at all? I cannot see the faked monitors in the NVidia settings panel.

c’mon
Option “ConnectedMonitor” “DFP-0,DFP-1”
And you can use DFP-0 instead of DVI-I-0 in CustomEDID too.

That doesn’t help…

Xorg.0.DFP.log: http://pastebin.com/LR3GidvV

from this configuration Xorg.conf:

Section "ServerLayout"
    Identifier     "Layout0"
    Screen      0  "Screen0" 0 0
    InputDevice    "Keyboard0" "CoreKeyboard"
    InputDevice    "Mouse0" "CorePointer"
    Option         "Xinerama" "0"
EndSection

Section "Files"
EndSection

Section "InputDevice"
    # generated from default
    Identifier     "Mouse0"
    Driver         "mouse"
    Option         "Protocol" "auto"
    Option         "Device" "/dev/psaux"
    Option         "Emulate3Buttons" "no"
    Option         "ZAxisMapping" "4 5"
EndSection

Section "InputDevice"
    # generated from default
    Identifier     "Keyboard0"
    Driver         "kbd"
EndSection

Section "Monitor"
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "Unknown"
    HorizSync       24.0 - 140.0
    VertRefresh     50.0 - 122.0
    Option         "DPMS"
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "Tesla K40m"
    BusID          "PCI:13:0:0"
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "Stereo" "0"
    Option         "ConnectedMonitor" "DFP-0,DFP-1"
    Option         "UseDisplayDevice" "DFP-0, DFP-1"
    Option         "CustomEDID" "DFP-0:/etc/X11/edid/1920x1080.bin; DFP-1:/etc/X11/edid/1920x1080.bin"
    Option         "MetaModes" "DFP-0: nvidia-auto-select +0+0, DFP-1: nvidia-auto-select +1920+0"
    Option         "nvidiaXineramaInfoOrder" "DFP-0"
    Option         "SLI" "Off"
    Option         "MultiGPU" "Off"
    Option         "BaseMosaic" "off"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

Section "Extensions"
    Option "RANDR"      "Enable"
EndSection

give the following diff (diff -u Xorg.0.DVI-x-x.log Xorg.0.DFP.log):

--- Xorg.0.DVI-x-x.log  2017-02-01 07:55:15.311008845 -0600
+++ Xorg.0.DFP.log      2017-02-01 10:25:05.848371795 -0600
@@ -13,7 +13,7 @@
 Markers: (--) probed, (**) from config file, (==) default setting,
 mmand line, (!!) notice, (II) informational,
 , (EE) error, (NI) not implemented, (??) unknown.
-(==) Log file: "/var/log/Xorg.0.log", Time: Wed Feb  1 07:36:47 2017
+(==) Log file: "/var/log/Xorg.0.log", Time: Wed Feb  1 10:24:10 2017
 (==) Using config file: "/etc/X11/xorg.conf"
 (==) Using config directory: "/etc/X11/xorg.conf.d"
 (==) Using system config directory "/usr/share/X11/xorg.conf.d"
@@ -36,7 +36,7 @@
 (WW) Hotplugging is on, devices using drivers 'kbd', 'mouse' or 'vmmouse' will be disabled.
 (WW) Disabling Keyboard0
 (WW) Disabling Mouse0
-(II) Loader magic: 0x7fb51a140020
+(II) Loader magic: 0x7ff3fe13a020
 (II) Module ABI versions:
        X.Org ANSI C Emulation: 0.4
        X.Org Video Driver: 19.0
@@ -95,17 +95,19 @@
 (==) NVIDIA(0): Default visual is TrueColor
 (==) NVIDIA(0): Using gamma correction (1.0, 1.0, 1.0)
 (**) NVIDIA(0): Option "Stereo" "0"
-(**) NVIDIA(0): Option "nvidiaXineramaInfoOrder" "DVI-I-1"
+(**) NVIDIA(0): Option "nvidiaXineramaInfoOrder" "DFP-0"
 (**) NVIDIA(0): Option "SLI" "Off"
 (**) NVIDIA(0): Option "MultiGPU" "Off"
 (**) NVIDIA(0): Option "BaseMosaic" "off"
 (**) NVIDIA(0): Stereo disabled by request
 (**) NVIDIA(0): NVIDIA SLI disabled.
 (**) NVIDIA(0): NVIDIA Multi-GPU disabled.
-(**) NVIDIA(0): Option "CustomEDID" "DVI-I-1:/etc/X11/edid/1920x1080.bin; DVI-D-0:/etc/X11/edid/1920x1080.bin"
-(**) NVIDIA(0): Option "MetaModes" "DVI-I-1: nvidia-auto-select +0+0, DVI-D-0: nvidia-auto-select +1920+0"
-(**) NVIDIA(0): Option "UseDisplayDevice" "DVI-I-1, DVI-D-0"
+(**) NVIDIA(0): Option "ConnectedMonitor" "DFP-0,DFP-1"
+(**) NVIDIA(0): Option "CustomEDID" "DFP-0:/etc/X11/edid/1920x1080.bin; DFP-1:/etc/X11/edid/1920x1080.bin"
+(**) NVIDIA(0): Option "MetaModes" "DFP-0: nvidia-auto-select +0+0, DFP-1: nvidia-auto-select +1920+0"
+(**) NVIDIA(0): Option "UseDisplayDevice" "DFP-0, DFP-1"
 (**) NVIDIA(0): Enabling 2D acceleration
+(**) NVIDIA(0): ConnectedMonitor string: "DFP-0,DFP-1"
 (II) NVIDIA(0): NVIDIA GPU Tesla K40m (GK110B) at PCI:13:0:0 (GPU-0)
 (--) NVIDIA(0): Memory: 11796480 kBytes
 (--) NVIDIA(0): VideoBIOS: 80.80.3e.00.0a

…same 640x480 resolution.

Here’s a link to the Nvidia Settings panel.
https://www.imgpaste.net/image/1kW0Y

As you can see, the CustomEDID doesn’t seem to do anything. I’m just not sure it’s possible to fake screens on Tesla Headless?

I loaded the “modesetting” module, and added the option “ModeDebug” “true”:

Section "ServerLayout"
    Identifier     "Layout0"
    Screen      0  "Screen0" 0 0
    InputDevice    "Keyboard0" "CoreKeyboard"
    InputDevice    "Mouse0" "CorePointer"
    Option         "Xinerama" "0"
EndSection

Section "Files"
EndSection

Section "Module" 
    Load           "modesetting" 
EndSection 

Section "InputDevice"
    # generated from default
    Identifier     "Mouse0"
    Driver         "mouse"
    Option         "Protocol" "auto"
    Option         "Device" "/dev/psaux"
    Option         "Emulate3Buttons" "no"
    Option         "ZAxisMapping" "4 5"
EndSection

Section "InputDevice"
    # generated from default
    Identifier     "Keyboard0"
    Driver         "kbd"
EndSection

Section "Monitor"
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "Unknown"
    HorizSync       24.0 - 140.0
    VertRefresh     50.0 - 122.0
    Option         "DPMS"
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "Tesla K40m"
    BusID          "PCI:13:0:0"
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "ModeDebug" "true"
    Option         "Stereo" "0"
    Option         "ConnectedMonitor" "DFP-0,DFP-1"
    Option         "UseDisplayDevice" "DFP-0, DFP-1"
    Option         "CustomEDID" "DFP-0:/etc/X11/edid/1920x1080.bin; DFP-1:/etc/X11/edid/1920x1080.bin"
    Option         "MetaModes" "DFP-0: nvidia-auto-select +0+0, DFP-1: nvidia-auto-select +1920+0"
    Option         "nvidiaXineramaInfoOrder" "DFP-0"
    Option         "SLI" "Off"
    Option         "MultiGPU" "Off"
    Option         "BaseMosaic" "off"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

…and got the following output:
Xorg.0.DFP-ModeSetting.log: http://pastebin.com/QKKaRhNy

Excerpt:

(II) modeset(G0): ShadowFB: preferred YES, enabled YES
(II) modeset(G0): Double-buffered shadow updates: on(II) modeset(G0): Output VGA-1-0 using monitor section Monitor0
(**) modeset(G0): Option "ModeDebug" "true"
(II) modeset(G0): EDID for output VGA-1-0
(II) modeset(G0): Manufacturer: AVO  Model: 0  Serial#: 0
(II) modeset(G0): Year: 2003  Week: 0
(II) modeset(G0): EDID Version: 1.3
(II) modeset(G0): Analog Display Input,  Input Voltage Level: 0.700/0.700 V
(II) modeset(G0): Sync:  Separate  Composite  SyncOnGreen
(II) modeset(G0): Indeterminate output size
(II) modeset(G0): Gamma: 2.50
(II) modeset(G0): No DPMS capabilities specified; RGB/Color Display
(II) modeset(G0): Default color space is primary color space
(II) modeset(G0): First detailed timing is preferred mode
(II) modeset(G0): redX: 0.640 redY: 0.330   greenX: 0.300 greenY: 0.600
(II) modeset(G0): blueX: 0.150 blueY: 0.060   whiteX: 0.312 whiteY: 0.329
(II) modeset(G0): Supported established timings:
(II) modeset(G0): 720x400@70Hz
(II) modeset(G0): 720x400@88Hz
(II) modeset(G0): 640x480@60Hz
(II) modeset(G0): 640x480@67Hz
(II) modeset(G0): 640x480@72Hz
(II) modeset(G0): 640x480@75Hz
(II) modeset(G0): 800x600@56Hz
(II) modeset(G0): 800x600@60Hz
(II) modeset(G0): 800x600@72Hz
(II) modeset(G0): 800x600@75Hz
(II) modeset(G0): 832x624@75Hz
(II) modeset(G0): 1024x768@87Hz (interlaced)
(II) modeset(G0): 1024x768@60Hz
(II) modeset(G0): 1024x768@70Hz
(II) modeset(G0): 1024x768@75Hz
(II) modeset(G0): 1280x1024@75Hz
(II) modeset(G0): Manufacturer's mask: 0
(II) modeset(G0): Supported standard timings:
(II) modeset(G0): #0: hsize: 1280  vsize 1024  refresh: 60  vid: 32897
(II) modeset(G0): #1: hsize: 1280  vsize 960  refresh: 75  vid: 20353
(II) modeset(G0): #2: hsize: 1280  vsize 960  refresh: 60  vid: 16513
(II) modeset(G0): #3: hsize: 1152  vsize 864  refresh: 75  vid: 20337
(II) modeset(G0): #4: hsize: 1152  vsize 864  refresh: 70  vid: 19057
(II) modeset(G0): #5: hsize: 1152  vsize 864  refresh: 60  vid: 16497
(II) modeset(G0): Supported detailed timing:
(II) modeset(G0): clock: 65.0 MHz   Image Size:  0 x 0 mm
(II) modeset(G0): h_active: 1024  h_sync: 1048  h_sync_end 1184 h_blank_end 1344 h_border: 0
(II) modeset(G0): v_active: 768  v_sync: 771  v_sync_end 777 v_blanking: 806 v_border: 0
(II) modeset(G0): Supported detailed timing:
(II) modeset(G0): clock: 135.0 MHz   Image Size:  0 x 0 mm
(II) modeset(G0): h_active: 1280  h_sync: 1296  h_sync_end 1440 h_blank_end 1688 h_border: 0
(II) modeset(G0): v_active: 1024  v_sync: 1025  v_sync_end 1028 v_blanking: 1066 v_border: 0
(II) modeset(G0): Ranges: V min: 40 V max: 100 Hz, H min: 30 H max: 95 kHz, PixClock max 215 MHz
(II) modeset(G0): Monitor name: Smart Cable
(II) modeset(G0): EDID (in hex):
(II) modeset(G0):       00ffffffffffff0006cf000000000000
(II) modeset(G0):       000d01036e0000960eee91a3544c9926
(II) modeset(G0):       0f5054ffff008180814f8140714f714a
(II) modeset(G0):       71400101010164190040410026301888
(II) modeset(G0):       3600000000000018bc34009851002a40
(II) modeset(G0):       10901300000000000018000000fd0028
(II) modeset(G0):       641e5f15000a202020202020000000fc
(II) modeset(G0):       00536d617274204361626c650a2000c1
(II) modeset(G0): Printing probed modes for output VGA-1-0
(II) modeset(G0): Modeline "1024x768"x60.0   65.00  1024 1048 1184 1344  768 771 777 806 -hsync -vsync (48.4 kHz eP)
(II) modeset(G0): Modeline "1280x1024"x60.0  108.00  1280 1328 1440 1688  1024 1025 1028 1066 +hsync +vsync (64.0 kHz e)
(II) modeset(G0): Modeline "1280x960"x75.0  129.94  1280 1368 1504 1728  960 961 964 1002 -hsync +vsync (75.2 kHz)
(II) modeset(G0): Modeline "1280x960"x60.0  108.00  1280 1376 1488 1800  960 961 964 1000 +hsync +vsync (60.0 kHz e)
(II) modeset(G0): Modeline "1152x864"x75.0  108.00  1152 1216 1344 1600  864 865 868 900 +hsync +vsync (67.5 kHz e)
(II) modeset(G0): Modeline "1152x864"x70.0   96.73  1152 1224 1344 1536  864 865 868 900 -hsync +vsync (63.0 kHz)
(II) modeset(G0): Modeline "1152x864"x60.0   81.58  1152 1216 1336 1520  864 865 868 895 -hsync +vsync (53.7 kHz)
(II) modeset(G0): Modeline "1024x768"x75.0   78.75  1024 1040 1136 1312  768 769 772 800 +hsync +vsync (60.0 kHz e)
(II) modeset(G0): Modeline "1024x768"x70.1   75.00  1024 1048 1184 1328  768 771 777 806 -hsync -vsync (56.5 kHz e)
(II) modeset(G0): Modeline "832x624"x74.6   57.28  832 864 928 1152  624 625 628 667 -hsync -vsync (49.7 kHz e)
(II) modeset(G0): Modeline "800x600"x72.2   50.00  800 856 976 1040  600 637 643 666 +hsync +vsync (48.1 kHz e)
(II) modeset(G0): Modeline "800x600"x75.0   49.50  800 816 896 1056  600 601 604 625 +hsync +vsync (46.9 kHz e)
(II) modeset(G0): Modeline "800x600"x60.3   40.00  800 840 968 1056  600 601 605 628 +hsync +vsync (37.9 kHz e)
(II) modeset(G0): Modeline "800x600"x56.2   36.00  800 824 896 1024  600 601 603 625 +hsync +vsync (35.2 kHz e)
(II) modeset(G0): Modeline "640x480"x75.0   31.50  640 656 720 840  480 481 484 500 -hsync -vsync (37.5 kHz e)
(II) modeset(G0): Modeline "640x480"x72.8   31.50  640 664 704 832  480 489 492 520 -hsync -vsync (37.9 kHz e)
(II) modeset(G0): Modeline "640x480"x66.7   30.24  640 704 768 864  480 483 486 525 -hsync -vsync (35.0 kHz e)
(II) modeset(G0): Modeline "640x480"x59.9   25.18  640 656 752 800  480 490 492 525 -hsync -vsync (31.5 kHz e)
(II) modeset(G0): Using default gamma of (1.0, 1.0, 1.0) unless otherwise stated.
(==) modeset(G0): DPI set to (96, 96)

...

(==) modeset(G0): Backing store enabled
(==) modeset(G0): Silken mouse enabled
(II) modeset(G0): RandR 1.2 enabled, ignore the following RandR disabled message.
(**) modeset(G0): DPMS enabled
(WW) modeset(G0): Option "Stereo" is not used
(WW) modeset(G0): Option "ConnectedMonitor" is not used
(WW) modeset(G0): Option "UseDisplayDevice" is not used
(WW) modeset(G0): Option "CustomEDID" is not used
(WW) modeset(G0): Option "MetaModes" is not used
(WW) modeset(G0): Option "nvidiaXineramaInfoOrder" is not used
(WW) modeset(G0): Option "SLI" is not used
(WW) modeset(G0): Option "MultiGPU" is not used
(WW) modeset(G0): Option "BaseMosaic" is not used

So, none of the options I’ve specified has had any effect, what so ever…

Changing the CustomEDID to point to VGA-1, or even VGA-1-0 (from the log), has zero effect.

Any ideas?

Ok, so far it has been about if the driver can be fooled into believing the K40 had outputs. Obviously, this doesn’t work. It will always just setup a virtual screen, so there’s maybe something to try: try to setup two screen sections and plumb them together in the serverlayout section, like with xinerama:
minimal example, needs work
Section “ServerLayout”
Identifier “Xinerama”
Screen 0 “Screen0” 0 0
Screen 1 “Screen1” LeftOf “Screen0”
Option “Xinerama” “on”
EndSection

Section “Screen”
Identifier “Screen0”
Device “nvidia”
Option “UseDisplayDevice” “none”
SubSection “Display”
Virtual 1920 1080
Depth 24
EndSubSection
EndSection

Section “Screen”
Identifier “Screen1”
Device “nvidia”
Option “UseDisplayDevice” “none”
SubSection “Display”
Virtual 1920 1080
Depth 24
EndSubSection
EndSection

Section “Device”
Identifier “nvidia”
Driver “nvidia”
VendorName “NVIDIA Corporation”
BusID “”
Option “AllowEmptyInitialConfiguration”
EndSection

Or maybe view it from a different perspective: setup one virtual screen and then start two X0VNCSERVER instances using the geometry parameter to split it.

Thanks Generix,

I’ve tried that, and for example TeamViewer will not recognize that as two screens. So, if I try to set up
2560x1440, 2880x1800
to be able to work on my two remote screens at FullScreen, it won’t work.

Anyway, we can close this, as I don’t think Tesla cards can deal with this particular situation.

So, now I’ve taken 1 of the K40’s out, and replaced it with an M5000. Yes yes, not a server card, I know. But at least it has no trouble handling the proper setup!

In the end, the following provided exactly what I wanted (albeit, not in Tesla-land):

Section "ServerLayout"
    Identifier     "Layout0"
    Screen      0  "Screen0" 0 0
    InputDevice    "Keyboard0" "CoreKeyboard"
    InputDevice    "Mouse0" "CorePointer"
    Option         "Xinerama" "0"
EndSection

Section "Files"
EndSection

#Section "Module" 
#    Load           "modesetting"
#EndSection 

Section "InputDevice"
    # generated from default
    Identifier     "Mouse0"
    Driver         "mouse"
    Option         "Protocol" "auto"
    Option         "Device" "/dev/psaux"
    Option         "Emulate3Buttons" "no"
    Option         "ZAxisMapping" "4 5"
EndSection

Section "InputDevice"
    # generated from default
    Identifier     "Keyboard0"
    Driver         "kbd"
EndSection

Section "Monitor"
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "Unknown"
    HorizSync       24.0 - 140.0
    VertRefresh     30.0 - 122.0
    Option         "DPMS"
    ModeLine       "1024x768"    65.00 1024 1048 1184 1344  768  771  777  806 -hsync -vsync
    ModeLine       "1280x720"    74.18 1280 1390 1430 1650  720  725  730  750 +hsync +vsync
    ModeLine       "1280x1024"  108.00 1280 1328 1440 1688 1024 1025 1028 1066 +hsync +vsync
    ModeLine       "1440x900"   106.50 1440 1520 1672 1904  900  901  904  932 -hsync +vsync
    ModeLine       "1600x1200"  162.00 1600 1664 1856 2160 1200 1201 1204 1250 +hsync +vsync
    ModeLine       "1920x1080"  148.50 1920 1960 2016 2200 1080 1082 1088 1125 -hsync +vsync
    Modeline       "2560x1440"  241.50 2560 2608 2640 2720 1440 1443 1448 1481 +hsync -vsync
    Modeline       "2880x1800"  337.75 2880 2928 2960 3040 1800 1803 1809 1852 +hsync -vsync
    Modeline       "3840x2160"  594.00 3840 4016 4104 4400 2160 2168 2178 2250 +hsync +vsync
    Modeline       "4096x2160_30" 361.71 4096 4352 4792 5488 2160 2161 2164 2197 -HSync +Vsync
    Modeline       "4096x2160_60" 556.73 4096 4104 4136 4176 2160 2208 2216 2222 +hsync +vsync
    Option         "PreferredMode"  "1920x1080"
    #Option         "DPI" "96 x 96"
EndSection

Section "Monitor"
    Identifier     "Monitor1"
    VendorName     "Unknown"
    ModelName      "Unknown"
    HorizSync       24.0 - 140.0
    VertRefresh     30.0 - 122.0
    Option         "DPMS"
    ModeLine       "1024x768"    65.00 1024 1048 1184 1344  768  771  777  806 -hsync -vsync
    ModeLine       "1280x720"    74.18 1280 1390 1430 1650  720  725  730  750 +hsync +vsync
    ModeLine       "1280x1024"  108.00 1280 1328 1440 1688 1024 1025 1028 1066 +hsync +vsync
    ModeLine       "1440x900"   106.50 1440 1520 1672 1904  900  901  904  932 -hsync +vsync
    ModeLine       "1600x1200"  162.00 1600 1664 1856 2160 1200 1201 1204 1250 +hsync +vsync
    ModeLine       "1920x1080"  148.50 1920 1960 2016 2200 1080 1082 1088 1125 -hsync +vsync
    Modeline       "2560x1440"  241.50 2560 2608 2640 2720 1440 1443 1448 1481 +hsync -vsync
    Modeline       "2880x1800"  337.75 2880 2928 2960 3040 1800 1803 1809 1852 +hsync -vsync
    Modeline       "3840x2160"  594.00 3840 4016 4104 4400 2160 2168 2178 2250 +hsync +vsync
    Modeline       "4096x2160_30" 361.71 4096 4352 4792 5488 2160 2161 2164 2197 -HSync +Vsync
    Modeline       "4096x2160_60" 556.73 4096 4104 4136 4176 2160 2208 2216 2222 +hsync +vsync
    Option         "PreferredMode"  "1920x1080"
    #Option         "DPI" "96 x 96"
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "Tesla M5000"
    BusID          "PCI:40:0:0"
    Option         "ConnectToAcpid" "Off"
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "Stereo" "0"
    Option         "SLI" "Off"
    Option         "MultiGPU" "Off"
    Option         "BaseMosaic" "off"

    #Option         "ModeDebug" "true"

    Option         "UseEDID" "False"
    Option         "ModeValidation" "NoEdidModes"
    Option         "ConnectedMonitor" "DFP-1, DFP-3"
    Option         "UseDisplayDevice" "DFP-1, DFP-3"
    Option         "MetaModes" "DFP-1: 1920x1080 +0+0, DFP-3: 1920x1080 +1920+0"
    Option         "nvidiaXineramaInfoOrder" "DFP-1"

    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

Again, thank you for all your help and suggestions Generix!

Ref: Two x0vncservers, yes, I actually do that too :)

My .xinitrc (not using GDM/KDM/…) actually calls a script which queries xrandr for number of connected screens, then fires up enough x0vncservers to host them, waiting for the last one to exit, then fires up a new set of identical ones (in case changing the resolution kills them; sometimes it happens, other times not).

However, I really needed TeamViewer to work properly, as it’s provides a whole lot better interface, and can deal with all the additional screens, swap between them, or fire up separate windows for them.

Anyways, here’s the x0vncserver script I put (hacked) together, in case others might want to do something similar:

#!/bin/sh

while true
do
    # Get active screens
    XSCREENS=$(xrandr | grep " connected" | perl -ne 'while (s/^\S+ connected[\s\D]* (\S+) .*$/$1/g) { print "$_"}')

    # Process input by newlines
    IFS=$'\n'

    # Start with VNC port 5900
    vncport=5900

    # Loop over each screen and start a separate VNC server    
    LASTPID=0
    for geometry in $XSCREENS
    do
        # Get a notification, so -n later makes sense
        jobs &>/dev/null

        x0vncserver -PasswordFile /home/hue/.vnc/passwd -display=:0 -rfbport=$vncport -Geometry=$geometry &

        # Get job changes
        new_job_started="$(jobs -n)"

        # If we got something, we know the previous command is infact running, so grab its PID
        if [ -n "$new_job_started" ];then
            LASTPID=$!
        else
            LASTPID=
        fi

        # Increase port count, for next VNC instance
        vncport=$((vncport+1))
    done

    # After creating all VNC sessions, now wait for the last one to exit (likely due to resolution changes)
    while s=`ps -p $LASTPID -o s=` && [[ "$s" && "$s" != 'Z' ]]; do
        sleep 1
    done

    # Pause slightly before respawning the VNC server, giving the Xorg a little time to set up
    # ..as bringing up 8xGPUs in my case takes time
    sleep 5
done