You are not logged in.

#1 2014-11-11 05:49:56

Xaero252
Member
Registered: 2011-11-28
Posts: 107

[SOLVED] Multi-Seat with LightDM couple of quick questions

Okay, so I just finished setting up a convoluted Xorg.conf to manage Multiseat how I want to. Starting X manually, I can see that both seats work as desired, but when I start them with LightDM, I only get my primary seat, and can login etc.

Reading the logs I notice this:

[+0.00s] DEBUG: Monitoring logind for seats
[+0.00s] DEBUG: New seat added from logind: seat0

Does this basically mean all of my work on this Xorg.conf was for naught?

If so, is there any better documentation on loginctl for multiseat? Is there a workaround that allows me to force LightDM to use the settings in my xorg.conf over logind?

I did a lot of reading on this, and it does appear that I should be using logind to achieve my goals, but first - I have to get it to add a second seat.
So far, I've written a udev rule that *should* be sufficient to allow a second seat:

DEVPATH=="/devices/pci0000:00/0000:00:07.0/0000:04:00.0", TAG+="master-of-seat"
DEVPATH=="/devices/pci0000:00/0000:00:07.0/0000:04:00.0", TAG+="seat"
DEVPATH=="/devices/pci0000:00/0000:00:07.0/0000:04:00.0", TAG+="seat-1"
DEVPATH=="/devices/pci0000:00/0000:00:07.0/0000:04:00.0", ENV{ID_SEAT.tags}="seat-1"

I am able to verify this rule loads, and does what is supposed to:

udevadm info --query=all --path=/sys/devices/pci0000:00/0000:00:07.0/0000:04:00.0
P: /devices/pci0000:00/0000:00:07.0/0000:04:00.0
E: DEVPATH=/devices/pci0000:00/0000:00:07.0/0000:04:00.0
E: DRIVER=nvidia
E: ID_FOR_SEAT=pci-pci-0000_04_00_0
E: ID_MODEL_FROM_DATABASE=GF106 [GeForce GTS 450]
E: ID_PATH=pci-0000:04:00.0
E: ID_PATH_TAG=pci-0000_04_00_0
E: ID_PCI_CLASS_FROM_DATABASE=Display controller
E: ID_PCI_INTERFACE_FROM_DATABASE=VGA controller
E: ID_PCI_SUBCLASS_FROM_DATABASE=VGA compatible controller
E: ID_SEAT.tags=seat-1
E: ID_VENDOR_FROM_DATABASE=NVIDIA Corporation
E: MODALIAS=pci:v000010DEd00000DC4sv00001458sd000034FEbc03sc00i00
E: PCI_CLASS=30000
E: PCI_ID=10DE:0DC4
E: PCI_SLOT_NAME=0000:04:00.0
E: PCI_SUBSYS_ID=1458:34FE
E: SUBSYSTEM=pci
E: TAGS=:master-of-seat:seat:seat-1:
E: USEC_INITIALIZED=20761

However when LightDM starts logind only passes one seat on. I'm going to try a few more things but I'm pretty much stumped and the amount of documentation available on this is just stubs.

Last edited by Xaero252 (2014-11-14 04:30:57)

Offline

#2 2014-11-11 10:45:19

bnb2235
Member
Registered: 2011-02-13
Posts: 119

Re: [SOLVED] Multi-Seat with LightDM couple of quick questions

I recognize you want to talk LightDM, but is there a significant advantage over gdm? If you search for my user name, you will find my bread crumb trail of setting up multi-seat with gdm.

In my opinion, multi-seat was very easy to get going with two cards and gdm. I am quite happy with the setup I have.

Offline

#3 2014-11-11 21:54:23

bnb2235
Member
Registered: 2011-02-13
Posts: 119

Re: [SOLVED] Multi-Seat with LightDM couple of quick questions

For what it is worth, my curiosity got the best of me. I disabled gdm, installed LightDM, enabled it and rebooted. LightDM does Multi-seat too! It was a little bit strange though at one test. I used dm-tool to lock my screen (seat0). My other user is logged on at seat1. Then at the lock screen of seat0 (me), I changed the user to the other user (not a user switch, just changed the name in the list box), and logged on. It created a new session of her logon on my screen. The strange part was the logon sound went to the speaker at seat1.

Do you have two video cards or just one dual headed card? My understanding was that multi-seat is best configured with separate cards per user.

I see another strange thing with dm-tool. dm-tool did not actually lock seat0 (X is running on vt1). It started a new login window on vt2

Last edited by bnb2235 (2014-11-12 03:44:44)

Offline

#4 2014-11-12 21:14:30

Xaero252
Member
Registered: 2011-11-28
Posts: 107

Re: [SOLVED] Multi-Seat with LightDM couple of quick questions

I haven't had a chance to fiddle with this yet, but I'm going to sit down and follow some of your steps today. The problem I'm having seems to be that LoginD isn't defining a second seat, even though I've "added" my second graphics card to "seat1" using the udev rule. I.E. loginctl list-seats only has Seat0 still. I'll try adding things to Seat1 using loginctl, but I'm pretty sure last time I tried it simply complained that Seat1 didn't exist and that you can't add things to a seat that doesn't exist.

I did read through a thread or two of your quest to get a multiseat configuration with logind and I'm pretty sure I can replicate the majority of your steps, however I'm going to be using a bluetooth keyboard/mouse combo - the Logitech DiNovo mini for my second seat - which could make things complicated as far as udev is concerned (they don't detect as separate device nodes) but hopefully I can get that sorted, so that the bluetooth module can be used by both seats, while that keyboard/mouse combo would be dedicated to Seat1 (it's for XBMC from a couch)

Last edited by Xaero252 (2014-11-12 21:16:45)

Offline

#5 2014-11-12 22:06:19

bnb2235
Member
Registered: 2011-02-13
Posts: 119

