When I upgraded my computer, I wanted to make it available to my family even when I’m sitting in front of it (this happens most of the time). Natural way to allow this is to connect additional terminals to the computer. The simplest, cheapest and power saving kind of terminal consists just of a set of I/O devices, such as a monitor, a keyboard and a mouse or a TV with a remote control.
So I equipped the new computer with two graphics cards, assuming that connecting multiple input and output devices to the computer should be just a matter of having corresponding number of graphics cards and free USB ports available. Big mistake! Never, never underestimate software problems. It took me several months to make the multiseat setup actually working and still not without problems.
The very first problem was that X.Org 7.0 refused to run on the second graphics card at all. This is some mismatch between X.Org 7.0/6.9 and recent Linux kernels. After a lot of experiments and googling I finally found a patch that works for me.
Now I was able to run two different X servers, but only on different Linux consoles, i.e. not accessible in parallel. I followed the very nice Multiseat HOWTO, but it still didn’t work – my X session has always frozen when I started the second instance of the X server sharing the console. After additional experiments and googling I’ve found it might be worth to try running different video drivers on each of the graphics cards. The two graphics cards I’ve got in my computer are the same, so I tried to run one of them with the X.Org ATI driver and the other with the ATI proprietary driver. Indeed, I can run two X servers in parallel now. Not without limitiatons: While the free X.Org driver runs fine, the ATI proprietary driver runs only on the first graphics card (it refuses to start on the second card), without 3D acceleration (compilation of the fglrx kernel module failed) and it freezes the computer when one logs out (this is a real problem that I don’t understand since the X server is not restarted on logout). Another problem is that X.Org doesn’t allow switching to a Linux text console when running multiseat.
An additional interesting observation is that one can’t rely even on such basic things like that a keyboard works. My USB keyboard stops working very soon after boot and needs to be unplugged and plugged in again. Then it works fine, but if I do it when X has already been started, the mouse connected to the USB hub built in the keyboard stops working completely. AFAIK there is a lot of problems with USB keyboards on Linux, often without solution. Well, this is so called computer age…