NVidia Multihead
Problem
I am running a CentOS 5.3 x86_64 (fully updated as of today). It has a video card I cannot identify -- I run lspci and it identifies itself as:
01:00.0 VGA compatible controller: nVidia Corporation Unknown device 0615 (rev a2)
The previous admin left me with the linux driver NVIDIA-x86_64-185.18.31-pkg2.run and having installed that it seems to work properly in single monitor mode.
I have two identical monitors. Both are connected through DVI connectors on the back of the video card.
However when I try to enable dual-monitor mode through the Display menu applet, it doesn't work. The computer starts the NVidia driver and then kicks back to the command prompt.
The tail end of the Xorg.log file is:
Backtrace:
0: X(xf86SigHandler+0x71) [0x4865b1]
1: /lib64/libc.so.6 [0x303de30280]
2: /usr/lib64/xorg/modules/librac.so [0x2aedd36f803a]
Fatal server error:
Caught signal 4. Server aborting
(II) Screen 0 shares mem & io resources
(II) Screen 1 shares mem & io resources
I have also done some fooling with the xorg.conf file directly such as duplicating the monitor definition between screens, but it always dies the same way.
Does anyone know how I might identify this card's chip properly to ensure I have the correct driver, and is there a good guide on the web anywhere for manually configuring two monitors off of one video card?
Solution
It turns out that one of the goodies installed by the NVidia driver is a NVidia-specific control panel that deals with all this for you.
What I did instead:
- in the Display applet, select Dual Head, the "second" video card, and Spanning Dekstops.
- select a random LCD display that is sized appropriately.
- exit X.
- in /etc/xorg.conf: remove the second Monitor definition and duplicate the first Monitor definition. Rename the second Monitor definition to be Identifier "Monitor1".
- in /etc/xorg.conf: Confirm the Device section for Videocard1 is correct -- the Display applet left it using the vesa instead of the nvidia driver.
- in /etc/xorg.conf: I also deleted the Modes line for Screen1 , since it was not in the definition of Screen0.
Now it works.
I'd still be interested in how to identify the chip on the card, though.
Working xorg.conf
# Xorg configuration created by system-config-display
Section "ServerLayout"
Identifier "Multihead layout"
Screen 0 "Screen0" LeftOf "Screen1"
Screen 1 "Screen1" 0 0
InputDevice "Mouse0" "CorePointer"
InputDevice "Keyboard0" "CoreKeyboard"
Option "Xinerama" "on"
Option "Clone" "off"
EndSection
Section "InputDevice"
# generated from default
Identifier "Mouse0"
Driver "mouse"
Option "Protocol" "auto"
Option "Device" "/dev/input/mice"
Option "Emulate3Buttons" "no"
Option "ZAxisMapping" "4 5"
EndSection
Section "InputDevice"
Identifier "Keyboard0"
Driver "kbd"
Option "XkbModel" "pc105"
Option "XkbLayout" "us"
EndSection
Section "Monitor"
Identifier "Monitor0"
VendorName "Samsung"
ModelName "2243SWX"
### Comment all HorizSync and VertSync values to use DDC:
HorizSync 28.0 - 33.0
VertRefresh 43.0 - 72.0
Option "DPMS"
EndSection
Section "Monitor"
Identifier "Monitor1"
VendorName "Samsung"
ModelName "2243SWX"
### Comment all HorizSync and VertSync values to use DDC:
HorizSync 28.0 - 33.0
VertRefresh 43.0 - 72.0
Option "DPMS"
EndSection
Section "Device"
Identifier "Videocard0"
Driver "nvidia"
EndSection
Section "Device"
Identifier "Videocard1"
Driver "nvidia"
VendorName "Videocard Vendor"
BoardName "nVidia Corporation Unknown device 0615"
BusID "PCI:1:0:0"
Screen 1
EndSection
Section "Screen"
Identifier "Screen0"
Device "Videocard0"
Monitor "Monitor0"
DefaultDepth 24
SubSection "Display"
Viewport 0 0
Depth 24
EndSubSection
EndSection
Section "Screen"
Identifier "Screen1"
Device "Videocard1"
Monitor "Monitor1"
DefaultDepth 24
SubSection "Display"
Viewport 0 0
Depth 24
EndSubSection
EndSection