[ConsoleKit] USB seats & ConsoleKit

Brian Cameron Brian.Cameron at Sun.COM
Mon Oct 5 17:27:20 PDT 2009


Bernie:

> An update on this -- At Linux Plumbers and XDC last week, we had a 
> chance to have some discussions about USB multiseat and how to fit it 
> in. Here's the thoughts.

This sounds exciting.

> *Proposal*
> 
> Define a udev property called ID_SEAT(1) which is applied to every 
> device and is meant to map 1-1 with ConsoleKit's SEAT_ID 
> and ck-seat-tool's --seat-id parameter. Add a udev rule which assigns 
> all hardware devices to the default/primary seat(2). Later udev rules 
> can then re-assign devices to another unique seat id if they want, e.g. 
> if a USB terminal (display, keyboard, mouse, ...) is found. This udev 
> rule work can be safely committed at any time, in preparation for the 
> other pieces.
> 
> Later udev rules may then set permissions on devices to a group matching 
> the seat ID.
> 
> GDM/ConsoleKit will pass the seat ID to X (does it already?) and, upon 
> user login/flex-switch/logout, add and remove that user from the group 
> matching their seat so they may have special access to their 
> seat-attached devices.

It would be good if this were configurable, so that sysadmins can
configure what devices are affected and how.  There are probably some
environments where the sysadmin might want to lock down the
configuration, and it would be good if that sort of configuration were
possible.

> When X is updated to use libudev(3), its auto detect/enable devices 
> mechanisms will use the udev tree and properties to only autoconfigure 
> devices on the seat it is assigned, solving the problem we have today 
> that the primary seat grabs all devices.

Having the primary seat grab all devices may be a reasonable
configuration in some environments, so it might be more accurate to say
that the problem is that it isn't currently possible to configure this
behavior in more dynamic ways.

> That's the big pieces. Thoughts? Better/corrected ideas? Major 
> unanswered questions?

All in all, sounds really good.

 > Two relevant checkins from Halton which are close to this direction:

How will the additional changes needed to implement the proposal require
changing the interfaces?  When you say that Halton's work is in the
right direction, could you explain what you mean?  Do you feel that
there is a lot of rework required before MultiSeat can be integrated
into ConsoleKit?

I would think ConsoleKit could be released in a phased manner where
first MultiSeat is added, and then in a follow-up release the device
management code is added?

For reference, the design documents for the MultiSeat work is here[1].
I am not sure if genunix is a good place for collaboration on the GDM
project.  Might be good to move this to live.gnome.org/GDM and work
on improving the design document to describe the impact of this
proposal.

Brian

[1]
http://wiki.genunix.org/wiki/index.php/design_for_newgdm_consolekit_multiseat_multidisplay


More information about the ConsoleKit mailing list