[systemd-devel] loginctl - multi-seats

poma pomidorabelisima at gmail.com
Wed Sep 3 20:40:36 PDT 2014


$ systemctl get-default 
graphical.target

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

$ systemctl show display-manager -p Id
Id=lightdm.service

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

$ systemctl is-enabled display-manager
enabled

~~~~~~~

$ systemctl is-active display-manager
active

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

$ lightdm --show-config
   [LightDM]
A  minimum-vt=1

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

   [Seat:seat0]
A  xserver-config=/etc/X11/xorg.conf.nouveau

Sources:
A  /etc/lightdm/lightdm.conf

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

$ grep -v ^# /etc/lightdm/lightdm.conf
[LightDM]
minimum-vt=1

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

[Seat:seat0]
xserver-config=/etc/X11/xorg.conf.nouveau

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

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

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

$ alternatives --display lightdm-greeter
lightdm-greeter - status is manual.
 link currently points to /usr/share/xgreeters/lightdm-gtk-greeter.desktop
/usr/share/xgreeters/lightdm-gtk-greeter.desktop - priority 20
Current `best' version is /usr/share/xgreeters/lightdm-gtk-greeter.desktop.

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

$ grep -v ^# /etc/lightdm/lightdm-gtk-greeter.conf 
[greeter]
font-name=Sans 20
xft-antialias=true
xft-dpi=96
xft-hintstyle=hintfull
xft-rgba=rgb
show-indicators=~host;~spacer;~clock;~spacer;~session;~power

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

$ grep -i drivers /var/log/Xorg.0.log
[    30.397] (II) Loading /usr/lib64/xorg/modules/drivers/nouveau_drv.so

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

$ ps axu | grep [X]org
root       584  0.3  1.2 219960 42272 tty1     Ss+  04:26   0:02 /usr/libexec/Xorg.bin :0 -config /etc/X11/xorg.conf.nouveau -seat seat0 -auth /var/run/lightdm/root/:0 -nolisten tcp vt1 -novtswitch

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

$ loginctl list-sessions 
   SESSION        UID USER             SEAT            
        c1        989 lightdm          seat0           
         1       1001 poma             seat0           

2 sessions listed.

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

$ ls /etc/udev/rules.d/

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

$ loginctl seat-status seat0
seat0
        Sessions: *1 c1
         Devices:
                  ...
                  │ ├─/sys/devices/pci0000:00/0000:00:04.0/usb2/2-5/2-5:1.0/sound/card0
                  │ │ sound:card0 "Set"
                  │ ├─/sys/devices/pci0000:00/0000:00:04.0/usb2/2-5/2-5:1.3/0003:0D8C:000C.0003/input/input6
                  │ │ input:input6 "C-Media USB Headphone Set  "
                  │ ├─/sys/devices/pci0000:00/0000:00:04.0/usb2/2-9/2-9:1.0/0003:1997:2433.0004/input/input7
                  │ │ input:input7 "  Mini Keyboard"
                  │ └─/sys/devices/pci0000:00/0000:00:04.0/usb2/2-9/2-9:1.1/0003:1997:2433.0005/input/input8
                  │   input:input8 "  Mini Keyboard"
                  ...
                  │ ├─/sys/devices/pci0000:00/0000:00:04.1/usb1/1-6/1-6:1.0/drm/card1
                  │ │ drm:card1
                  │ └─/sys/devices/pci0000:00/0000:00:04.1/usb1/1-6/1-6:1.0/graphics/fb1
                  │   [MASTER] graphics:fb1 "udldrmfb"
                  ...

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

$ loginctl attach seat1 \
> /sys/devices/pci0000:00/0000:00:04.0/usb2/2-5/2-5:1.0/sound/card0 \
> /sys/devices/pci0000:00/0000:00:04.0/usb2/2-5/2-5:1.3/0003:0D8C:000C.0003/input/input6 \
> /sys/devices/pci0000:00/0000:00:04.0/usb2/2-9/2-9:1.0/0003:1997:2433.0004/input/input7 \
> /sys/devices/pci0000:00/0000:00:04.0/usb2/2-9/2-9:1.1/0003:1997:2433.0005/input/input8 \
> /sys/devices/pci0000:00/0000:00:04.1/usb1/1-6/1-6:1.0/drm/card1 \
> /sys/devices/pci0000:00/0000:00:04.1/usb1/1-6/1-6:1.0/graphics/fb1
==== AUTHENTICATING FOR org.freedesktop.login1.attach-device ===
Authentication is required for attaching a device to a seat.
Authenticating as: root
Password: 
==== AUTHENTICATION COMPLETE ===

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

$ ls -1 /etc/udev/rules.d/
72-seat-drm-pci-0000_00_04_1-usb-0_6_1_0.rules
72-seat-graphics-pci-0000_00_04_1-usb-0_6_1_0.rules
72-seat-input-pci-0000_00_04_0-usb-0_5_1_3.rules
72-seat-input-pci-0000_00_04_0-usb-0_9_1_0.rules
72-seat-input-pci-0000_00_04_0-usb-0_9_1_1.rules
72-seat-sound-pci-0000_00_04_0-usb-0_5_1_0.rules

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

$ cat /etc/udev/rules.d/72-seat-*
TAG=="seat", ENV{ID_FOR_SEAT}=="drm-pci-0000_00_04_1-usb-0_6_1_0", ENV{ID_SEAT}="seat1"
TAG=="seat", ENV{ID_FOR_SEAT}=="graphics-pci-0000_00_04_1-usb-0_6_1_0", ENV{ID_SEAT}="seat1"
TAG=="seat", ENV{ID_FOR_SEAT}=="input-pci-0000_00_04_0-usb-0_5_1_3", ENV{ID_SEAT}="seat1"
TAG=="seat", ENV{ID_FOR_SEAT}=="input-pci-0000_00_04_0-usb-0_9_1_0", ENV{ID_SEAT}="seat1"
TAG=="seat", ENV{ID_FOR_SEAT}=="input-pci-0000_00_04_0-usb-0_9_1_1", ENV{ID_SEAT}="seat1"
TAG=="seat", ENV{ID_FOR_SEAT}=="sound-pci-0000_00_04_0-usb-0_5_1_0", ENV{ID_SEAT}="seat1"

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

$ su -c 'systemctl restart systemd-udev-trigger.service'
Password: 

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

$ grep -i drivers /var/log/Xorg.1.log
[  1438.393] (II) Loading /usr/lib64/xorg/modules/drivers/modesetting_drv.so
[  1438.397] (II) modesetting: Driver for Modesetting Kernel Drivers: kms

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

$ ps axu | grep [X]org
root       584  0.2  1.5 222520 52104 tty1     Ss+  04:26   0:04 /usr/libexec/Xorg.bin :0 -config /etc/X11/xorg.conf.nouveau -seat seat0 -auth /var/run/lightdm/root/:0 -nolisten tcp vt1 -novtswitch
root      1797  0.6  1.1 226756 38024 ?        Sl   04:50   0:01 /usr/libexec/Xorg.bin :1 -seat seat1 -sharevts -auth /var/run/lightdm/root/:1 -nolisten tcp

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

$ loginctl list-sessions 
   SESSION        UID USER             SEAT            
        c1        989 lightdm          seat0           
         1       1001 poma             seat0           
        c2        989 lightdm          seat1           
         2       1002 pia              seat1           

4 sessions listed.

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

$ loginctl seat-status seat1 
seat1
        Sessions: *3 c2
         Devices:
                  ├─/sys/devices/pci0000:00/0000:00:04.0/usb2/2-5/2-5:1.0/sound/card0
                  │ sound:card0 "Set"
                  ├─/sys/devices/pci0000:00/0000:00:04.0/usb2/2-5/2-5:1.3/0003:0D8C:000C.0003/input/input6
                  │ input:input6 "C-Media USB Headphone Set  "
                  ├─/sys/devices/pci0000:00/0000:00:04.0/usb2/2-9/2-9:1.0/0003:1997:2433.0004/input/input7
                  │ input:input7 "  Mini Keyboard"
                  ├─/sys/devices/pci0000:00/0000:00:04.0/usb2/2-9/2-9:1.1/0003:1997:2433.0005/input/input8
                  │ input:input8 "  Mini Keyboard"
                  ├─/sys/devices/pci0000:00/0000:00:04.1/usb1/1-6/1-6:1.0/drm/card1
                  │ drm:card1
                  └─/sys/devices/pci0000:00/0000:00:04.1/usb1/1-6/1-6:1.0/graphics/fb1
                    [MASTER] graphics:fb1 "udldrmfb"

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

$ loginctl seat-status seat0
seat0
        Sessions: *1 c1
         Devices:
                  ...
                  ├─/sys/devices/pci0000:00/0000:00:10.0/0000:01:00.0/drm/card0
                  │ drm:card0
                  ├─/sys/devices/pci0000:00/0000:00:10.0/0000:01:00.0/drm/renderD128
                  │ drm:renderD128
                  └─/sys/devices/pci0000:00/0000:00:10.0/0000:01:00.0/graphics/fb0
                    [MASTER] graphics:fb0 "nouveaufb"

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

$ hostnamectl status | grep 'System\|Kernel'
  Operating System: Fedora 22 (Rawhide)
            Kernel: Linux 3.17.0-0.rc3.git0.1.fc22.x86_64

$ rpm -qf /usr/bin/systemctl
systemd-216-3.fc22.x86_64

$ rpm -qf /usr/libexec/Xorg.bin 
xorg-x11-server-Xorg-1.16.0-4.fc22.x86_64

$ rpm -qf /etc/lightdm/lightdm.conf
lightdm-1.11.8-1.fc21.x86_64

$ rpm -qf /etc/lightdm/lightdm-gtk-greeter.conf 
lightdm-gtk-1.9.0-1.fc21.x86_64

$ man 1 systemctl :)


poma



More information about the systemd-devel mailing list