[systemd-devel] loginctl - multi-seats

poma pomidorabelisima at gmail.com
Sat Aug 23 09:20:58 PDT 2014


On 23.08.2014 15:10, arnaud gaboury wrote:
> Archlinux 3.16.1
> systemd 215-4
> Xorg 1.16
> 
> 
> Until now, I have been enable to set a dual seat following the
> archwiki[1]. In short, I had to modify the /etc/X11/xorg.conf
> accordingly, then $ startx -- layout seat0 -config
> xorg.conf.multiseat.
> 
> I am now trying to migrate to the new facilities for multiseats from
> loginctl[2] and Xorg 1.16 with rootless X[3]. Documentation is very
> rare, and I find it difficult to set up the global scheme.
> 
> I understand from loginctl(1) I have to first create 1 new seat with
> loginctl using 1 existing graphic device:
> $ attach seat1 /sys/bus/pci/device/0000:00:01.0@ (my graphic card as
> listed by $lspci).
> 
> Then, I will attach a usb keyboard & mouse the same way, right ?
> 
> Now, as for the monitor & session layout, i have no idea how to deal
> with it and the global /etc/X11/xorg.conf . Same as before or is there
> now a more specific way?
> 
> Then, once I have created seat1, I am left with two seats : seat0 and
> seat1. I understand I have to
> bind a user session login to a specific seat, right ? Concretely, how do it ?
> 
> Thank you for any hint/pointer/suggestion about the path to follow.
> 

/etc/lightdm/lightdm.conf
[LightDM]
minimum-display-number=0
minimum-vt=1
user-authority-in-system-dir=true

[SeatDefaults]
greeter-session=lightdm-greeter
session-wrapper=/etc/X11/xinit/Xsession

[Seat:0]
xserver-command=/usr/bin/Xorg
xserver-config=/etc/X11/xorg.conf.nouveau

[Seat:1]
xdg-seat=seat-fu
xserver-command=/usr/bin/Xorg -sharevts -novtswitch

~~~~~~~~~~~~~~~~~~~~~~~~~~

/etc/X11/xorg.conf.nouveau
Section "Device"
    Identifier  "nvidia0"
    Driver      "nouveau"
EndSection

~~~~~~~~~~~~~~~~~~~~~~~~~~~~

$ loginctl seat-status seat0
seat0
	Sessions: *1086 c15
	 Devices:
		  ...
		  ├─/sys/devices/pci0000:00/0000:00:10.0/0000:01:00.0/drm/card1
		  │ drm:card1
		  ├─/sys/devices/pci0000:00/0000:00:10.0/0000:01:00.0/graphics/fb0
		  │ [MASTER] graphics:fb0 "nouveaufb"
		  ...

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

$ udevadm info -q env -p /sys/class/drm/card1
DEVNAME=/dev/dri/card1
DEVPATH=/devices/pci0000:00/0000:00:10.0/0000:01:00.0/drm/card1
DEVTYPE=drm_minor
ID_FOR_SEAT=drm-pci-0000_01_00_0
ID_PATH=pci-0000:01:00.0
ID_PATH_TAG=pci-0000_01_00_0
MAJOR=226
MINOR=1
SUBSYSTEM=drm
TAGS=:seat:uaccess:
USEC_INITIALIZED=67185

~~~~~~~~~~~~~~~~~~~~~~

$ man 1 loginctl
       attach [NAME] [DEVICE...]
       ...
       flush-devices

~~~~~~~~~~~~~~~~~~~~~~

/etc/udev/rules.d/72-seat-drm-pci-0000_00_04_1-usb-0_6_1_0.rules 
TAG=="seat", ENV{ID_FOR_SEAT}=="drm-pci-0000_00_04_1-usb-0_6_1_0", ENV{ID_SEAT}="seat-fu"

/etc/udev/rules.d/72-seat-graphics-pci-0000_00_04_1-usb-0_6_1_0.rules 
TAG=="seat", ENV{ID_FOR_SEAT}=="graphics-pci-0000_00_04_1-usb-0_6_1_0", ENV{ID_SEAT}="seat-fu"

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

$ loginctl seat-status seat-fu
seat-fu
        Sessions: *1 c1
         Devices:
                  ├─/sys/devices/pci0000:00/0000:00:04.1/usb1/1-6/1-6:1.0/drm/card0
                  │ drm:card0
                  └─/sys/devices/pci0000:00/0000:00:04.1/usb1/1-6/1-6:1.0/graphics/fb1
                    [MASTER] graphics:fb1 "udldrmfb"

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

$ udevadm info -q env -p /sys/class/drm/card0
DEVNAME=/dev/dri/card0
DEVPATH=/devices/pci0000:00/0000:00:04.1/usb1/1-6/1-6:1.0/drm/card0
DEVTYPE=drm_minor
ID_FOR_SEAT=drm-pci-0000_00_04_1-usb-0_6_1_0
ID_PATH=pci-0000:00:04.1-usb-0:6:1.0
ID_PATH_TAG=pci-0000_00_04_1-usb-0_6_1_0
ID_SEAT=seat-fu
MAJOR=226
MINOR=0
SUBSYSTEM=drm
TAGS=:seat:seat-fu:uaccess:
USEC_INITIALIZED=465981

~~~~~~~~~~~~~~~~~~~~~~~

$ modinfo -n nouveau
/lib/modules/3.15.10-200.fc20.x86_64/kernel/drivers/gpu/drm/nouveau/nouveau.ko

$ rpm -qf /usr/lib64/xorg/modules/drivers/nouveau_drv.so
xorg-x11-drv-nouveau-1.0.10-1.fc20.x86_64

$ modinfo -n udl
/lib/modules/3.15.10-200.fc20.x86_64/kernel/drivers/gpu/drm/udl/udl.ko

$ rpm -qf /usr/lib64/xorg/modules/drivers/modesetting_drv.so
xorg-x11-drv-modesetting-0.8.0-2.fc20.x86_64

$ rpm -q systemd
systemd-208-21.fc20.x86_64

$ rpm -qf /usr/bin/Xorg
xorg-x11-server-Xorg-1.14.4-11.fc20.x86_64

$ rpm -qf /etc/lightdm/lightdm.conf
lightdm-1.11.4-1.fc20.x86_64


Xorg without root
https://lists.fedoraproject.org/pipermail/test/2014-July/122190.html


Don't forget to post config here when you're done. ;)


poma




More information about the systemd-devel mailing list