Multiseat, Fast-user-Switching

Fabian Steiner lists at fabis-site.net
Tue Sep 19 12:09:05 PDT 2006


Tim Dijkstra wrote:
> On Tue, 19 Sep 2006 16:54:56 +0200
> Fabian Steiner <lists at fabis-site.net> wrote:
> 
>>> 5) Hal should know about connection DISPLAY <-> device.
>>>    Maybe implemented through some fdi files?
>> So far, the common idea was to use an usb keyboard with an integrated
>> hub and to associate that hub with the display. 
> 
> How did you try to 'associate hub with display'? I still have no idea
> how this multi-seat thing works. How do the device files (/dev/*) on the
> client end up on the server? Or how else can the X server access the usb
> keyboard connected to the client?
> 
> However it works, I imagine that there must be some configuration on the
> server that says, client at IP A, has display B and devices C, D and E.
> This configuration can then also be used by hal.

Well, I think I ought to explain the concept of multiseat:
Multiseat is supporting multiple users on the same machine through
multiple input devices. That means e.g. that you have got _four_
keyboards, mice and screens which are connected with _one_ computer and
every user can work independantly.

The main advantage is that you save a lot of money (for the hardware)
and you have got fewer machines to maintain.

Since we really need a solution we decided to write a simple script
(Python) which does the following:

- The keyboards have got an integrated hub which possess a sysfs
address: /sys/devices/pci0000:00/0000:00:02.0/usb2/2-4
- Whenever a device is plugged in that hub it receives a sysfs address
like /sys/devices/pci0000:00/0000:00:02.0/usb2/2-4/2-4.1
- That's how one can create parent/child relationchips.
- We connected to the HAL system-bus so that we are notified whenever a
device is added or removed.
- Have a look at the linux.sysfs_path property and find out whether it
is child of a known hub - if yes, mount it with appropriate rights.

It seems to work, but in fact, it is a mess since we might cause a race
condition: If g-v-m or the built-in feature of KDE is faster, the script
 won't be able to do anything.

That's why we have to look for a more general and better implementation.

> [...]

Cheers,
Fabian Steiner

P.s. If you are interested in multiseat, you might want to have a look
at [1] and [2].

[1] https://help.ubuntu.com/community/MultiseatX
[2]
http://blog.chris.tylers.info/index.php?/archives/14-Multiseat-X-Under-X11R6.97.0.html


More information about the hal mailing list