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.
I have choosen Ubuntu 6.06LTS as the OS, and a dual head video card to obtain two seats from a computer.
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