Re: [SOLVED] Multi-Seat with LightDM couple of quick questions

I have no xorg.conf
I didn't create any udev rules on my own. I let the loginctl attach command create all the rules. In the end, I combined the rules into one.

/etc/udev/rules.d/72-seat-1.rules

# video card
TAG=="seat", ENV{ID_FOR_SEAT}=="drm-pci-0000_04_00_0", ENV{ID_SEAT}="seat1"
TAG=="seat", ENV{ID_FOR_SEAT}=="graphics-pci-0000_04_00_0", ENV{ID_SEAT}="seat1"

# usb hub in monitor
TAG=="seat", ENV{ID_FOR_SEAT}=="usb-pci-0000_00_1d_0-usb-0_1_1", ENV{ID_SEAT}="seat1"

# logitech receiver #1
TAG=="seat", ENV{ID_FOR_SEAT}=="input-pci-0000_00_1d_0-usb-0_1_3_1_2", ENV{ID_SEAT}="seat1"

#logitech receiver #2
TAG=="seat", ENV{ID_FOR_SEAT}=="input-pci-0000_00_1d_0-usb-0_1_4_1_2", ENV{ID_SEAT}="seat1"

/etc/udev/rules.d/90-keyboard-wakeup.rules

SUBSYSTEM=="input", ATTR{name}=="Logitech Unifying Device. Wireless PID:4004" RUN+="/bin/sh -c 'echo enabled > /sys$env{DEVPATH}/../../../../../power/wakeup'"

I linked to this page in my other post, but it is what taught me everything I needed to get multi-seat running.
http://code.lexarcana.com/posts/simple- … ra-17.html

Surely once I move any device to a new usb hole, I have trouble, but it is easy to fix. I don't disconnect on any regular basis...

Offline

#6 2014-11-13 19:03:21

Xaero252
Member
Registered: 2011-11-28
Posts: 107

Re: [SOLVED] Multi-Seat with LightDM couple of quick questions

I'm making some excellent progress now!
I finally have two seats listed by loginctl; but the second seat's X is failing to launch.
I believe you are using an ATi card, which lists fbdev and drm prior to X initializing the driver. On nvidia this is not the case, so I've had to change my udev rules around a bit.
From there, I've been playing around with Xorg.conf to no avail. I have to maintain a mostly convoluted xorg.conf as one of my displays has a corrupt EDID and I must manually define all of my modelines for all of my displays on Seat0 to display properly.

So, in case someone reading this has an idea to help me fix things:

xorg.conf:

# nvidia-settings: X configuration file generated by nvidia-settings
# nvidia-settings:  version 343.22  (buildmeister@swio-display-x86-rhel47-05)  Thu Sep 11 16:49:34 PDT 2014

Section "DRI"
	Mode 0666
EndSection

Section "ServerFlags"
#        Option "AutoAddDevices"     "false"
#        Option "AutoEnableDevices"  "false"
        Option "AllowMouseOpenFail" "on"
        Option "AllowEmptyInput" "on"
EndSection

Section "ServerLayout"
    Identifier     "Seat0"
    Screen         "Screen0" 0 0
#    Screen 	    "Screen1" RightOf "Screen0"
#    InputDevice    "Keyboard0" "CoreKeyboard"
#    InputDevice    "Mouse0" "CorePointer"
    Option         "Xinerama" "0"
#        Option "Clone" "off"
#        Option "AutoAddDevices" "off"
#        Option "DisableModInDev" "true"
	Option "Seat" "seat0"
        Option "SingleCard" "on"   # use this to simplfied isolatedevice option  
EndSection
#
Section "ServerLayout"
    Identifier	    "Seat1"
    Screen	    "Screen1" 0 0
    InputDevice     "DiNovo" "CoreKeyboard"
    InputDevice     "DiNovoM" "CorePointer"
#	Option "Clone" "off"
#        Option "AutoAddDevices" "off"
#        Option "DisableModInDev" "true"
        Option "SingleCard" "on"   # use this to simplfied isolatedevice option  
	Option 	   "DontVTSwitch"          "true"
	Option "Seat" "seat1"
EndSection

#Section "InputDevice"
#
#    # generated from default
#    Identifier     "Mouse0"
#    Driver         "mouse"
#    Option         "Protocol" "auto"
#    Option         "Device" "/dev/input/mouse0"
#    Option         "Emulate3Buttons" "no"
#    Option         "ZAxisMapping" "4 5"
#EndSection

#Section "InputDevice"
    # generated from default
#    Identifier     "Keyboard0"
#    Driver         "evdev"
#    Option	   "Device" "/dev/input/by-id/usb-Topre_Corporation_Realforce_87-event-kbd"
#EndSection

Section "InputDevice"
	Identifier	"DiNovo"
	Driver		"evdev"
	Option    	"Dev Phys" "00:1a:7d:da:71:0a"
EndSection


Section "InputDevice"
	Identifier	"DiNovoM"
	Driver		"mouse"
	Option    	"Protocol" "auto"
	Option    	"Device" "/dev/input/mouse1"
EndSection
	

