Hey guys,

I originally posted this to the systemd-devel list but Lennart pointed me to 
conversations already happening in here so I've moved this over. 

I'm currently working with a Plugable DisplayLink usb hub/adaptor for adding 
multi-seat support to an embedded PC.

I've been running into difficulties with the changes to GDM and systemd with 
regards to multiseat support and having a configured environment/session for 
each seat.

As way of backstory, for GDM, I've patched it to do the following...
1) In daemon/gdm-display.c where it currently checks if the seat != seat0. 
Rather than doing "goto out;" immediately, it queries the username. If the 
username is utilising the script method then let the automated login proceed. 
The script method will parse the login name as a script path if it ends with | 
character.

2) In daemon/gdm-simple-slave.c, rather than using a global level 
GDM_RAN_ONCE_FILE_MARKER, create one per seat. This allows the 
wants_autologin() to return True on a another seat rather than drop through to 
simply start_greeter().

3) In daemon/gdm-slave.c, Export the GDM_SEAT_ID for the initial gdm slave 
display. This allows you to check the current seat in the script for item 1) 
above.

That solved my gdm automated login process on the different seats. I've emailed 
the patch to the gdm list.

However, I also ran into a problem with Xorg configurations. As has been 
discussed the multi-seat-x tool currently wraps the call to the X server and 
appends some appropriate parameters. I've seen mention of tailoring the Match 
options for input classes to include a MatchSeat option. However, the Device 
section is another area that needs consideration. 

In my setup, the host system runs on an embedded PC and has an xorg.conf.d 
Device entry for the Intel driver to enable certain options. However, this is 
global and caused problems with the displays on the other seats. e.g. with the 
second seat starting Xorg it was looking for the Intel device as described in 
the xorg.conf.d file, rather than using the appropriate Frame-buffer device. 
I've patched the systemd/login/multi-seat-x.c to also pass over a -configdir 
parameter to the Xorg it launches. I'm not entirely confident that's the 
correct path I should be using.
..-configdir 
/etc/X11/xorg.conf.d/multi-session-x/seat-usb-pci-0000_00_1d_7-usb-0_3_1_4


I've attached the patch for your comments/feedback.
Thanks in advance,
-- 
Glen Gray
<[email protected]>

Attachment: multi-session-xorg-confdir.patch
Description: Binary data


_______________________________________________
[email protected]: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel

Reply via email to