Multiseat on Dual ATI R710's - So close! Mon, Feb 2. 2009
I've been trying to see if there's any hope of running multiseat with the current X.org server and open source drivers. I think the two most likely hardware scenarios are 2+ recent ATI cards or 2+ recent NVidia cards, so I'm focusing on testing those configurations on some new hardware at Seneca, using F10 so far (Rawhide soon).
So far I've been working with two ASUS EAH4550's (PCI-Ex16 ATI R710) on a system with an Asus P5E5 Premuim motherboard. After much experimentation, it looks like:
- The kernel option "pci=rom" is not required (contrary to the radeonhd web page).
- The xorg.conf accepts the BusID option in the "Devices" section to specify each card, the evdev "AutoAddDevices" option turned off in ServerFlags, and InputDevice sections specifying the evdev driver and the /dev/input/eventX devices for keyboard and pointer.
- These setpci commands are required to make the card's AtomBIOS visible to the radeonhd driver (on this hardware):
setpci -s 0000:01:00.0 COMMAND=2
setpci -s 0000:02:00.0 COMMAND=2
(Setting "UseAtomBIOS" off does not work -- without these lines, the X server will not start up).
- The cards may be started one-at-a-time, and work reliably with the designated keyboard and mouse
- Two X servers may be started at the same time, one for each seat. The VT switch that takes place when the second one starts will make the first screen blank out. Terminating the second X server causes the first one to reappear. These sessions seem robust/reliable (I can start gnome-session for two separate users, and do productive work on them).
- Adding the "-sharevts" option to the X server command line causes both seats to be active at the same time (the -novtswitch option is not needed). The servers will apparently run forever without user input, but shortly after I start using any of the keyboard/mice, the system locks up pretty tight (no network access, displays frozen). Sometimes I can enter enough keystrokes to start an app or two, and they also run fine as long as there are no input events.
So this feels pretty close, but short of setting up a serial console I don't know how to find out what's causing the two-seat lockups.
Next up: checking out Nvidia (I'm not hopeful, at least with the open source drivers).
Multiseat for F11! Mon, Nov 10. 2008
I use a multiseat system at home: one PC, four monitors, four mice, four keyboards, and four soundcards, used by four people simultaneously. It works well, and I like it because it requires less hardware, electricity, and administration effort than four networked PCs. That system is running Fedora 8, for which support will end on Christmas day.
Why not update to Fedora 9 or 10? Because I can't. The (wonderful) changes in X, GDM, and udev made for F9 unfortunately do not support multiseat operation. The new GDM doesn't support multiple seats in the configuration file, ConsoleKit does not support multiple seats yet, X's --noswitchvt flag has broken, and the add-all-input-devices-to-one-X-server device model currently configued for udev and evdev is based on a single user. In contrast, F8 was the best Fedora release ever for multiseat support (though it still required a fair bit of configuration).
I want to continue to use a multiseat system, and I want to continue to use Fedora. I know that there are a lot of other people interested in doing the same, because my Multiseat howto pages (which are getting quite out of date) still receive thousands of hits each month. I also think that making Fedora multiseat-capable shines light on some corner cases (for example, using multiple video cards stresses the video drivers) and addressing bugs there will improve overall desktop reliability.
So I'd like to see really good out of the box multiseat support in Fedora 11. I've proposed it as a Fedora 11 feature and will personally be putting in as much effort as schedule allows to make this a reality.
Want to join me? You can get in touch through the comments, via e-mail (chris at tylers dot info), or on IRC (ctyler).
(Question on the side: I'm trying to collect the hardware to test multiseat across different device configurations. I think the most common video configurations will be two or more Nvidia cards (this is what I use), two or more ATI cards, and possibly on-board Intel plus one or more ATI or Nvidia cards. Does anyone know if Intel makes add-on video cards? I can't seem to find them if they do).
Multiseat Sound Fri, Jul 18. 2008
Sound on multiseat systems (computers with multiple video cards, keyboards, and mice for multiple simultaneous users) has always been a pain-point for me. The many different sound systems and interfaces made it really hard to direct sound to the right sound card.
So last summer when I upgraded my primary system -- which is a 4-user multiseat -- and lost the PCI slots I had been (trying) to use for sound, I didn't worry about it much. I bought a cheap $25 USB sound dongle and played with it a bit, but then I put sound at the bottom of my ToDo list and left it there to languish. Meanwhile the users of that system (my immediate family) got more and more frustrated with the situation.
On June 27th, Sourabh Bora left a comment on my blog asking whether DealExtreme.com's cheap USB sound dongles were good for multiseat systems. I'd never heard of DealExtreme.com before, so I checked them out, and they looked too good to be true -- a Hong Kong-based company that would sell parts for a couple of bucks and ship them anywhere in the world for free. But a bit of googling uncovered a ton of good reviews and comments, so I ordered a couple of $3.98 sound dongles to try out.
The good news is that they work well, and they're detected and configured as soon as they're plugged in because they belong to the standard USB audio class (hooray for standards!). They're not audiophile-quality, but fine for watching YouTube videos and FUDCon oggs or listening to CDs or deezer.com. And PulseAudio nicely solved the problem of redirecting sound -- I set the permission for all the sound cards so that every user could write to them, and we're using the PulseAudio "default output device" setting (via the PulseAudio volume control) to set the default sink on a per-user basis. Since our users reliably use the same seats, this works fine, though it wouldn't be a good solution where users changed seats (though that could probably be solved with a bit of PulseAudio configuration magic. Lennart and the PulseAudio team -- we really need better docs on the PulseAudio configuration file format!).
So now we have 4 users with 4 different sound outputs, a bit more peace in the family, and a new toy store for me.
It's Time for Multiseat Mon, May 5. 2008
A multiseat system is a computer set up for multiple simultaneous GUI users, using multiple graphics cards, keyboards, and mice. They're perfect for Internet cafes, library catalogs, kiosk systems, home offices, and even gaming. I've been running a 3- or 4-user multiseat system at my house for almost five years.
PulseAudio, the new GDM, recent X.org releases, ConsoleKit -- Fedora is now a better base for Multiseat than ever before, but it still requires an enormous amount of configuration to get a multiseat system running well.
If you use multiseat systems, or are interested in using them, let's get together during the FUDCon F10 hackathon and plan out a roadmap for making Fedora the best multiseat platform ever.
(Basic -- and old -- multiseat configuration information is on my blog).
TechTalk Links Sun, Oct 28. 2007
Today I had the pleasure of being interviewed by Tom D'Auria of the IMI TechTalk radio show, talking about the X Window System and my upcoming book, X Power Tools.
For the convenience of TechTalk listeners, here are some links mentioned in or related to the interview:
- X.org, the community that maintains the X Window System
- the Open Source Initiative and the Free Software Foundation, where you can find out about Open Source and Free Software ("Free" is this sense referring to freedom, as opposted to price -- though usually free in that sense too)
- GNOME and KDE, two popular desktops based on the X Window System
- the Compiz project, a very cool 3D extension to the GNOME and KDE desktops
- Fedora Linux, Ubuntu, and OpenSUSE -- three Linux distributions that include the X Window System and Compiz. Download and run these from CD or install on your system to see X in action.
- Seneca College Computer Studies, where I teach -- a world leader in teaching Open Source development
- the Seneca Centre for Development of Open Technology
- Seneca Free Software and Open Source Symposium (FSOSS 2007) - the 6th annual symposium was held last Thursday and Friday and was a great success. Videos of the symposium presentations are being posted on-line at this site.
Silent Hardware and Xen to KVM Migration Mon, Jun 25. 2007
I replaced my main home system this week. Updating that box has always been a chore because it does a lot: it's a four-user multiseat system (downtime makes the family unhappy) as well as a server (downtime makes my clients and friends unhappy). I hadn't really intended to switch to the new box yet, but there was a weird brownout on Friday (half the house had 17 volts AC, and the other half had 110) caused by a transformer failure, and replacing that transformer took longer than my UPS batteries lasted, which meant that the system had to be booted for the first time in months, which meant that a Fedora update with new X.org 'evdev' drivers kicked in, which didn't work with the old multiseat configuration file, (big breath) ... so I had to do a bunch of troubleshooting, and figured I may as well install the new box as troubleshoot a configuration that was about to be retired.
The new machine is a Core 2 Duo E6420, 4 GB, 3x500 GB SATA-2 as a 1TB RAID-5 array, 2 Asus EN7600GT Silent PCIEx16 video cards, 2 (reused) EVGA NVIDIA MX4 4000 fanless video cards, and a DVD+-RW, all in a Sonata II case.
So there's four video cards with no fans, one CPU fan, a 12 cm low-RPM case fan, a push-pull pair of power supply fans, all in an extra-rigid steel case. It's gorgeously silent compared to its predecessor. It also has enough horsepower to run AIGLX and Compiz on all four seats plus a virtual machine for the public-facing servers (including the one running this blog).
It hasn't been trivial to set up, though. Fedora 7 went on perfectly, but I need the closed-source NVIDIA driver because nv and nouveau don't work with multiseat or AIGLX (yet -- nouveau developers, I'm counting on you!) . However, the NVIDIA driver doesn't work with Xen. The paravirtualized FC6 virtual machine from the old server (32-bit FC6) wouldn't run under the new hypervisor anyways, so I knew I was in trouble. I stewed about this overnight and decided to try migrating to a fully-virtualized KVM environment in place of Xen.
This was actually fairly painless:
- On the original FC6 VM, running on the old box, I installed a regular kernel in addition to the Xen kernel (yum install kernel).
- I copied the VM disk image over to the new system and ran it under KVM using the virt-manager (I had to create a new, dummy VM, then swap the copied image file for the dummy one; I also had to create a bridge network configuration -- brctl addbr br0 ; ifconfig eth0 0.0.0.0 ; ifconfig br0 ipaddress).
- Booted into runlevel 's' and fixed up /grub/boot/grub.conf (to select the non-Xen kernel), /etc/inittab (to disable login on the serial console and enable it on VT1), and /etc/sysconfig/network-scripts/ifcfg-eth0 (to swap the new mac address for the old one).
It took me a while to figure out those steps, but they enabled me to successfully boot the old VM on the new box.
The result: a virtually silent system with great performance, some nice eye candy, and running a stock kernel.