Configuring multiseat X workstation

Introduction

A multiseat, multi-station or multiterminal configuration is a single computer which supports multiple users at the same time. The configuration typically consist of one monitor, keyboard and mouse for each user.1.


Surprisingly, no major Linux distro offers automated tools to configure a multiseat workstation.

You should be familiar with command line to configure a multiseat X workstation using this HOWTO.


If you have anything to add, feel free to change/correct/add content here - just hit the "edit" link on top of this page.

xorg.conf configuration

Below, an example xorg.conf configuration with two independent X sessions. Note: Two separate video cards from the same maker are required.

Note especially things written in:

  • bold+italic+colour - anything written like this is logically connected, for example, seat0 uses:
  • Mouse0
  • Keyboard0
  • Screen0, which uses:
  • Device0 and Monitor0
  • bold - you will have to change the paths to fit your own configuration; you will unique paths for PS/2 mouse/keyboard in /dev/input/by-path/ and in /dev/input/by-id/ for USB mouse/keyboard.

Configuring display manager

KDM configuration

Your configuration file for KDM will likely be bigger - below, some essential and less-essential changes.

You have to tell KDM to use both X servers for separate sessions.

Note that you have to use PCI IDs which you specified in your xorg.conf file.

Look at the comments, pay attention to everything written in bold.

GDM configuration

At a minimum, you have to provide the following changes to your GDM config file.

Pay attention to everything written in bold.

Other configuration

You will have to add users to certain groups if you want them to be able to use removable media, scanners, TV/DVB adapters, sound cards etc.

Supposing you have two users, "tch" and "dasza", add them to /etc/group file:

Without this change, only one user will be able to use a given device.

Hardware

video cards

Just about any video card will work - PCI card should be enough for non-gaming.

If you don't have any video card, you can buy a new ATI Radeon with passive cooling (no fan and no noise) for about 30 euro (PCI, Radeon 9200 or 9250, 128 MB RAM) or 40 euro (AGP, Radeon 9600, 256 MB RAM). Such cards are supported out of the box, support 3D desktop effects, have DVI and VGA outputs, are able to do 1920x1200 resolutions if you have a large LCD/TV panel.

If one of your cards is NVIDIA, the things should work for you, but may expect trouble setting up 3D effects on the non-NVIDIA card - NVIDIA replaces the glx library with its own, which will not work with other brands.

mice and keyboards

Most likely you will use USB mouse and keyboard for additional seats. If an additional seat is going to be a bit farther away from the computer (other corner of the room, or even next room), you may consider a wireless set. Note that most wireless sets have range of no more than 1-2 meters from the receiver, so shop wisely - some sets are e.g. advertised as having 10m range.

If you're paranoid about security and are afraid of intercepting your wireless key presses and mouse movements, but still want to have another seat somewhere else (i.e., next room), read below about extenders.

extenders

If you want to deliver video signal a bit farther from the computer, you can connect several video cables together, but anything longer than about 2-3m will cause a visible signal degradation. Some users report using 20m good quality shielded VGA cables without any noticeable degradation (up to 1024x768 70hz), so this may depend on the quality of the used cable.

You can use a wireless VGA extender to deliver video signal anywhere in your house, but they have prohibitive prices (several hundred euro and more).

The prices for normal VGA extenders (or DVI and HDMI extenders) start at about 70 euro. In this case, the signal goes in a cat. 5 cable - in consumer devices the video is not sent as packets, so no switches on the way and cat. 5 cable has to go directly from one part of the extender connected to the video card to the other part of the extender connected to the monitor.

You can also find USB or PS/2 extenders for mice and keyboards.

sound cards

Although it's possible to equip your computer with multiple sound cards (so that each user gets his/her own), such setup is not covered here.

Adding users to audio group in /etc/group should be enough to allow these users to play music, even if all users want to play the music at the same time.


If you use PulseAudio (common for all distributions for a few years now), you have to run it in system mode instead.

Troubleshooting

As a rule of thumb, the newer your version of X server, the less problems you should have. Some troubleshooting ideas below:

  • Don't use a framebuffer with a multiseat setup. If you do, it will likely cause artefacts on one of your displays and the image will be distorted. To disable the framebuffer, just don't pass any vga=XYZ parameter to the kernel or pass vga=normal (in the bootloader).
  • With multiseat, you won't be able to use virtual terminals (so, switch between consoles with ctrl+alt+F1, ctrl+alt+F2 etc.).
  • If your 2nd display does not start sometimes, try adding the following to your Device section in xorg.conf:

Option      "ProbeAllGpus" "false"

  • If your computer freezes when your desktop environment is starting (or, more precisely, as KDM or GDM start X servers), try switching the X servers in KDM or GDM config. For example, if this configuration freezes the computer:

Try to use this one (note that seats and PCI IDs changed places):

See also http://lists.freedesktop.org/archives/xorg/2009-January/042053.html for more details.

  • Remember to use the same PCI ID in xorg.conf and in KDM/GDM configuration. This is particularly important when you swap your PCI cards / place them in different slots - they will get different PCI IDs. If you don't keep it intact, X server may refuse to start or may even freeze your computer.
  • lspci command shows hexadecimal PCI IDs, but X expects decimal PCI IDs in xorg.conf (and KDM/GDM config).
  • You may have problem running it with newer ATI hardware (i.e. RV700). Multiseat did start for me with opensource "ati" driver, but the machine was just hanging when closing X. Another opensource driver, "radeonhd", could not start two X sessions at all. The only driver that worked for me with RV700 cards was the closed/proprietary "fglrx".

Contact

If you have problems configuring a multiseat workstation, please ask at xorg mailing list.

References

Thanks to Chris Tyler for his blog entry about setting up multiseat:

You can also see the links in the X wiki:

Great! You’ve successfully signed up.

Welcome back! You've successfully signed in.

You've successfully subscribed to Lxadm.com.

Success! Check your email for magic link to sign-in.

Success! Your billing info has been updated.

Your billing was not updated.