Bug 878605
Summary: | systemd-logind: No way to setup multi-seat with two nvidia cards using proprietary drivers | ||
---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | Oleg Samarin <osamarin68> |
Component: | systemd | Assignee: | systemd-maint |
Status: | CLOSED RAWHIDE | QA Contact: | Fedora Extras Quality Assurance <extras-qa> |
Severity: | medium | Docs Contact: | |
Priority: | unspecified | ||
Version: | 17 | CC: | debian, johannbg, lnykryn, metherid, mschmidt, msekleta, notting, oli, plautrba, stefan.bruens, systemd-maint, vpavlin |
Target Milestone: | --- | ||
Target Release: | --- | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Fixed In Version: | Doc Type: | Bug Fix | |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2013-01-11 13:29:29 UTC | Type: | Bug |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: | |||
Attachments: |
Description
Oleg Samarin
2012-11-20 18:42:38 UTC
Created attachment 648717 [details]
'Xorg -seat seatXXX' will search ServerLayout with Option "Seat" "SeatXXX"
Created attachment 648718 [details]
My xorg.conf - an example of two-seat configuration
Created attachment 648719 [details]
The result of 'loginctl seat-status'
This looks like something to resolve upstream. Could you post the patch to the upstream mailing list?: systemd-devel.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel Created attachment 649365 [details]
allows systemd-logind to create a seat without a graphic card
(In reply to comment #4) > This looks like something to resolve upstream. Could you post the patch to > the upstream mailing list?: > systemd-devel.org > http://lists.freedesktop.org/mailman/listinfo/systemd-devel I did it. But my post is waiting for moderator approval. This is now fixed upstream. By dropping in a udev rules files you now can make any device a master device for a seat, including binary only NVIDIA driver devices. Fixed in Rawhide. Should this work now in F18, or do I need a later systemd package? Is it necessary to add "SeatWithoutGraphics=yes" to /etc/systemd/systemd-logind.conf, and/or make a custom udev rule (where can I find an example)? You need to add the udev tag "master-of-seat" to some sysfs device your graphics driver exposes. Or you may asign "master-of-seat" to your USB hub. Thanks for your replies. I added these udev rules: ---- DEVPATH=="/devices/pci0000:00/0000:00:02.0/0000:01:00.0, TAG+="seat" DEVPATH=="/devices/pci0000:00/0000:00:0b.0/0000:06:00.0", TAG+="seat" DEVPATH=="/devices/pci0000:00/0000:00:12.2/usb1/1-4/1-4.4/1-4.4.4/1-4.4.4.1", TAG+="master-of-seat" ---- And can confirm the tags exist on my second graphics card: ---- [ojw23@lnc ~]$ udevadm info --query=all --path=/sys/devices/pci0000:00/0000:00:0b.0/0000:06:00.0 P: /devices/pci0000:00/0000:00:0b.0/0000:06:00.0 E: DEVPATH=/devices/pci0000:00/0000:00:0b.0/0000:06:00.0 E: DRIVER=nvidia E: ID_FOR_SEAT=pci-pci-0000_06_00_0 E: ID_MODEL_FROM_DATABASE=GT215 [GeForce GT 240] E: ID_PATH=pci-0000:06:00.0 E: ID_PATH_TAG=pci-0000_06_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=seat1 E: ID_VENDOR_FROM_DATABASE=NVIDIA Corporation E: MODALIAS=pci:v000010DEd00000CA3sv00001458sd000034E2bc03sc00i00 E: PCI_CLASS=30000 E: PCI_ID=10DE:0CA3 E: PCI_SLOT_NAME=0000:06:00.0 E: PCI_SUBSYS_ID=1458:34E2 E: SUBSYSTEM=pci E: TAGS=:seat:seat1: E: UDEV_LOG=6 E: USEC_INITIALIZED=4616 ---- Then I added the hub and card to seat1: ---- [ojw23@lnc ~]$ loginctl seat-status seat1 seat1 Devices: ├─/sys/devices/pci0000:00/0000:00:0b.0/0000:06:00.0 │ pci:0000:06:00.0 ├─/sys/devices/pci0000:00/0000:00:0b.0/0000:06:00.1/sound/card3 │ sound:card3 "NVidia_1" │ ├─/sys/devices/pci0000:00/0000:00:0b.0/0000:06:00.1/sound/card3/input18 │ │ input:input18 "HDA NVidia HDMI/DP,pcm=9" │ ├─/sys/devices/pci0000:00/0000:00:0b.0/0000:06:00.1/sound/card3/input19 │ │ input:input19 "HDA NVidia HDMI/DP,pcm=8" │ ├─/sys/devices/pci0000:00/0000:00:0b.0/0000:06:00.1/sound/card3/input20 │ │ input:input20 "HDA NVidia HDMI/DP,pcm=7" │ └─/sys/devices/pci0000:00/0000:00:0b.0/0000:06:00.1/sound/card3/input21 │ input:input21 "HDA NVidia HDMI/DP,pcm=3" └─/sys/devices/pci0000:00/0000:00:12.2/usb1/1-4/1-4.4/1-4.4.4/1-4.4.4.1 [MASTER] usb:1-4.4.4.1 ├─/sys/devices/pci0000:00/0000:00:12.2/usb1/1-4/1-4.4/1-4.4.4/1-4.4.4.1/1-4.4.4.1.1/1-4.4.4.1.1:1.0/input/input23 │ input:input23 "Logitech USB-PS/2 Optical Mouse" ├─/sys/devices/pci0000:00/0000:00:12.2/usb1/1-4/1-4.4/1-4.4.4/1-4.4.4.1/1-4.4.4.1.2/1-4.4.4.1.2:1.0/input/input24 │ input:input24 "LITEON Technology USB Multimedia Keyboard" ├─/sys/devices/pci0000:00/0000:00:12.2/usb1/1-4/1-4.4/1-4.4.4/1-4.4.4.1/1-4.4.4.1.2/1-4.4.4.1.2:1.1/input/input25 │ input:input25 "LITEON Technology USB Multimedia Keyboard" ├─/sys/devices/pci0000:00/0000:00:12.2/usb1/1-4/1-4.4/1-4.4.4/1-4.4.4.1/1-4.4.4.1.4/1-4.4.4.1.4:1.0/sound/card4 │ sound:card4 "Set" └─/sys/devices/pci0000:00/0000:00:12.2/usb1/1-4/1-4.4/1-4.4.4/1-4.4.4.1/1-4.4.4.1.4/1-4.4.4.1.4:1.3/input/input26 input:input26 "C-Media USB Headphone Set " ---- But there is no second gdm: ---- [ojw23@lnc ~]$ ps aux | grep gdm root 807 0.0 0.0 297632 3108 ? Ssl 09:03 0:00 /usr/sbin/gdm-binary root 831 0.0 0.0 392492 3772 ? Sl 09:03 0:00 /usr/libexec/gdm-simple-slave --display-id /org/gnome/DisplayManager/Displays/_0 root 852 1.8 0.2 224948 39912 tty1 Ss+ 09:03 0:12 /usr/bin/Xorg :0 -background none -verbose -auth /var/run/gdm/auth-for-gdm-geYJJH/database -seat seat0 -nolisten tcp vt1 root 1513 0.0 0.0 361232 4360 ? Sl 09:05 0:00 gdm-session-worker [pam/gdm-password] ojw23 2183 0.0 0.0 109184 840 pts/0 S+ 09:15 0:00 grep --color=auto gdm ---- Do I need to do anything else to activate it? I am still struggling with this; I can alternately set the graphics card to be master, but there is no second login prompt appearing. I think the Xserver fails to load: ---- [ojw23@lnc log]$ tail Xorg.1.log [ 5.043] (EE) No devices detected. [ 5.043] Fatal server error: [ 5.043] no screens found [ 5.043] (EE) Please consult the Fedora Project support at http://wiki.x.org for help. [ 5.043] (EE) Please also check the log file at "/var/log/Xorg.1.log" for additional information. [ 5.043] (EE) ---- Is there a subnode of the pci device that should rather be tagged? ---- [ojw23@lnc log]$ loginctl seat-status seat1 seat1 Devices: ├─/sys/devices/pci0000:00/0000:00:0b.0/0000:06:00.0 │ [MASTER] pci:0000:06:00.0 └─/sys/devices/pci0000:00/0000:00:12.2/usb1/1-4/1-4.4/1-4.4.4/1-4.4.4.1 usb:1-4.4.4.1 ├─/sys/devices/pci00...1/1-4/1-4.4/1-4.4.4/1-4.4.4.1/1-4.4.4.1.1/1-4.4.4.1.1:1.0/input/input23 │ input:input23 "Logitech USB-PS/2 Optical Mouse" ├─/sys/devices/pci00...1/1-4/1-4.4/1-4.4.4/1-4.4.4.1/1-4.4.4.1.2/1-4.4.4.1.2:1.0/input/input24 │ input:input24 "LITEON Technology USB Multimedia Keyboard" ├─/sys/devices/pci00...1/1-4/1-4.4/1-4.4.4/1-4.4.4.1/1-4.4.4.1.2/1-4.4.4.1.2:1.1/input/input25 │ input:input25 "LITEON Technology USB Multimedia Keyboard" ├─/sys/devices/pci00...sb1/1-4/1-4.4/1-4.4.4/1-4.4.4.1/1-4.4.4.1.4/1-4.4.4.1.4:1.0/sound/card4 │ sound:card4 "Set" └─/sys/devices/pci00...1/1-4/1-4.4/1-4.4.4/1-4.4.4.1/1-4.4.4.1.4/1-4.4.4.1.4:1.3/input/input26 input:input26 "C-Media USB Headphone Set " ---- Or else might this be related: https://bugzilla.redhat.com/show_bug.cgi?id=962907 I have read the systemd-devel thread and perhaps I was missing some xorg.conf in order to specify the devices used by the different seats. So I made something up (like I used to use with static config), and based on the above: https://bugzilla.redhat.com/show_bug.cgi?id=878605#c2 I saved it under xorg.conf.d, but it is not clear that the seat "option" is being understood - since the Xorg log suggests it is always going for the "screen0" server layout. Is the xorg.conf snippet necessary, and/or does it need to have a particular filename to match the seat? Or do I need to add something to the gdm custom config? Created attachment 764692 [details]
Xorg.1.log
I try the same as Oli Wade. Gdm start at seat0. When I try to start a second one $ X :1 -layout seat1 -sharevts vt2 (see Xorg.1.log) The monitor on seat1 detect a signal, but doesn't a gdm login. $ X :1 -layout seat1 -sharevts -seat seat1 vt2 Xorg.1.log ends with: ... [ 10990.270] (II) NVIDIA dlloader X Driver 304.88 Wed Mar 27 14:28:14 PDT 2013 [ 10990.270] (II) NVIDIA Unified Driver for all Supported NVIDIA GPUs [ 10990.270] (++) using VT number 2 [ 10990.270] (EE) No devices detected. [ 10990.270] Fatal server error: [ 10990.270] no screens found [ 10990.270] (EE) Please consult the Fedora Project support at http://wiki.x.org for help. [ 10990.270] (EE) Please also check the log file at "/var/log/Xorg.1.log" for additional information. [ 10990.270] (EE) Created attachment 764723 [details]
my xorg.conf.d/01-nvidia.conf
Sorry,
I forgot to add my xorg.conf.d/01-nvidia.conf file
Oleg, can you give us a clue where to put/name the xorg.conf? Maybe this information can be used to solve this bug or it is totally unrelated: I can start a second X server with: # /lib/systemd/systemd-multi-seat-x :1 -layout seat1 vt7 -sharevts Only the X server start. No gdm or any other daemon or server. While the second X server is running I tried to start a gnome-session # gnome-session --display=:1 gnome-session[4901]: WARNING: Could not make bus activated clients aware of DISPLAY=:1 environment variable: Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken. gnome-session[4901]: WARNING: Could not make bus activated clients aware of GNOME_DESKTOP_SESSION_ID=this-is-deprecated environment variable: Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken. gnome-session[4901]: WARNING: Could not make bus activated clients aware of XDG_MENU_PREFIX=gnome- environment variable: Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken. This information is also displayed in a error-dialog window on the second monitor. At least a window ;-) After clicking the "logout" button the next information is given: 7 XSELINUXs still allocated at reset SCREEN: 0 objects of 344 bytes = 0 total bytes 0 private allocs COLORMAP: 0 objects of 8 bytes = 0 total bytes 0 private allocs DEVICE: 0 objects of 96 bytes = 0 total bytes 0 private allocs CLIENT: 0 objects of 120 bytes = 0 total bytes 0 private allocs WINDOW: 0 objects of 72 bytes = 0 total bytes 0 private allocs PIXMAP: 2 objects of 112 bytes = 224 total bytes 0 private allocs GC: 4 objects of 40 bytes = 160 total bytes 0 private allocs CURSOR: 0 objects of 8 bytes = 0 total bytes 0 private allocs DBE_WINDOW: 0 objects of 24 bytes = 0 total bytes 0 private allocs GLYPH: 0 objects of 24 bytes = 0 total bytes 0 private allocs PICTURE: 0 objects of 8 bytes = 0 total bytes 0 private allocs SYNC_FENCE: 0 objects of 8 bytes = 0 total bytes 0 private allocs TOTAL: 6 objects, 384 bytes, 0 allocs 1 SELECTIONs still allocated at reset WINDOW: 0 objects of 72 bytes = 0 total bytes 0 private allocs PIXMAP: 2 objects of 112 bytes = 224 total bytes 0 private allocs GC: 4 objects of 40 bytes = 160 total bytes 0 private allocs CURSOR: 0 objects of 8 bytes = 0 total bytes 0 private allocs DBE_WINDOW: 0 objects of 24 bytes = 0 total bytes 0 private allocs GLYPH: 0 objects of 24 bytes = 0 total bytes 0 private allocs PICTURE: 0 objects of 8 bytes = 0 total bytes 0 private allocs SYNC_FENCE: 0 objects of 8 bytes = 0 total bytes 0 private allocs TOTAL: 6 objects, 384 bytes, 0 allocs 2 PIXMAPs still allocated at reset PIXMAP: 2 objects of 112 bytes = 224 total bytes 0 private allocs GC: 4 objects of 40 bytes = 160 total bytes 0 private allocs CURSOR: 0 objects of 8 bytes = 0 total bytes 0 private allocs DBE_WINDOW: 0 objects of 24 bytes = 0 total bytes 0 private allocs GLYPH: 0 objects of 24 bytes = 0 total bytes 0 private allocs PICTURE: 0 objects of 8 bytes = 0 total bytes 0 private allocs SYNC_FENCE: 0 objects of 8 bytes = 0 total bytes 0 private allocs TOTAL: 6 objects, 384 bytes, 0 allocs 4 GCs still allocated at reset GC: 4 objects of 40 bytes = 160 total bytes 0 private allocs CURSOR: 0 objects of 8 bytes = 0 total bytes 0 private allocs DBE_WINDOW: 0 objects of 24 bytes = 0 total bytes 0 private allocs GLYPH: 0 objects of 24 bytes = 0 total bytes 0 private allocs PICTURE: 0 objects of 8 bytes = 0 total bytes 0 private allocs SYNC_FENCE: 0 objects of 8 bytes = 0 total bytes 0 private allocs TOTAL: 4 objects, 160 bytes, 0 allocs Note: the other Xserver is not aware of any udev seat tags. The second mouse also controls the mouse pointer on the first server. When I add the "-seat seat1" option to the Xserver the server dies with: [ 10990.270] (EE) No devices detected. [ 10990.270] Fatal server error: [ 10990.270] no screens found [ 10990.270] (EE) Please consult the Fedora Project support at http://wiki.x.org for help. [ 10990.270] (EE) Please also check the log file at "/var/log/Xorg.1.log" for additional information. [ 10990.270] (EE) Thanks Floris! I have given up and changed to ATI graphics; while the seat can be created it seems impossible to actually use it at this time. I can see some progress with KDE is happening in this bug: https://bugzilla.redhat.com/show_bug.cgi?id=975079 Is there a GDM equivalent bug to track the future status of support for the seat/layout options? the "no screens found" error should be fixed with this commit: http://cgit.freedesktop.org/xorg/xserver/commit/?id=29b1484bb9555e45067669cbfe68a3c40596f4ff Tested with catalyst/fglrx and patch applied to xserver-1.14 |