[systemd-devel] logind: multiseat without framebuffer graphic cards

Thomas Bächler thomas at archlinux.org
Thu Nov 22 04:27:13 PST 2012


Am 21.11.2012 20:23, schrieb Lennart Poettering:
> Ahum, we wrote this with modern in-kernel drivers in mind, really. I
> understand that people want to run this stuff with the closed-source
> binary drivers, but due to the closed-source-ness this is really not
> that high on my TODO list and is not as easy to implement as it sounds.

I have been looking into this topic, but lacked the time to finish the
thought.

For me, the major problem is that the selection of "seat master devices"
is hard-coded in logind (it selects devices of type "graphics" from
udev, [1]). Step 1 would be to move that to a udev rule: Add a
"seatmaster" tag to all graphics devices and have logind select those
(this would actually remove three LOC in logind.c, and change one line).
Now, an admin could give this tag to any device. This fix is very easy,
non-invasive and would make logind's multi-seat support much more
flexible (it also allows an admin to do very stupid things, but I don't
see any reason to prevent that).

The second step is to make multi-seat-x support custom configurations:
If an X server is to be spawned on on a seat named "seatN" and
/etc/X11/xorg.conf_seatN exists, then that configuration file is used
and multi-seat-x doesn't generate one. (Over time, maybe multi-seat-x
can be extended to support more setups automatically, but that is a very
low priority for me, as figuring out the correct configuration with the
proprietary nvidia driver is not straight-forward.)

This wouldn't work with dynamically appearing and disappearing seats,
and it wouldn't be fully automatic, but that isn't my use case anyway:

I have computers with two NVidia PCIe cards, and thus always have
exactly two seats. I simply launch two X servers manually with the
correct configuration from KDM.

This setup works perfectly right now, except that logind doesn't
recognize them as separate seats (there is no 'graphics' device present,
so I cannot even create a second seat). The first change I outlined
above would solve almost all my problems (I'd still have to cheat KDM
into passing the correct XDG_SEAT, as it doesn't fully support logind
yet - but I can do that without any help from systemd/logind).

[1] http://cgit.freedesktop.org/systemd/systemd/tree/src/login/logind.c#n453

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 899 bytes
Desc: OpenPGP digital signature
URL: <http://lists.freedesktop.org/archives/systemd-devel/attachments/20121122/96f09189/attachment.pgp>


More information about the systemd-devel mailing list