Wednesday, September 06, 2006

Multiseat computer with Ubuntu

After having spent many hours working with the goal in mind of achieving a multiseat (also called multiterminal) computer, I have decided to write some lines to help anybody interested in building this kind of system.

Update (20090619): New tutorial for Multiseat in Ubuntu 9.04 available

The concept of multiseat

A multiseat computer is a particular configuration which allow a computer to be used for several people simultaneously. There are many fields of application of such kind of systems: Companies can achieve big savings on hardware and maintenance while giving service to many users. The main sites where this can be useful are all those in which users do not have great graphical requirements, i.e. almost everything except CPU hungry applications, such as recent 3D games or video encoding.

The sites which most can benefit from this technique are typically libraries, schools, public Internet access sites, and in general almost every site intended for administrative work.

Obviously the underlying operating system is a Linux distribution. Unfortunately, nowadays there are still too much sites tightly tied to proprietary operating systems, due to the fact that they must use some corporate applications developed for exclusive use on such proprietary operating systems. I hope in a near future that will be just bad memories belonging to the past, since the main trend in current developments is based on corporate intranets offering the necessary tools and software to the employees.

The configuration

I have choosen Ubuntu 6.06LTS as the OS, and a dual head video card to obtain two seats from a computer.

Why Ubuntu?

Yeah, why Ubuntu?... I have also made myself this question many times in recent days! I must confess that almost all my previous Linux experience had been with Fedora Core / RedHat systems (dealing with them since RedHat 5.x versions). I had only worked previously with Debian and its derived distributions in just a few ocasions, so obviously there were some new things to learn.

The reason for choosing Ubuntu is its popularity as a desktop based distribution. Several governments are choosing or creating Ubuntu or other Debian based distributions, and the supporting community is growing quickly. I think it is the distribution in which this kind of systems can catch most interest.

Why the 6.06LTS version?

A system based on recent software is easier to be reproduced, and will be more interesting for users willing to reproduce it than an alternative based on outdated software. Apart from beta versions, this is the latest Ubuntu version available right now.

The main goal is to give here the necesary steps to reproduce this configuration. A second goal is to ease the installation as much as possible. The ideal scenario would be to install only standard packages, without the need to use patched pieces of code. With the latest kernel inprovements, and the changes in xorg this is already possible in some cases.

Why a dual-head video card?

Let's start saying that the use of different cards with one video output each one would result in
a easier configuration, involving less packages of software. The reason to use dual head cards is just to adjust to a more realistic situation. The use of different cards, means either using additional PCI or PCIe cards.

The first ones (PCI) are almost impossible to obtain in most local stores (at least in Spain). You will have to buy them in sites such as eBay or you will have to use old recovered computer parts.

Our particular case was to create a prototype with evaluation purposes. Depending on the success of the prototype (stability and users satisfaction) the project can be extended to about 50 computers. We worked initially with cards coming from dead computers (very old cards manufactured between 1994 and 1997). That was a total waste of time: problems with video drivers, available video modes too poor for today screens, and the impossibility to extend the prototype for a large number of computers.

The second option is to use a modern motherboard having PCIe slots, but that means spending money in buying new hardware. In our project, the plans are intended to use computers whith motherboards having AGP slots. The only reasonable option for such computers is to plug in every computer a dual head AGP graphic card.

The last step was choosing the graphic card. We decided to use a card widely available and supported (i.e. using ATI or nVidia chips) with dual output, and in the lowest price range. The first prototype was built using a nVidia 5200 AGP 8x, with VGA output (D-sub), TV output (unused) and DVI-I output (either analog output using an adaptor or digital output). This card is well supported and widely available for about 30 euros (40 USD). For the second prototype, we are using a ATI 9250 AGP 8x.

(Continues on step II ...)

UPDATE: There is a new tutorial covering the setup of a multiseat computer with Ubuntu 8.04


Anonymous said...

