I’ve been attempting to setup my GTX480 for dual x screen, one with an attached monitor(DISPLAY=0) the other without(DISPLAY=1). The second screen without monitor will be used for automated rendering jobs and I won’t need to see the hundreds of windows while the jobs run. I used nvidia-settings tool to get 2 screen setup with 2 monitors plugged in, then I attempted to remove one of the monitor by providing the edid.bin file saved from nvidia-settings using the CustomEDID option. It doesn’t work! The error I got from startx is:
155 (EE) Mar 08 08:50:16 NVIDIA(0): Failed to assign any connected display devices to X screen0
156 (EE) Mar 08 08:50:16 NVIDIA(0): Failing initialization of X screen 0
I’ll attach my xorg.conf as well.
Any idea? Can this even work? Did nvidia “apple” us(ie. force us to pay for a Quadro to get this seemingly trivial feature)? I sincerely hope not, that would tarnish nvidia’s other wise spotless reputation in my book.
A big thanks to anyone who could help!
xorg-conf.txt (2.67 KB)
You can try using
Option "UseDisplayDevice" "none"
but please be aware that multiple simultaneous X servers (so-called “multiseat” configurations) are not supported and you are likely to run into problems.
I may have misunderstood. Did you mean DISPLAY=:0 and DISPLAY=:1, or DISPLAY=:0.0 and DISPLAY=:0.1? You should be able to run a second X screen within a single X server by using the ConnectedMonitor option to make the X driver pretend that a monitor is connected to the second screen when there really isn’t one. You can also configure the X server with a gap between the screens to prevent the pointer from moving from one to the other. However, this relies on your applications honoring the screen part of the $DISPLAY variable so they don’t interfere with your work on screen :0.0.
sorry for being so sloppy, I meant DISPLAY=:0.0, and DISPLAY:0.1. And that works OK as long as both the monitors are plugged in when X starts. I want my main monitor plugged while the other unplugged. Adding the ConnectedMonitor option to the second screen prevents X from starting at all. With an error
NVIDIA(1) Failed to assign any connected display devices to screen 1
NVIDIA(1) Failing initialization of X screen 1
Here is my xorg.conf file. I used nvidia-settings to generate it, I saved the edid.bins, and added those CustomEDID lines. Not sure if they should be used with ConnectedMonitor?
# nvidia-settings: X configuration file generated by nvidia-settings
# nvidia-settings: version 310.19 (buildmeister@swio-display-x86-rhel47-08.nvidia.com) Thu Nov 8 02:08:55 PST 2012
Section "ServerLayout"
Identifier "Layout0"
Screen 0 "Screen0" RightOf "Screen1"
Screen 1 "Screen1" 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 "Monitor1"
VendorName "Unknown"
ModelName "HP LP3065"
HorizSync 49.3 - 98.5
VertRefresh 59.9 - 59.9
Option "DPMS"
EndSection
Section "Monitor"
# HorizSync source: edid, VertRefresh source: edid
Identifier "Monitor0"
VendorName "Unknown"
ModelName "DELL 2408WFP"
HorizSync 30.0 - 83.0
VertRefresh 56.0 - 76.0
Option "DPMS"
EndSection
Section "Device"
Identifier "Device1"
Driver "nvidia"
VendorName "NVIDIA Corporation"
BoardName "GeForce GTX 480"
BusID "PCI:5:0:0"
Screen 1
EndSection
Section "Device"
Identifier "Device0"
Driver "nvidia"
VendorName "NVIDIA Corporation"
BoardName "GeForce GTX 480"
BusID "PCI:5:0:0"
Screen 0
EndSection
Section "Screen"
Identifier "Screen1"
Device "Device1"
Monitor "Monitor1"
DefaultDepth 24
Option "Stereo" "0"
Option "nvidiaXineramaInfoOrder" "DFP-0"
Option "metamodes" "DFP: 2560x1600_60 +0+0; DFP: nvidia-auto-select +0+0"
SubSection "Display"
Depth 24
EndSubSection
EndSection
Section "Screen"
Identifier "Screen0"
Device "Device0"
Monitor "Monitor0"
DefaultDepth 24
Option "Stereo" "0"
#Option "ConnectedMonitor" "CRT"
Option "CustomEDID" "CRT:/etc/X11/dell-edid.bin"
Option "metamodes" "CRT: 1920x1200_60 +0+0; CRT: nvidia-auto-select +0+0"
SubSection "Display"
Depth 24
EndSubSection
EndSection
no luck yet, has anyone been able to do this?
ConnectedMonitor is a little weird, because it applies on a per-device basis and not a per-screen basis. Basically, it overrides what the driver thinks is connected. You need to set it on screen 0 so that it knows that there are two display devices “connected” so that it can initialize screen 0 and still assign another display device to screen 1. The xorg.conf makes this hard because it doesn’t have a way of specifying per-device options.
The easiest option is probably to set ConnectedMonitor on both screens the same way, and to specify both devices you want to use. E.g.,
Option "ConnectedMonitor" "CRT-0, CRT-1"
If the driver picks the monitors in the wrong order by default, you can use the UseDisplayDevice option to affect that decision. So for screen 0, you could do something like
Option "ConnectedMonitor" "CRT-0, CRT-1"
Option "UseDisplayDevice" "CRT-1"