Section "Monitor"
    # HorizSync source: xconfig, VertRefresh source: xconfig
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "DFP-0"
    HorizSync       30.0 - 88.8
    VertRefresh     43.0 - 120.0
    ModeLine       "1920x1200" 154.000 1920 1968 2000 2000 1200 1203 1209 1235 +hsync -vsync
    ModeLine       "nvidia-auto-select" 94.500 1024 1072 1168 1376 768 769 772 808 +hsync +vsync
    ModeLine       "2560x1440" 400.000 2560 2592 2612 2692 1440 1443 1448 1480 +hsync +vsync
    ModeLine       "2048x1536" 388.040 2048 2216 2440 2832 1536 1537 1540 1612 -hsync +vsync
    ModeLine       "1920x1440" 341.350 1920 2072 2288 2656 1440 1441 1444 1512 -hsync +vsync
    ModeLine       "1856x1392" 288.000 1856 1984 2208 2560 1392 1393 1396 1500 -hsync +vsync
    ModeLine       "1792x1344" 261.000 1792 1888 2104 2456 1344 1345 1348 1417 -hsync +vsync
    ModeLine       "1600x1200" 229.500 1600 1664 1856 2160 1200 1201 1204 1250 +hsync +vsync
    ModeLine       "1400x1050" 155.800 1400 1464 1784 1912 1050 1052 1064 1090 +hsync +vsync
    ModeLine       "1280x1024" 157.500 1280 1344 1504 1728 1024 1025 1028 1072 +hsync +vsync
    ModeLine       "1280x960" 148.500 1280 1344 1504 1728 960 961 964 1011 +hsync +vsync
    ModeLine       "1152x864" 108.000 1152 1216 1344 1600 864 865 868 900 +hsync +vsync
    ModeLine       "1024x768i" 44.900 1024 1032 1208 1264 768 768 776 817 +hsync +vsync interlace
    ModeLine       "1024x768" 78.750 1024 1040 1136 1312 768 769 772 800 +hsync +vsync
    ModeLine       "832x624" 57.284 832 864 928 1152 624 625 628 667 -hsync -vsync
    ModeLine       "800x600" 56.300 800 832 896 1048 600 601 604 631 +hsync +vsync
    ModeLine       "720x400" 35.500 720 756 828 936 400 401 404 446 -hsync +vsync
    ModeLine       "700x525" 77.900 700 732 892 956 525 526 532 545 +hsync +vsync doublescan
    ModeLine       "640x480" 36.000 640 696 752 832 480 481 484 509 -hsync -vsync
    ModeLine       "640x400" 31.500 640 672 736 832 400 401 404 445 -hsync +vsync
    ModeLine       "640x350" 31.500 640 672 736 832 350 382 385 445 +hsync -vsync
    ModeLine       "512x384" 37.500 512 524 592 664 384 385 388 403 -hsync -vsync doublescan
    ModeLine       "512x384i" 22.450 512 516 604 632 384 384 388 408 +hsync +vsync interlace doublescan
    ModeLine       "400x300" 25.000 400 428 488 520 300 318 321 333 +hsync +vsync doublescan
    ModeLine       "320x240" 15.750 320 332 352 416 240 244 246 260 -hsync -vsync doublescan
    ModeLine       "320x175" 15.750 320 336 368 416 175 191 192 222 +hsync -vsync doublescan
    Option         "DPMS"
    Option         "UseEDID" "False"
    Option         "ModeValidation" "NoVertRefreshCheck, NoHorizSyncCheck, NoDFPNativeResolutionCheck, NoMaxSizeCheck, NoMaxPClkCheck, NoEDIDModes"
EndSection

Section "Monitor"

    # HorizSync source: edid, VertRefresh source: edid
    Identifier     "Monitor1"
    VendorName     "Unknown"
    ModelName      "SEK SE40FY27"
    HorizSync       14.0 - 68.0
    VertRefresh     48.0 - 62.0
    Option         "DPMS"
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "GeForce GTX 670"
    BusID          "PCI:3:0:0"
    Screen	   0
        Option          "ProbeAllGpus"          "false" 
EndSection

Section "Device"
    Identifier     "Device1"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "GeForce GTS 450"
    BusID          "PCI:4:0:0"
    Screen	   1
        Option          "ProbeAllGpus"          "false" 
EndSection

Section "Screen"

# Removed Option "metamodes" "DVI-I-1: 1920x1200 +4480+0, HDMI-0: 1920x1200 +0+0, DVI-D-0: 2560x1440_100 +1920+0"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "NoLogo" "True"
    Option         "ExactModeTimingsDVI" "True"
    Option         "Stereo" "0"
    Option         "nvidiaXineramaInfoOrder" "DFP-3"
    Option         "metamodes" "DVI-I-1: 1920x1200_62 +4480+0, HDMI-0: 1920x1200_62 +0+0, DVI-D-0: 2560x1440_100 +1920+0"
    Option         "SLI" "Off"
    Option         "MultiGPU" "Off"
    Option         "BaseMosaic" "off"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

Section "Screen"
    Identifier     "Screen1"
    Device         "Device1"
    Monitor        "Monitor1"
    DefaultDepth    24
    Option         "Stereo" "0"
    Option         "metamodes" "nvidia-auto-select +0+0"
    Option         "SLI" "Off"
    Option         "MultiGPU" "Off"
    Option         "BaseMosaic" "off"
    SubSection     "Display"
        Depth       24
    EndSubSection
    
EndSection

loginctl seat-status seat1:

seat1
         Devices:
                  ├─/sys/devices/pci0000:00/0000:00:07.0/0000:04:00.0/drm/card1
                  │ [MASTER] drm:card1
                  └─/sys/devices/pci0000:00/0000:00:07.0/0000:04:00.1/sound/card2
                    sound:card2 "NVidia_1"
                    ├─/sys/devices/pci0000:00/0000:00:07.0/0000:04:00.1/sound/card2/input18
                    │ input:input18 "HDA NVidia HDMI/DP,pcm=3"
                    ├─/sys/devices/pci0000:00/0000:00:07.0/0000:04:00.1/sound/card2/input20
                    │ input:input20 "HDA NVidia HDMI/DP,pcm=7"
                    ├─/sys/devices/pci0000:00/0000:00:07.0/0000:04:00.1/sound/card2/input22
                    │ input:input22 "HDA NVidia HDMI/DP,pcm=8"
                    └─/sys/devices/pci0000:00/0000:00:07.0/0000:04:00.1/sound/card2/input23
                      input:input23 "HDA NVidia HDMI/DP,pcm=9"

/var/log/Xorg.1.log:

