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

Олег Самарин osamarin68 at gmail.com
Wed Nov 21 10:04:13 PST 2012


Hi!

I have a Fedora 17 system with two nvidia videocards, two screens, two
keyboards and two mouses. I've tried to setup multi-seat on it following
this article:
http://code.lexarcana.com/blog/2012/06/17/simple-multiseat-setup-on-fedora-17/. But without success.

The article propose to create a new seat by attaching a framebuffer device to the it:

Unfortunally, there are no any devices whose path end with /drm/card1 or /graphics/fb1 in my system ('loginctl seat-status seat0' does not show any). 
These paths arrive only after loading the open-source driver (nouveau), but not with Nvidia proprietary driver. 	
Furthermore, the right way of loading graphic driver is after starting X-server, not before it. So logind should inform gdm about new seats before gdm starts X-servers that loads nvidia driver.

My idea is
1. make static configuration of videocards and monitors in xorg.conf
2. dynamically add inputdevices according to the site udev rules
3. learn Xorg to select proper ServerLayout section according the -seat parameter

I created two patches (one for systemd-44-21) and another for xorg-x11-server-1.12.3-2) that implemented this idea. 

The first patch - systemd-logind-site-without-graphics - introduces the new systemd-logind.conf option: SeatWithoutGraphics with default value "no". But the value "yes" allows logind to create a new seat by attaching any device for it, not only graphics.

The second patch - xserver-1.12.3-xorg-seat-layout - introduces the 
new ServerLayout option - "Seat". If Xorg runs with only "-seat" command line parameter, without "-layout" (gdm starts it in this manner), it tries to find a layout with the value of "Seat" is equal to the value of "-seat" parameter

After applying these patches seems everything works.

The way to setup:
1. install the pached packages systemd and xorg-x11-server-Xorg
2. create xorg.conf with several ServerLayout sections and "Seat" options specifying what seat it belongs. It is not necessary to add InputDevices to the layouts.
3. Add "SeatWithoutGraphics=yes" to /etc/systemd/systemd-logind.conf
4. Restart service systemd-logind.service
5. Attach any devices (for example, USB hubs) to your seats seat1, seat2 and so on. All the seats will be created by logind
6. Restart gdm (init 3 && init 5)
7. All displays will shows the gdm user-selection screen.

I've created a bugs at https://bugzilla.redhat.com/show_bug.cgi?id=878605. It also resolves 

I'd like if my patch will be resolved upstream.

Oleg.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: systemd-logind-site-without-graphics.patch
Type: text/x-patch
Size: 8091 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/systemd-devel/attachments/20121121/cfd6f4b2/attachment.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: xserver-1.12.3-xorg-seat-layout.patch
Type: text/x-patch
Size: 2834 bytes
Desc: not available
URL: <http://lists.freedesktop.org/archives/systemd-devel/attachments/20121121/cfd6f4b2/attachment-0001.bin>


More information about the systemd-devel mailing list