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.
How well is PolicyKit doing in conquering the "I have to change permissions on /dev/blah" problem? Would be nice to know....
You cat build 3D Multiseat system http://www.automation.dn.ua/linux/3d-multiseat_en.html
I wan't also setup a multiseat with 4 seats, the multiseat works perfectly. No I will bring sound to the 4 users, I have try it with pulseaudio with the system-wide daemon, but I have the following problem :
The sound starts always on the user he's first start. example, user 3
log first on and then user 2 . The sound goes to the output describe
for user 3 also for user 2 the sound goes to speakers 3. When I restart
the computer en first log user 2 in and then user 3 , the sound goes to
speaker 2 also for user 3 -> speaker 2.
When I changed with the aplet, it works fine. but on restart it's
changed to the user that have first log-in.
I set things up to allow read+write for all users to /dev/snd/* (this is set at system boot and in /etc/profile: chmod a+rwX /dev/snd/*), and use the "Default output device" in PulseAudio (use the Pulse Audio volume control, select the Output tab, right-click on desired output and make it the default). This has worked OK as long as users don't switch seats.
Did you work with the system-wide deamon or user-by-user setup ?
I used the standard Fedora PulseAudio setup (per-user daemon started by gnome-session through the esound emulation (pulseaudio-esound-compat, see http://tinyurl.com/pulseaudio-start)).
I reccomend to include users in group sound instead chmod a+rwX. And groups cdrom, video also.
The effect of this depends entirely on the access model used in your distro -- if you're using groups to control hardware access, then by all means add the users to sound, cdrom, and video; but if you're using ConsoleKit you'll either need to make the adjustments there (best solution) -or- override them (quick & dirty solution, which is what I've done). (In Fedora, the group "sound" does not exist and is not used to control access to the sound devices).
This goes for sound cards as well...
Just remember to power-down your amplified speakers, or whatever, before you unplug them from these things. I blew out 2 of them that way.