[   300.615] 
X.Org X Server 1.16.2
Release Date: 2014-11-10
[   300.615] X Protocol Version 11, Revision 0
[   300.615] Build Operating System: Linux 3.17.2-1-ARCH x86_64 
[   300.615] Current Operating System: Linux xaeropc 3.17.2-1-ck #1 SMP PREEMPT Wed Nov 12 21:00:11 MST 2014 x86_64
[   300.615] Kernel command line: root=UUID=586f1eeb-8a63-4864-8d02-d5f85aa8a7ba rw quiet
[   300.615] Build Date: 10 November 2014  07:52:13PM
[   300.615]  
[   300.615] Current version of pixman: 0.32.6
[   300.615] 	Before reporting problems, check http://wiki.x.org
	to make sure that you have the latest version.
[   300.615] Markers: (--) probed, (**) from config file, (==) default setting,
	(++) from command line, (!!) notice, (II) informational,
	(WW) warning, (EE) error, (NI) not implemented, (??) unknown.
[   300.615] (==) Log file: "/var/log/Xorg.1.log", Time: Thu Nov 13 12:52:11 2014
[   300.615] (==) Using config file: "/etc/X11/xorg.conf"
[   300.615] (==) Using system config directory "/usr/share/X11/xorg.conf.d"
[   300.615] (++) ServerLayout "Seat1"
[   300.615] (**) |-->Screen "Screen1" (0)
[   300.615] (**) |   |-->Monitor "Monitor1"
[   300.615] (**) |   |-->Device "Device1"
[   300.615] (**) |-->Input Device "DiNovo"
[   300.615] (**) |-->Input Device "DiNovoM"
[   300.615] (**) Option "SingleCard" "on"
[   300.615] (**) Option "DontVTSwitch" "true"
[   300.615] (**) Option "AllowMouseOpenFail" "on"
[   300.615] (==) Automatically adding devices
[   300.615] (==) Automatically enabling devices
[   300.615] (==) Automatically adding GPU devices
[   300.615] (WW) The directory "/usr/share/fonts/OTF/" does not exist.
[   300.615] 	Entry deleted from font path.
[   300.615] (WW) `fonts.dir' not found (or not valid) in "/usr/share/fonts/100dpi/".
[   300.615] 	Entry deleted from font path.
[   300.615] 	(Run 'mkfontdir' on "/usr/share/fonts/100dpi/").
[   300.615] (WW) `fonts.dir' not found (or not valid) in "/usr/share/fonts/75dpi/".
[   300.615] 	Entry deleted from font path.
[   300.615] 	(Run 'mkfontdir' on "/usr/share/fonts/75dpi/").
[   300.615] (==) FontPath set to:
	/usr/share/fonts/misc/,
	/usr/share/fonts/TTF/,
	/usr/share/fonts/Type1/
[   300.615] (==) ModulePath set to "/usr/lib/xorg/modules"
[   300.615] (WW) Hotplugging is on, devices using drivers 'kbd', 'mouse' or 'vmmouse' will be disabled.
[   300.615] (WW) Disabling DiNovoM
[   300.615] (II) Loader magic: 0x818d80
[   300.615] (II) Module ABI versions:
[   300.615] 	X.Org ANSI C Emulation: 0.4
[   300.615] 	X.Org Video Driver: 18.0
[   300.615] 	X.Org XInput driver : 21.0
[   300.615] 	X.Org Server Extension : 8.0
[   300.616] (EE) systemd-logind: failed to get session: PID 1578 does not belong to any known session
[   300.616] (II) xfree86: Adding drm device (/dev/dri/card1)
[   300.617] (WW) Open ACPI failed (/var/run/acpid.socket) (No such file or directory)
[   300.617] (II) LoadModule: "glx"
[   300.617] (II) Loading /usr/lib/xorg/modules/extensions/libglx.so
[   300.623] (II) Module glx: vendor="NVIDIA Corporation"
[   300.623] 	compiled for 4.0.2, module version = 1.0.0
[   300.623] 	Module class: X.Org Server Extension
[   300.623] (II) NVIDIA GLX Module  343.22  Thu Sep 11 15:55:13 PDT 2014
[   300.623] (II) LoadModule: "nvidia"
[   300.623] (II) Loading /usr/lib/xorg/modules/drivers/nvidia_drv.so
[   300.623] (II) Module nvidia: vendor="NVIDIA Corporation"
[   300.623] 	compiled for 4.0.2, module version = 1.0.0
[   300.623] 	Module class: X.Org Video Driver
[   300.623] (II) LoadModule: "evdev"
[   300.623] (II) Loading /usr/lib/xorg/modules/input/evdev_drv.so
[   300.623] (II) Module evdev: vendor="X.Org Foundation"
[   300.623] 	compiled for 1.16.0, module version = 2.9.0
[   300.623] 	Module class: X.Org XInput Driver
[   300.623] 	ABI class: X.Org XInput driver, version 21.0
[   300.623] (II) NVIDIA dlloader X Driver  343.22  Thu Sep 11 15:34:47 PDT 2014
[   300.623] (II) NVIDIA Unified Driver for all Supported NVIDIA GPUs
[   300.623] (II) Loading sub module "fb"
[   300.623] (II) LoadModule: "fb"
[   300.623] (II) Loading /usr/lib/xorg/modules/libfb.so
[   300.623] (II) Module fb: vendor="X.Org Foundation"
[   300.623] 	compiled for 1.16.2, module version = 1.0.0
[   300.623] 	ABI class: X.Org ANSI C Emulation, version 0.4
[   300.623] (II) Loading sub module "wfb"
[   300.623] (II) LoadModule: "wfb"
[   300.623] (II) Loading /usr/lib/xorg/modules/libwfb.so
[   300.624] (II) Module wfb: vendor="X.Org Foundation"
[   300.624] 	compiled for 1.16.2, module version = 1.0.0
[   300.624] 	ABI class: X.Org ANSI C Emulation, version 0.4
[   300.624] (II) Loading sub module "ramdac"
[   300.624] (II) LoadModule: "ramdac"
[   300.624] (II) Module "ramdac" already built-in
[   300.624] (EE) Screen 0 deleted because of no matching config section.
[   300.624] (II) UnloadModule: "nvidia"
[   300.624] (II) UnloadSubModule: "wfb"
[   300.624] (II) UnloadSubModule: "fb"
[   300.624] (EE) Device(s) detected, but none match those in the config file.
[   300.624] (EE) 
Fatal server error:
[   300.624] (EE) no screens found(EE) 
[   300.624] (EE) 
Please consult the The X.Org Foundation support 
	 at http://wiki.x.org
 for help. 
