Multiseat tips

3 August 2009

Recently, I’ve set up multiseat on my system, which means that, unlike multihead, where the desktop is expanded to two monitors, two sets of monitors, keyboards, and mice are attached to the computer, but run separate desktop sessions, meaning the computer is acting like two separate computers.

The setup is very neat, and performance is surprisingly good. For all but the most graphically and processor-intensive applications, the fact two people are logged on to the machine is not even noticeable, from a performance point of view.

Some helpful guides on setting such a system up are:

However, there are a few gotchas when setting it up. Hopefully this list will be of help.

  • Multiseat is very buggy. Test one X server at a time (by manually launching it with the right parameters), and do it from a remote computer over an SSH session, because your display will probably get corrupted, making your console temporarily unusable if you make even the slightest mistake.
  • If the display is corrupted, and you are restarting X several times, and it doesn’t look like it’s going to work, it’s probably a good idea to reboot (do it safely, by either remotely rebooting, hitting Ctrl+Alt+Delete, or by using the Raising Skinny Elephants trick), because there’s a good chance your problems will be solved after a reboot.
  • If you are using NVIDIA cards with the nv or nouveau driver, while I commend you for supporting free software, I have never got those drivers working with multiseat. I recommend running the proprietary driver (and different driver versions have different glitches with multiseat — if you are having problems, try an older — or newer — driver).
  • Don’t mix-and-match video cards of different brands. A 3Dfx and NVIDIA card won’t play nicely, for example, but an NVIDIA and NVIDIA card may. Also, there are weird bugs with certain models. For example, my GeForce 7600GT and GeForce 6200 don’t work well together, but the GeForce Go 6150 and GeForce 6200 work fine.
  • If you are using an ATI Radeon, then use the Xephyr method. Radeons cannot support the use of the Screen keyword in separate layouts.
  • If you are getting issues with the screen scrolling or rotating of sorts (like a sideways badly tuned old-style television), then try adding no-scroll to your kernel boot parameters.
  • When launching X.Org (or in your gdm.conf configuration), the -novtswitch and -sharevts options that are described in all multiseat tutorials can sometimes cause more harm than good, and may even be unnecessary. For example, if you use -sharevts, your keystrokes may silently be duplicated to a hidden login prompt which could wreak havoc on your system.
  • In the [daemon] section of gdm.conf, set VTAllocation=false to stop GDM from appending its own arguments to the X.Org command line. Specify vt7 (or whatever VT you want X.Org to run on) manually on the X command line — and make sure both X servers are set to the same VT.
  • Add Option "GrabDevice" "yes" to your input devices in xorg.conf to fix a bug where the display scrolls randomly or when you press enter.
  • Sound is a pain to get working. Make sure PulseAudio is either running system-wide, or make PulseAudio use dmix:0 instead of hw:0 as a device (yes, I know Lennart would cringe, but at least it’s more reliable). If you created a second user to test with, don’t forget to add him/her to the audio group!

7 replies

Leave a reply