Multiseat Issues with Nvidia Cards Sat, Dec 17. 2005
- The displays initialize in sequence, but
- Only the last display is active (the mouse pointer moves, the cursor blinks, and so forth) even though all displays show a valid image (e.g., session login display from kdm or gdm).
This problem is apparently caused by card initialization problems. The BIOS code on some cards tries to initialize other cards, which can produce this symptom, display shutdown on other cards, or system lockups.
My current home setup has an Nvidia 5200 AGP card and two GE Force (FX440 and MX400) PCI cards and is working fine. It also has an old Matrox Millenium which used to work fine with the old-style Backstreet Ruby configuration (along with one of the Nvidia PCI cards) but which does not work with the current configuration. An old PCI ATI card (Rage 128+DVD) also does not work with this setup. I'll probably add another eVGA GeForce MX4000 PCI card over the holidays so that my daughters can stop fighting over the third seat at homework time (the other two are for my wife and I).
Fiddling with the card initialization options (such as "NoInit10") can sometimes help with the problem. When using Backstreet Ruby, I found it useful to start up a single multiscreen display to get the cards initially set up, then to kill that server and continue with system startup. I did this with some lines like these in the configuration file:
X -config /etc/X11/xorg.conf.singleseat-multihead&
I'd appreciate getting as many reports as possible from people who have had success with a multiseat configuration (using 6.9/7.0 as outlined in my mini-HOWTO) as well as those experiencing problems. For each card, please let us know:
- The chipset
- The card manufacturer (and model if available)
- The interface type
Plus the driver(s) you've tried and the X.org/XFree86 version. I'll compile a report and post it here.
Yes, i have get the same results as you...:
I use nvidia 5600 + Ati Reage 128 as multiseat
I used kernel 2.6.10 + ruby patch + 4.2.1 XFree86 it was fine, not problems at all
.... and in the last days, i make an upgrade to non pathced 126.96.36.199 + xorg 6.9:
ato rage pro could not be initalised at all, i used the same trick as you (start X to boot he ATI's BIOS for 10 seconds....), but with xorg it does not help.
But what can help (at the moment i use so) set in the BIOS: to not use the AGP card as primary, but the PCI. So the BIOS can initalize the ATI, and the Xorg's int10 the nvidia.
I have GeForce4 MX 440 . As I have read this card is capable of TwinView . I have tried use dual head on these 2 outputs. But this does not work, on both monitors is the same picture. I use xorg and this section in xorg.conf:
I also have a videocard with TwinView. My card is a ATI X600 and i want know if xorg works with my TwinView or i must buy other videocard.
Xorg works with TwinView but not for multiseat (well, unless you do the Xnest thing, which is possible but not an ideal solution).
Thanks Chris for your insight.
Let me get this straight. This will not work on most Dual Headed graphics cards? And the reason is because the server can not handle 2 screens at the same physical PCI address?
Do you know if there are plans to make this work, or who to ask?
Many of the X drivers will work just fine with two screens at one physical PCI address -- but that is two screens in X terminology, not two displays. So you can use both outputs for one user, but not for two separate users.
The reason for this is that each display is a separate instance of the X server (process). You can't have two processes access the same hardware without building some arbitration code, or having the first server expose an interface to the card to the second server, or building a arbitration process that both servers would talk to.
As far as I know, nobody is working on this at the moment. But an interested developer could step up to the plate. (It's crossed my own mind to do this, but [a] my C is rusty and [b] my plate is full!).
Thanks for the quick reply.
The thought crossed my mind too. But I also have the [a] and [b] afflictions.
First of all: Thank you a lot for your HOWTO.
At first I had just the problem with only one screen beeing accesible, but after installing the nvidia-drivers, that is solved.
The only issue I still have is, that on one of my two screens, the mouse pointer is not visible (the mouse is usable, if you can guess the pointers position). I'll check that in the follwoing days.
Ubuntu 6.0.6 / 2.6.15
One PCI-E NVidia GeForce 6200 and one NVidia C51 (OnBoard).
I think this is due to multi heads confusing the hardware cursor on nvidia multi-head cards. If you put
Option "HWCursor" "off" in your
Section "Screen", that will probably fix it.
By the way, did you get 6200 and C51 to start up without any fix to the initialisation problem? I am using the same, but only the second card will sart up. I am using the latest nvidia AMD64 drivers.
Thanks very very much for your blog post(s) about this. It's not well-documented anywhere really, so the mini howto was most welcome. Before I found your blog entry, I was pretty sure I was going to have to screw around with Xephyr somehow. Of course, I still had to spend hours trying random things before it actually worked.
The key in my case was the "SingleCard" option in xorg.conf, put in a ServerLayout section:
Option "SingleCard" "Yes"
This makes that serverlayout (one of your seats) only send a reset to the particular PCI Bus ID of the card it uses. The default is to actually send a reset out to all devices, apparently? In any case, initializing my AGP card was freezing up my PCI card, and this option fixed it.
Others recommend various settings of InitPrimary and NoInt10 among other things - all dealing with getting two video cards up and running without clobbering each other. Check out "man xorg.conf" for some details (but not much). Really, I think it's still a bit of a black art, and there's not much to do but tons of trial-and-error until you find what works for your particular set of cards. In any case, I haven't seen this "SingleCard" setting mentioned in your blog or the comments, so I thought I'd put it in here.
For the record I have a Radeon 9000 AGP (radeon driver) and a Matrox Mystique PCI (mga driver). I have both running at the same time now - just need to work out the input devices, gdm, etc... But the hard part is done, as far as I can tell. I think I'm nearly there. Thanks again!
We are trying multiseat with a Nvidia Quadro FX 3450 and Quadro FX 540,we have the first seat (seat0) with the two outputs of FX3450 (analog 1280x1024 + Digital 2048x2048) and the other seat (seat1) with the analoge output of FX 540 when we launch the first seat with:
X -sharevts -novtswitch -layout Seat0 & On the first screen appear a deffect like a cursor blink. What can be the problem?
I'm having the same problem with my Ati Radeon 9600 Pro AGP(fglrx) & My Appian Jeronimo PCI (glint).
I have a Multiseat system with four nvidia cards working, it is almost fine, the only problem is that sometimes the first X screen shifts a little bit to the right, it looks like that happens when a console message is generated (if you unplug the netowork cable for example), do you have any idea on how to avoid that!
Alexander, I think that a comment I made on another article might help -- try this:
Medium success. Have got the two layouts set up and working (independently) but they seem to override each other.
Have NVidia GeForce 7600GS, using proprieatry nvidia drivers.
Reported bug here:
I have a 2-seat-system with 2 identical nvidia 6200 cards using the nvidia driver. This had unpredictable failures to start the 2nd screen, which alway left the following syslog entries:
Feb 17 20:51:24 enter kernel: [ 58.078043] nvidia: module license 'NVIDIA' taints kernel.
Feb 17 20:51:28 enter kernel: [ 60.058039] ACPI: PCI Interrupt 0000:01:00.0[A] -> GSI 18 (level, low) -> IRQ 18
Feb 17 20:51:28 enter kernel: [ 60.058039] PCI: Setting latency timer of device 0000:01:00.0 to 64
Feb 17 20:51:28 enter kernel: [ 61.476444] ACPI: PCI Interrupt 0000:05:00.0[A] -> GSI 19 (level, low) -> IRQ 19
Feb 17 20:51:28 enter kernel: [ 61.512531] PCI: Setting latency timer of device 0000:05:00.0 to 64
Feb 17 20:51:28 enter kernel: [ 61.517851] NVRM: The NVIDIA GPU 05:00.0 (PCI ID: 10de:0163) installed
Feb 17 20:51:28 enter kernel: [ 61.517853] NVRM: in this system is not supported by the 180.22 NVIDIA Linux
Feb 17 20:51:28 enter kernel: [ 61.517854] NVRM: graphics driver release. Please see 'Appendix A -
Feb 17 20:51:28 enter kernel: [ 61.517856] NVRM: Supported NVIDIA GPU Products' in this release's README,
Feb 17 20:51:28 enter kernel: [ 61.517857] NVRM: available on the Linux graphics driver download page at
Feb 17 20:51:28 enter kernel: [ 61.517858] NVRM: www.nvidia.com.
Feb 17 20:51:28 enter kernel: [ 61.517867] nvidia: probe of 0000:05:00.0 failed with error -1
Feb 17 20:51:28 enter kernel: [ 61.517893] NVRM: The NVIDIA probe routine failed for 1 device(s).
Feb 17 20:51:28 enter kernel: [ 61.517896] NVRM: loading NVIDIA UNIX x86_64 Kernel Module 180.22 Tue Jan 6 09:15:58 PST 2009
The error message about an unsupported GPU is nonsense, probably the second xorg ist somehow disturbing the module load.
What finally helped was preloading the nvidia kernel module with an /etc/modules entry.