[   300.624] (EE) Please also check the log file at "/var/log/Xorg.1.log" for additional information.
[   300.624] (EE) 
[   300.624] (EE) Server terminated with error (1). Closing log file.

And finally, /var/log/lightdm/lightdm.log:

[+0.00s] DEBUG: Logging to /var/log/lightdm/lightdm.log
[+0.00s] DEBUG: Starting Light Display Manager 1.12.1, UID=0 PID=1569
[+0.00s] DEBUG: Loading configuration dirs from /usr/share/lightdm/lightdm.conf.d
[+0.00s] DEBUG: Loading configuration dirs from /usr/local/share/lightdm/lightdm.conf.d
[+0.00s] DEBUG: Loading configuration dirs from /etc/xdg/lightdm/lightdm.conf.d
[+0.00s] DEBUG: Loading configuration from /etc/lightdm/lightdm.conf
[+0.00s] DEBUG: Using D-Bus name org.freedesktop.DisplayManager
[+0.00s] DEBUG: Registered seat module xlocal
[+0.00s] DEBUG: Registered seat module xremote
[+0.00s] DEBUG: Registered seat module unity
[+0.00s] DEBUG: Monitoring logind for seats
[+0.00s] DEBUG: New seat added from logind: seat0
[+0.00s] DEBUG: Loading properties from config section Seat:seat0
[+0.00s] DEBUG: Seat seat0: Starting
[+0.00s] DEBUG: Seat seat0: Creating greeter session
[+0.00s] DEBUG: Seat seat0: Creating display server of type x
[+0.00s] DEBUG: Could not run plymouth --ping: Failed to execute child process "plymouth" (No such file or directory)
[+0.00s] DEBUG: Using VT 1
[+0.00s] DEBUG: Seat seat0: Starting local X display on VT 1
[+0.00s] DEBUG: DisplayServer x-0: Logging to /var/log/lightdm/x-0.log
[+0.00s] DEBUG: DisplayServer x-0: Writing X server authority to /run/lightdm/root/:0
[+0.00s] DEBUG: DisplayServer x-0: Launching X Server
[+0.00s] DEBUG: Launching process 1573: /usr/bin/X :0 :0 -layout Seat0 -seat seat0 -auth /run/lightdm/root/:0 -nolisten tcp vt1 -novtswitch
[+0.00s] DEBUG: DisplayServer x-0: Waiting for ready signal from X server :0
[+0.00s] DEBUG: New seat added from logind: seat1
[+0.00s] DEBUG: Loading properties from config section Seat:seat1
[+0.00s] DEBUG: Seat seat1 has property CanMultiSession=no
[+0.00s] DEBUG: Seat seat1: Starting
[+0.00s] DEBUG: Seat seat1: Creating user session
[+0.00s] DEBUG: Loading users from org.freedesktop.Accounts
[+0.00s] DEBUG: User /org/freedesktop/Accounts/User1000 added
[+0.01s] DEBUG: Seat seat1: Creating display server of type x
[+0.01s] DEBUG: Seat seat1: Starting local X display
[+0.01s] DEBUG: DisplayServer x-1: Logging to /var/log/lightdm/x-1.log
[+0.01s] DEBUG: DisplayServer x-1: Writing X server authority to /run/lightdm/root/:1
[+0.01s] DEBUG: DisplayServer x-1: Launching X Server
[+0.01s] DEBUG: Launching process 1575: /usr/bin/X :1 :1 -layout Seat1 -seat seat1 -sharevts -auth /run/lightdm/root/:1 -nolisten tcp
[+0.01s] DEBUG: DisplayServer x-1: Waiting for ready signal from X server :1
[+0.01s] DEBUG: Acquired bus name org.freedesktop.DisplayManager
[+0.01s] DEBUG: Registering seat with bus path /org/freedesktop/DisplayManager/Seat0
[+0.01s] DEBUG: Registering seat with bus path /org/freedesktop/DisplayManager/Seat1
[+0.45s] DEBUG: Process 1575 exited with return value 1
[+0.45s] DEBUG: DisplayServer x-1: X server stopped
[+0.45s] DEBUG: DisplayServer x-1: Removing X server authority /run/lightdm/root/:1
[+0.45s] DEBUG: Seat seat1: Display server stopped
[+0.45s] DEBUG: Seat seat1: Stopping session
[+0.45s] DEBUG: Seat seat1: Session stopped
[+0.45s] DEBUG: Seat seat1: Stopping display server, no sessions require it
[+0.45s] DEBUG: Seat seat1: Active display server stopped, starting greeter
[+0.45s] DEBUG: Seat seat1: Creating greeter session
[+0.45s] DEBUG: Seat seat1: Creating display server of type x
[+0.45s] DEBUG: Seat seat1: Starting local X display
[+0.45s] DEBUG: DisplayServer x-1: Logging to /var/log/lightdm/x-1.log
[+0.45s] DEBUG: DisplayServer x-1: Writing X server authority to /run/lightdm/root/:1
[+0.45s] DEBUG: DisplayServer x-1: Launching X Server
[+0.46s] DEBUG: Launching process 1578: /usr/bin/X :1 :1 -layout Seat1 -seat seat1 -sharevts -auth /run/lightdm/root/:1 -nolisten tcp
[+0.46s] DEBUG: DisplayServer x-1: Waiting for ready signal from X server :1
[+0.48s] DEBUG: Process 1578 exited with return value 1
[+0.48s] DEBUG: DisplayServer x-1: X server stopped
[+0.48s] DEBUG: DisplayServer x-1: Removing X server authority /run/lightdm/root/:1
[+0.48s] DEBUG: Seat seat1: Display server stopped
[+0.48s] DEBUG: Seat seat1: Stopping; greeter display server failed to start
[+0.48s] DEBUG: Seat seat1: Stopping
[+0.48s] DEBUG: Seat seat1: Stopping session
[+0.48s] DEBUG: Seat seat1: Session stopped
[+0.48s] DEBUG: Seat seat1: Stopped
[+0.48s] DEBUG: Seat seat1: Stopping session
[+0.74s] DEBUG: Got signal 10 from process 1573
[+0.74s] DEBUG: DisplayServer x-0: Got signal from X server :0
[+0.74s] DEBUG: DisplayServer x-0: Connecting to XServer :0
[+0.75s] DEBUG: Seat seat0: Display server ready, starting session authentication
[+0.75s] DEBUG: Session pid=1583: Started with service 'lightdm-greeter', username 'lightdm'
[+0.75s] DEBUG: Session pid=1583: Authentication complete with return value 0: Success
[+0.75s] DEBUG: Seat seat0: Session authenticated, running command
[+0.75s] DEBUG: Session pid=1583: Running command /usr/sbin/lightdm-gtk-greeter
[+0.75s] DEBUG: Creating shared data directory /var/lib/lightdm-data/lightdm
[+0.75s] DEBUG: Session pid=1583: Logging to /var/log/lightdm/x-0-greeter.log
[+0.76s] DEBUG: Activating VT 1
[+0.76s] DEBUG: Activating login1 session c8
[+0.82s] DEBUG: Session pid=1583: Greeter connected version=1.12.1 resettable=false
[+0.91s] DEBUG: Session pid=1583: Greeter start authentication for xaero
[+0.91s] DEBUG: Session pid=1604: Started with service 'lightdm', username 'xaero'
[+0.91s] DEBUG: Session pid=1604: Got 1 message(s) from PAM
[+0.91s] DEBUG: Session pid=1583: Prompt greeter with 1 message(s)
[+17.16s] DEBUG: Session pid=1583: Continue authentication
[+17.17s] DEBUG: Session pid=1604: Authentication complete with return value 0: Success
[+17.17s] DEBUG: Session pid=1583: Authenticate result for user xaero: Success
[+17.17s] DEBUG: Session pid=1583: User xaero authorized
[+17.17s] DEBUG: Session pid=1583: Greeter sets language en_US.utf8
[+17.20s] DEBUG: Session pid=1583: Greeter requests session xfce
[+17.20s] DEBUG: Seat seat0: Stopping greeter; display server will be re-used for user session
[+17.20s] DEBUG: Session pid=1583: Sending SIGTERM
[+17.25s] DEBUG: Session pid=1583: Greeter closed communication channel
[+17.25s] DEBUG: Session pid=1583: Exited with return value 0
[+17.25s] DEBUG: Seat seat0: Session stopped
[+17.25s] DEBUG: Seat seat0: Greeter stopped, running session
[+17.25s] DEBUG: Registering session with bus path /org/freedesktop/DisplayManager/Session0
[+17.25s] DEBUG: Session pid=1604: Running command /etc/lightdm/Xsession startxfce4
[+17.25s] DEBUG: Creating shared data directory /var/lib/lightdm-data/xaero
[+17.25s] DEBUG: Session pid=1604: Logging to .xsession-errors
[+17.25s] DEBUG: Activating VT 1
[+17.25s] DEBUG: Activating login1 session c9

