Bakscii v2.0
The Bakscii v2.0 is an upgrade from the Bakscii, which is based on one computer with four TFT screens. It can be used to set up a small temporary internet workspace during events, demonstrations or action camps.
The Bakscii was getting too slow to handle the needs of modern internet users in our (mobile) internet workstack. Also, the Openbricks used for the Bakscii were getting too hot inside the small box (one of them died).
To solve these problems, i used one fast processor, one motherboard and lots of memory (1GB). I filled tbe board with 3PCI and one AGP videocards.
Setup
The first plan was to copy the setup partly from the 3 Headed Monster. That setup was pretty outdated though. During the research i found out that Ubuntu Linux includes a multiseat setup. After some tweaking (it did not recognize the different video cards) that worked.
Theory
Like most Operating Systems, Linux understands only one console. If you want to connect more then one keyboard, this will get a bit confusing.
The 3 headed monster worked with a linux 2.4.x kernel which was patched, so that it would accept a second ps/2 keyboard on the mouse port. This bruby patch also took care of splitting keyboard/mice input, so the inputs could be used for seperate users. A special, patched, XFree86 server would be able to talk to these input devices.
Recent developments in the Linux kernel, the X server and USB handling have made all these patches unnecessary. Instead of using "input devices" on kernel level, it is possible to tell a 2.6.x kernel to ignore USB devices, only connecting them to the kernel "event interface" (this is done by the configuration of the hotplug daemon). Recent Xorg versions can use "event devices" as input, thus avoiding nasty lockups. The kernel doesn't even have to know that these things that are connected are keyboards, it just hands through any event directly to the Xserver.
Hardware problems
Getting a 4-headed machine to work is a bit difficult. Most difficult was finding 4 videocards that will work together without random crashes. Following the experience of the 3 headed monster i wanted to use NVidia TNT2 cards, but it was hard to find enough of them (needed to be PCI). When i finally had them, the fourth card turned out to be locked out by the rest. I used another card (an old s3virge) instead of the last one, and then it worked. There is still quite a bit of black magic involved in which combination will work and which not, even in the order in which the cards are initialized.
There was another riddle to solve: with 4 NVidia cards, Ubuntu Hoary would recognize the system as multiseat, but with one s3virge card, it would not. So i had to install with 4 NVidia cards and then replace one of them with the s3virge before starting X.
Configuration
The Ubuntu multiseat install properly configured USB hotplug for using keyboards/mice as seperate devices.
The X configuration made by Ubuntu was "almost working". It messed up screens, keyboards and mouses. But the file was a good example to make a my own xorg.conf file. It's gdm config for 4 screens was working out of the box, but did not support autologins.
To get autologins to work, i found a trick on a mailinglist to patch gdm (the Gnome Display Manager): Download the source from gdm, change the file daemon/gdm.c so that gdm_first_login is always TRUE (replace FALSE by TRUE). Then recompile gdm (see below for dependencies).
This is a sample gdm.conf file for the patched version. It refers to a script called getuser.ascii, which removes, creates and selects the user that is going to be logged in.
There is a project to work on a multiseat gdm called SLIM
Finishing up
A default Ubuntu install is almost complete, but some extra's (java, flash, acrobat reader, fonts...) are necessary. I got most of the ideas for installing software from: https://wiki.ubuntu.com/RestrictedFormats.
Another reason to install extra packages was to be able to recompile gdm.
Here's my Ubuntu sources list and my Package listing.
To install all these packages at once, run:
dpkg --set-selections < package-listing.txtsome packages need to be downloaded by hand, see the Ubuntu Wiki
dselect install
what's next?
The Bakscii v2.0 was used for the first time on the Dokma Festival 2005 in Maribor, Slovenia. Since then, it has been upgraded a bit but the hardware upgrade (new casing) is still on the todo-list.