I followed all the steps in fedora core 5. Get the logins in each monitor, but when I log in, X creshes a few seconds after. When looking at xorg.conf, it seams that fedora have rewritten it and excluded the nvidia driver from it (used nv instead!!) Maybe it is something that have to do with the way nvidia-glx works in fedora (i've installed it from livna repository)
Bad luck also with keyboards

josean said...

It looks like some kind of automatic configuration script has modified your xorg.conf file.

Keep always a backup of your configuration file, just to avoid loosing such file.

Anonymous said...

In fedora 5 the only problem I have now is setting up correctly the keyboards. I have the two logins in gdm but keyboards are not mapping correctly. With a little effort I can login on both seats, without crashing X, but the keyboards mappings still are a problem. I really dont undersatand how to solve it like you made in ubuntu!!

Anonymous said...

Hace tiempo que existe un software equivalente pare MS Windows. Las primeras versiones eran gratuitas, pero desde que le vieron "negocio" los muy ..., empezaron a cobrar por ella.

Un saludo, Caballeros.

dawiebe said...

I was just wondering if I have any chance of converting my Laptop to a multi-seat laptop.

I have an ati video card, and the monitor connection at the back.

Anonymous said...

would this work with an AGP ATi 850X Platinum card?

Anonymous said...

I did all steps and voilá multiseat begins, but the 3D acceleration is broken :-(. how can achieve acceleration on both seats?

HW: Athlon XP2 2.4GHz, nVIDIA PCI MX 440, nVidia PCI-e FX6500, Ubuntu Feisty, monitor 1 Samsung 740N second Samsung 710N. The main video card is the PCI-e

SW: nVidia Driver for PCI-e and legacy nVidia driver for MX 440, in xorg.conf I enabled the acceleration but unsuccessfully, the content is the same as the article except for the video card used (name al PCI id of course)

Anonymous said...

hi there. how can i make a four/six seater computer with ubuntu? do i just add the monitor/keyboard/mouse in xorg.conf?

Anonymous said...

Keyboard problem fix.

I try change Keyboard configuration:

* change X1-config.keyboard


model = "pc105"
keycodes = "evdev"
layout = "es"

I change with this:

model = "pc101"
keycodes = "evdev"
layout = "us"


I have question, can i put password if i shutdown teh computer? i mean if someone trying to shutdown they must insert password first before shutdown.


Unknown said...

You can build 3D Multiseat !
Look at

josean said...

Andrey, the main difference between this system and yours is that with this model, only one video card is needed.

Unknown said...

My article is the answer to a question like set earlier by anonimous:

I did all steps and voilá multiseat begins, but the 3D acceleration is broken :-(. how can achieve acceleration on both seats?

"The difference lies in a system described by maximizing the use of modern computer hardware and Linux systems."
The goal: to provide independent work 2-4 users on the modern equipment without restriction in the use of 3D acceleration.

Huug said...

Are you still able to have a multiseat with the recent xorg?

I use Debian Sid for a multiseat and I now get an error:

Bus types other than PCI not yet isolable

with xorg 1:7.3+10, yet with xorg 1:7.2-5 it still works OK!

Hugo Vanwoerkom

josean said...

Well, I have a blog entry about a multiseat computer with Ubuntu 8.04, using xorg 7.3

I would suggest to have a look to that blog entry.

Huug said...

Running a two-seater.
After updating xserver-xorg (1:7.4+1) things don't work as expected: keyboard data typed on seat2 shows up on the active VT of seat1:


Anonymous said...

I need your help regarding multi-seat computing.

Please tell me how we can communicate.

Thanks in advance. said...

I need your help in multi-seat computing.

Tell me how we can communicate with each other.

Anonymous said...

why don't this thing appears in the Synaptic?!?

It's so useful!!!

Huug said...

Communicate as you did, but state what the problem is rather than that you want to say something... :-)

josean said...

I do not understand this last comment (maybe due to my limited English understanding). Please, if you have any question, write it down here and we will try to answer if possible.

Apart from that, I have a multiseat (two seat) system working on Ubuntu 9.04. I hope to have a blog entry covering such topic in the next days.

Huug said...

My last comment was:

Running a two-seater.
After updating xserver-xorg (1:7.4+1) things don't work as expected: keyboard data typed on seat2 shows up on the active VT of seat1:

Which means, I have a two seater running Debian Sid (=unstable).
Upgrading to the latest xserver-xorg (which is anything later than 7.3) causes problems.
Seat 1 will show 6VT's and X (=VT7)
Seat 2 will show only X.
The problem is that if seat 1 is showing a VT, then anthing typed by seat 2 shows up on the screen of seat 1!

I have filed an error, to which was replied that Debian does not support multiseat.

I am now trying to see if Faketty upgraded to 2.6.29 will solve the problem.



josean said...

I only have limited experience with Debian, so I do not know the particular differences between Debian and Ubuntu.

As I wrote in a recent comment, I have this dual-seat configuration working on Ubuntu 9.04 (I hope to have next week a blog entry covering that).

Ubuntu 9.04 includes xserver-xorg 7.04 (1:7.4~5ubuntu18 according to Synaptic), so I do not think that the problem is related to the Xorg version.

Anonymous said...

how multiseat on ubuntu 10.04?

Unknown said...

I just read through the entire article of yours and it was quite good. This is a great article thanks for sharing this informative information

Network Support London