Offline

#7 2014-11-13 21:49:44

bnb2235
Member
Registered: 2011-02-13
Posts: 119

Re: [SOLVED] Multi-Seat with LightDM couple of quick questions

That is correct. I have ATI 6350 cards. All of my hardware is detailed in my thread.
https://bbs.archlinux.org/viewtopic.php?id=185991

I would be curious to see how much success you have with the nouveau driver and no xorg.conf. Somehow it sticks in my head that I read somewhere that open source drivers were required to get this all running.
I am also curious to see the output of:
loginctl seat-status seat0
with no udev rules defined

I would also be curious to see how you make out with gdm instead of LightDM. Maybe out of date, but this page:
http://cedarandthistle.wordpress.com/20 … at-system/
says:
"Make sure GDM is installed and that you’re using it as your display manager. You can use any desktop environment you’d like but you must use GDM (or LightDM with some patches) as other display managers don’t recognize systemd’s seat management. "

Does LightDM have the needed patches? I know LightDM gave me two seats, but it certainly did not work the way I would have expected it in regards to the dm-tool lock command.

In the end, I guess I am grateful to have bought ATI. Years ago I had terrible success with suspend and Nvidia which is why I went ATI. I am glad I did.

Offline

#8 2014-11-13 23:36:53

Xaero252
Member
Registered: 2011-11-28
Posts: 107

Re: [SOLVED] Multi-Seat with LightDM couple of quick questions

bnb2235 wrote:

That is correct. I have ATI 6350 cards. All of my hardware is detailed in my thread.
https://bbs.archlinux.org/viewtopic.php?id=185991

I would be curious to see how much success you have with the nouveau driver and no xorg.conf. Somehow it sticks in my head that I read somewhere that open source drivers were required to get this all running.
I am also curious to see the output of:
loginctl seat-status seat0
with no udev rules defined

