Ezra has had his own computer for years, and lately Sebs has been begging me to build one for him. The computer room was already getting too hot just from the two computers, I couldn’t imaging adding a third. So I decided to try something I read about years ago, but had never really messed with. My computer, which I built myself for my birthday last year, has a 6-core processor and 4GB of RAM. The only thing I ever do with it is browse the web, edit photos, and occasionally transcode videos. I have plenty of extra horsepower to spare for the boys. You see, Linux, unlike Windows, has the ability to run more than one user at the same time.
The only real tricks were trying to separate out 3 keyboards and mice so they don’t interfere with each other, and getting two X (windows) sessions running off of the two outputs on a single video card (hint, you can’t)
The keyboard thing ended up being relatively easy. It was just a matter of figuring out which physical port each device was plugged into, and then setting up each “seat” to ONLY use the ports associated with the keyboard and mouse I want to control that seat. The one bad thing about this is that I can’t just plug in a new keyboard or mouse and have it automatically detected. I don’t plan on adding new peripherals that often, but if it becomes a problem, I will write a script to add them and let me choose which seat to connect them to.
The second problem proved to be a bit trickier. Initially I was trying to use the two outputs of my Nvidia 9800GT for me and Sebastian, and an Nvidia 6200LE for Ez. The problem was that as far as the computer was concerned, the 9800 only had one big output, not two individual outputs. So there was no way to tell it that my session should be on monitor 1, and his on monitor 2. Any time I tried it, they would overlap, and end up crashing the computer.
I finally gave up on using one card for two people, and decided to put a third card in, one for each of us. Then I ran into my next problem: my motherboard only has 2 PCIe x16 slots. The only slots I had left for the third card were standard (read OLD) PCI slots. The only cards I have laying around are AGP, not PCI. I scrounged through the buckets of cards we have at work. Tons of AGP, tons of PCIe, ONE standard PCI. It was an old Nvidia FX4400. Unfortunately Nvidia does not support this card with their current drivers, so I can not run it at the same time as my 9800. After a couple of days of searching, I finally found an old machine in storage that had a PCI Nvidia FX5500. Not much better than the 4400, but hopefully usable. Initially it would not work at the same time as my 9800. The driver series I was using had dropped support for the 5500. BUT one series down supported both my 9800, and the 6200 and 5500.
So after couple more days of tweaking configs, I finally have a three headed computer, where both boys and I can all browse the web at the same time. And my computer is already quite a bit cooler without Ez’s old computer running.
Some projects for the future:
- Adjust the configs so that I can take over their screens on the fly and have triple monitor running
- Build a hinged monitor rig that will allow flipping their screens in towards me for triple monitor
- Fix the sound so we can adjust the volumes independently. Currently all three workstations are running through one sound card.
- Write scripts to make reconfiguration easier (you know Daemon will want his own station in a few years)