Multiseat on Dual ATI and Dual NVIDIA Sat, Feb 7. 2009
I haven't had a clear picture of where the current X drivers stand in terms of multiseat and multicard support. So, after a week of fighting with drivers, video cards, feisty GPU power cables and hard disk drives mounted in such a way that they block PCIe slots, I've compiled this table of the state of current ATI and NVIDIA drivers (excuse the width of the table):
|Dual ATI R710 (Asus EAH4550)||radeon (xorg-x11-drv-ati-6.10.0-1.fc10.x86_64)||System locks up on X server exit, otherwise works with multiseat configuration||freedesktop.org bug 19956|
|radeonhd (xorg-x11-drv-radeonhd.x86_64 1.2.4-1.1.20081212git.fc10)||Multiseat configuration starts, but requires setpci command, has has image corruption on 2nd display at resolutions above 1280x1024, and becomes progressively slower on 1st display over time. Text VT is unusable after X server terminates||(List server for radeonhd list not functioning?)|
|Dual NVIDIA 9800GTX (Asus EN9800GTX+)||vesa (xorg-x11-drv-vesa-2.0.0-1.fc10.x86_64)||Kernel oops||Didn't expect to work|
|nv (xorg-x11-drv-nv-2.1.12-6.fc10.x86_64)||System lockup||Known not to work by upstream|
|nouveau (xorg-x11-drv-nouveau-0.0.11- 1.20081119git65b956f.fc10.x86_64)||Kernel oops||Known not to work by upstream|
|nvidia (xorg-x11-drv-nvidia-180.25-1.fc10.x86_64 from rpmfusion via kmod-nvidia)||Works without error||Proprietary driver|
Testing was performed using Fedora 10 and Xorg 1.5.3 on an Asus P5E3 Premium motherboard with an Intel Q6600 processor, using BusID sections in X server configuration files to start a separate X server for each seat, turning off AutoAddDevices, using the evdev driver with device lines for each manually-configured keyboard/mouse input device (/dev/input/eventX), and starting the X servers with --sharevts. Initial tests did not use a display manager; later tests on drivers that passed the first tests used xdm (with mixed success).
At this time, the radeon driver appears to be the Open Source driver closest to being able to run a multiseat, multi-card system. I tried to find out more about the cause of the radeon lockup, but single-stepping with gdb yielded the only successful exit from the X server (!!!), and in every other case the system lockup has prevented me from getting useful information.
- xdm causes SELinux AVC denials in this configuration as packaged in F10 (writing a temp file), and displays a message on the login dialog about the displays being insecure (?).
- Current console policy assumes a single seat. This has an impact on sound use; it probably also affects removable storage, but I did not test this.
- The radeon driver runs glxgears at about 100-200 fps on each of two seats. The nvidia driver runs glxgears at about 600 fps on each of the seats. Oddly, glxgear startup under the nvidia driver complains about /dev/nvidiactl being unwritable, but it runs; however, making /dev/nvidiactl writable prevents glxgears from starting successfully.
Next round: layered (Xephyr-on-X) servers for multiseat on a single card.
Please ty kmod-fglrx drivers. Also gnmoe xrandr toolkit (gnome-display-properties) to avoid xorg config
You suggest avoiding using an xorg config file -- at the present time, this is not possible for a multiseat system because of the need to limit the X server to a single card and to select the input devices.
"nvidia (xorg-x11-drv-nvidia) - Works without error - Proprietary driver "
And that is why I use an nvidia card + the proprietary driver on my desktop. Would I prefer an open source alternative? Of course! There are a whole host of problems that come with having a proprietary blob driver like nvidia's, but the fact of the matter is, in this particualar case, it "just works"(tm), and it's the only thing that works. If you want to actually make full use of your graphics card under Linux, you just need the proprietary driver. I hope this changes in the future, and it makes me uncomfortable, but until then I'm going with the thing that makes it work.
I NVidia dual seat setup with proprietary driver working fine with Slackware,KDM/KDE. Only really annoying thing is users are logged out every time a system bell is invoked.
Any ideas on how to fix this?
i'm not totally clear after reading this -- is this multiseat on a single card, or are you talking about having 2 similar cards and running one seat per card? I notice you use BusID's to distinguish the two seats; is there one busid per output, or one per card?
thanks for this!
What do you exactly mean with 'setpci'? When do you execute it? And with which arguments?
Can you tell me what your setpci lines look like (and when do you execute them)? And your xorg.conf?
This means 4 out of 5 tested free drivers can't do multicard multiseat. This is really really bad. Any idea why this is?
Why didn't you include fglrx?
I didn't include fglrx because I couldn't even get it to do single card/single seat on this particular hardware.