I would also be curious to see how you make out with gdm instead of LightDM. Maybe out of date, but this page:
http://cedarandthistle.wordpress.com/20 … at-system/
says:
"Make sure GDM is installed and that you’re using it as your display manager. You can use any desktop environment you’d like but you must use GDM (or LightDM with some patches) as other display managers don’t recognize systemd’s seat management. "

Does LightDM have the needed patches? I know LightDM gave me two seats, but it certainly did not work the way I would have expected it in regards to the dm-tool lock command.

In the end, I guess I am grateful to have bought ATI. Years ago I had terrible success with suspend and Nvidia which is why I went ATI. I am glad I did.

That post on wordpress assumes you have a pretty out of date LightDM.
I'll try GDM anyway, but doubt I'll have much luck since it appears to be a driver related limitation. There is a bug report on RedHat's tracker here:
https://bugzilla.redhat.com/show_bug.cgi?id=878605
Which details the fixing of a bug that used to exist where it was impossible to use nvidia proprietary drivers to set up multiseat with systemd-logind. The bug has been closed and lennart poettering and many others have confirmed being able to get working nvidia configurations. I'll try reverting to nouveau, though I'm uncertain to what extend my success will be.


Anyways, I'll be reporting back with my findings on nouveau, the results of loginctl for seat0 without udev rules applied. I'll also try tossing up gdm for a chuckle, both with and without nouveau. I'm fairly certain I can get a working output with nouveau but 3d acceleration is required for one of my two seats, and nouveau may leave me with less than desirable performance.

