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:
- Build a Six-headed, Six-user Linux System
- MultiseatX — Community Ubuntu Documentation
- Multiseat X Under X11R6.9/7.0
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
nvornouveaudriver, 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-scrollto your kernel boot parameters. - When launching X.Org (or in your
gdm.confconfiguration), the-novtswitchand-sharevtsoptions 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 ofgdm.conf, setVTAllocation=falseto stop GDM from appending its own arguments to the X.Org command line. Specifyvt7(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 inxorg.confto 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
audiogroup!


There’s a “Free for personal use” multi-seat commercial product that achieves the same end goal with a stable end result with dramatically less effort (albeit at slightly higher cost).
Though the software is commercial http://userful.com (though an opensource project http://openuserful.sourceforge.net/ is in the works). it saves you money on hardware, allowing you to use $20/head video cards, and $5 USB keyboards and setup and configure it in 5 minutes.
How is Userful’s product different from or better than other multi-seat approaches?
Userful’s approach virtualizes a single instance of X to support multiple users. Other multi-seat approaches start separate instances of X (one for each user). The separate instance approach has the following limitations:
1. They don’t support using both heads on consumer dual head cards. 2. They are very finicky about the graphics cards and chipsets supported. 3. They are less resource efficient (each instance of X imposes a RAM and CPU overhead).
Userful has been deploying multi-station Linux since early 2002 and developed some GPL’d kernel and X patches back in 2002 to help make multi-station work. Eventually they switched to this new approach because of the difficulties listed above.
Userful Multiplier package also includes some graphical install and configuration tools, cross distro testing and quality assurance, and builds RPM/DEB packages to make installation and removal on supported distros comparatively effortless.
the free version is available here: http://userful.com/products/free-2-user
Whoa, comment advertisement!
hmm, i thought sharevts is required, i have my multiseat setup. using Jaunty and without sharevts only one terminal works you sure about this? Can you tell me how you get multiple simultaneous seats working with out sharevts?
Thanks Jamey
PS. I have it working pretty good, with radeon 3450 using the propetary drivers. I have one issue when i shut down the computer i get some message about something freezing for 60s but it eventully will shutdown after 4 mins, kind of sucks though. Think this is a gdm issue
Also PulseAudio i fandangled to work in user sessions. I just have a user session per seat had to write script and disable some autorestore things, and make three different default.pa.seatN. If interested I can provide more details. But it works perfectly using hdmi, or usb audio.
Out-
Jamey,
I just built a whole lab of 4-seat computers for a school (HDMI audio), and am interested in your PulseAudio script to set up default.pa.seatN. Could you post or email?
Also, did you have issues with logoff from the first video card causing a momentary freeze on the other seats?
Hi
I have a multiseat setup working too, since i have a dual-head ATI i had to use the Xephyr method.
Jeremy did you manage to get 3D acceleration with ATI?
Never done multiseat with ATI, so I can’t answer that.