For reference:
LightDM's current status:
https://wiki.ubuntu.com/MultiseatTeam/I … re_lightdm
Version 1.12 and later have automatic multiseat support. Arch's official repos have lightdm 1.12.1, and that is what I currently have installed.
LightDM detects the second seat properly and launches it (see previous post's /var/log/lightdm/lightdm.log) But that seat's X session fails (see the /var/log/Xorg.1.log) for a rather confusing error, no additional information is revealed by increasing xorg's verbosity to 6, so I'm at a loss there.

Edit:
So far I've tested things with nouveau - at first this resulted in an unbootable configuration; but after fixing several things I am able to successfully get a multiseat configuration with no xorg.conf using nouveau as my driver. This is all fine and dandy, but the performance is dismal on the primary seat, as feared. I've also run into a new issue with LightDM I had not previously known about; no matter what I set the variable "user-session" to in my lightdm.conf, it loads the last loaded session for autologin. This is incomprehensible behavior and shouldn't be intended. At any rate, I can override this by creating a new user specifically for XBMC (which is more desirable anyways since it keeps my user account segregated from the more public XBMC interface.)

Anyways, I'd list the loginctl seat-status seat0 without udev rules now - except that it isn't relevant; with nouveau, fbdev, and drm device nodes all exist prior to the graphical environment loading. With the nvidia driver, as stated previously this is NOT the case and as such these devices are NOT available to loginctl.

I'm going to hop back into the nvidia side of things, and see if a hunch I have is correct about the driver issues I was experiencing previously. I'll keep this post updated.

Last edited by Xaero252 (2014-11-14 03:04:06)

Offline

#9 2014-11-14 04:27:09

Xaero252
Member
Registered: 2011-11-28
Posts: 107

Re: [SOLVED] Multi-Seat with LightDM couple of quick questions

I'm going to make this a separate post as it is going to end up quite long.

I was given the idea to split things up a bit by a post on the nvidia devtalk forums, he mentioned that screens are enumerated per-device and not per-screen by X.

So, I tried his suggestion, which didn't fix things, but did make me realize something odd, in the particular case of using LoginD for multiseat, each X server is treated entirely separate, so a single xorg.conf file isn't really practical anymore. So I scrapped it.

In the end I came up with this:

/etc/X11/xorg.conf.seat0

Section "DRI"
	Mode 0666
EndSection

Section "ServerLayout"
    Identifier     "Seat0"
    Screen       0 "Screen0" 0 0
    Option         "Xinerama" "0"
    Option "Seat" "seat0"
    Option "SingleCard" "on"   # use this to simplfied isolatedevice option  
EndSection

Section "Monitor"
    # HorizSync source: xconfig, VertRefresh source: xconfig
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "DFP-0"
    HorizSync       30.0 - 88.8
    VertRefresh     43.0 - 120.0
    ModeLine       "1920x1200" 154.000 1920 1968 2000 2000 1200 1203 1209 1235 +hsync -vsync
    ModeLine       "nvidia-auto-select" 94.500 1024 1072 1168 1376 768 769 772 808 +hsync +vsync
    ModeLine       "2560x1440" 400.000 2560 2592 2612 2692 1440 1443 1448 1480 +hsync +vsync
    ModeLine       "2048x1536" 388.040 2048 2216 2440 2832 1536 1537 1540 1612 -hsync +vsync
    ModeLine       "1920x1440" 341.350 1920 2072 2288 2656 1440 1441 1444 1512 -hsync +vsync
    ModeLine       "1856x1392" 288.000 1856 1984 2208 2560 1392 1393 1396 1500 -hsync +vsync
    ModeLine       "1792x1344" 261.000 1792 1888 2104 2456 1344 1345 1348 1417 -hsync +vsync
    ModeLine       "1600x1200" 229.500 1600 1664 1856 2160 1200 1201 1204 1250 +hsync +vsync
    ModeLine       "1400x1050" 155.800 1400 1464 1784 1912 1050 1052 1064 1090 +hsync +vsync
    ModeLine       "1280x1024" 157.500 1280 1344 1504 1728 1024 1025 1028 1072 +hsync +vsync
    ModeLine       "1280x960" 148.500 1280 1344 1504 1728 960 961 964 1011 +hsync +vsync
    ModeLine       "1152x864" 108.000 1152 1216 1344 1600 864 865 868 900 +hsync +vsync
    ModeLine       "1024x768i" 44.900 1024 1032 1208 1264 768 768 776 817 +hsync +vsync interlace
    ModeLine       "1024x768" 78.750 1024 1040 1136 1312 768 769 772 800 +hsync +vsync
    ModeLine       "832x624" 57.284 832 864 928 1152 624 625 628 667 -hsync -vsync
    ModeLine       "800x600" 56.300 800 832 896 1048 600 601 604 631 +hsync +vsync
    ModeLine       "720x400" 35.500 720 756 828 936 400 401 404 446 -hsync +vsync
    ModeLine       "700x525" 77.900 700 732 892 956 525 526 532 545 +hsync +vsync doublescan
    ModeLine       "640x480" 36.000 640 696 752 832 480 481 484 509 -hsync -vsync
    ModeLine       "640x400" 31.500 640 672 736 832 400 401 404 445 -hsync +vsync
    ModeLine       "640x350" 31.500 640 672 736 832 350 382 385 445 +hsync -vsync
    ModeLine       "512x384" 37.500 512 524 592 664 384 385 388 403 -hsync -vsync doublescan
    ModeLine       "512x384i" 22.450 512 516 604 632 384 384 388 408 +hsync +vsync interlace doublescan
    ModeLine       "400x300" 25.000 400 428 488 520 300 318 321 333 +hsync +vsync doublescan
    ModeLine       "320x240" 15.750 320 332 352 416 240 244 246 260 -hsync -vsync doublescan
    ModeLine       "320x175" 15.750 320 336 368 416 175 191 192 222 +hsync -vsync doublescan
    Option         "DPMS"
    Option         "UseEDID" "False"
    Option         "ModeValidation" "NoVertRefreshCheck, NoHorizSyncCheck, NoDFPNativeResolutionCheck, NoMaxSizeCheck, NoMaxPClkCheck, NoEDIDModes"
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "GeForce GTX 670"
    BusID          "PCI:3:0:0"
    Option          "ProbeAllGpus"          "false" 
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "NoLogo" "True"
    Option         "ExactModeTimingsDVI" "True"
    Option         "Stereo" "0"
    Option         "nvidiaXineramaInfoOrder" "DFP-3"
    Option         "metamodes" "DVI-I-1: 1920x1200_62 +4480+0, HDMI-0: 1920x1200_62 +0+0, DVI-D-0: 2560x1440_100 +1920+0"
    Option         "SLI" "Off"
    Option         "MultiGPU" "Off"
    Option         "BaseMosaic" "off"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

This xorg.conf contains all of the information needed to make my primary triple monitor setup work. Nothing more, nothing less.

/etc/X11/xorg.conf.seat1:

Section "DRI"
	Mode 0666
EndSection

Section "ServerFlags"
        Option "AllowMouseOpenFail" "on"
        Option "AllowEmptyInput" "on"
EndSection

Section "ServerLayout"
    Identifier     "Seat1"
    Screen       0 "Screen0" 0 0
    Option         "Xinerama" "0"
    Option 	   "Seat" "seat0"
    InputDevice    "mousenull" "CorePointer"
    Option 	   "SingleCard" "on"   # use this to simplfied isolatedevice option  
EndSection


Section "InputDevice"
Identifier "mousenull"
Driver "mouse"
Option "Device" "/dev/null"
Option "Protocol" "PS/2"
Option "Emulate3Buttons" "off"
Option "ZAxisMapping" "4 5"
EndSection

Section "Monitor"
    # HorizSync source: edid, VertRefresh source: edid
    Identifier     "Monitor0"
    VendorName     "Unknown"
    ModelName      "SEK SE40FY27"
    HorizSync       14.0 - 68.0
    VertRefresh     48.0 - 62.0
    Option         "DPMS"
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "GeForce GTS 450"
    BusID          "PCI:4:0:0"
    Option          "ProbeAllGpus"          "false" 
EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "Stereo" "0"
    Option         "metamodes" "nvidia-auto-select +0+0"
    Option         "SLI" "Off"
    Option         "MultiGPU" "Off"
    Option         "BaseMosaic" "off"
    SubSection     "Display"
        Depth       24
    EndSubSection
EndSection

Since this server has less to worry about I left most of it skeletal. I did notice something odd, and if you are reading this it may be relevant to you:

You will note that I added a nullmouse entry to this xorg.conf. Apparently, defining to not auto add or auto enable devices as well as ignoring mouse status is not enough to keep xorg from trying to autodetect one's mouse. Since there is no mouse permanently attached to this X server, it will probe and eventually decide to attach the same mouse as the primary server, resulting in movement of the physical mouse to move the pointer on both seats. This is undesirable, and adding this entry as well as the InputDevice "nullmouse" "CorePointer" to the SeverLayout is sufficient in stopping it from happening.

Also important to note for nvidia binary users:
in /etc/lightdm/lightdm.conf, you will need to change the X command to the following, or graphical corruption caused by the VT's text attempting to overlay onto the framebuffer will occur:

xserver-command=/usr/bin/X -keeptty

The second seat should have the following xserver-command:

xserver-command=/usr/bin/X -sharevts -novtswitch -keeptty

In the end, this has been quite the journey and I hope my documentation can help some people. As always, YMMV and your setup is going to differ from mine. Hopefully something in this thread is useful in the future.

Thanks to bnb2235 for his assistance and puzzling through the new loginctl methodology for multiseat configuration ^_^ Also thanks to aplattner over at nvidia devtalk for his assistance in triggering an idea in my brain.
I'll be linking from there to here instead of crossposting due to WallOfText.

A quick edit on this, in case people are still reading it; the issues previously noted with the new(er) version of EDID information being incompatible with nvidia blobs is no longer present - as such if you have a monitor that previously had issues due to "corrupt" EDID information, you can now safely remove your custom EDID.bin or EDID override entries in xorg.conf.

Last edited by Xaero252 (2015-04-18 19:05:03)

Offline

Board footer

Powered by FluxBB