Bug 823815

Summary: Input devices on USB hub are not attached to seat0
Product: [Fedora] Fedora Reporter: Dan Callaghan <dcallagh>
Component: systemdAssignee: systemd-maint
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 17CC: johannbg, kpijarski, lpoetter, metherid, mschmidt, notting, plautrba, systemd-maint
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2012-06-20 19:25:28 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:

Description Dan Callaghan 2012-05-22 08:46:56 UTC
Description of problem:

My USB keyboard and mouse don't work when attached via the USB hub in my monitor (they would work when attached directly to the system's USB ports). Eventually I figured out that they are not being assigned to seat0 when plugged in via the USB hub.


Version-Release number of selected component (if applicable):

kernel-3.3.6-3.fc17.x86_64
systemd-44-8.fc17.x86_64


How reproducible:

always

Steps to Reproduce:
1. Plug in my wireless mouse receiver to the USB hub

  
Actual results:

The X server doesn't find it.


Expected results:

The X server finds it.


Additional info:

In dmesg I can see the mouse receiver being plugged in on the USB hub:

[  464.899326] logitech-djreceiver 0003:046D:C52B.000A: hiddev0,hidraw1: USB HID v1.11 Device [Logitech USB Receiver] on usb-0000:00:1a.7-6.1/input2
[  464.901503] input: Logitech Unifying Device. Wireless PID:101b as /devices/pci0000:00/0000:00:1a.7/usb1/1-6/1-6.1/1-6.1:1.2/0003:046D:C52B.000A/input/input17
[  464.901949] logitech-djdevice 0003:046D:C52B.000B: input,hidraw2: USB HID v1.11 Mouse [Logitech Unifying Device. Wireless PID:101b] on usb-0000:00:1a.7-6.1:1

but when I run systemd-loginctl seat-status seat0, the mouse is missing:

seat0
	Sessions: 1
	 Devices:
		  ├ /sys/devices/LNXSYSTM:00/LNXPWRBN:00/input/input1
		  │ (input:input1) "Power Button"
		  ├ /sys/devices/LNXSYSTM:00/device:00/PNP0C0E:00/input/input0
		  │ (input:input0) "Sleep Button"
		  ├ /sys/devices/pci0000:00/0000:00:03.0/0000:02:00.0/drm/card0
		  │ (drm:card0)
		  ├ /sys/devices/pci0000:00/0000:00:03.0/0000:02:00.0/graphics/fb0
		  │ (graphics:fb0) "nouveaufb"
		  ├ /sys/devices/pci0000:00/0000:00:03.0/0000:02:00.1/sound/card1
		  │ (sound:card1) "NVidia"
		  │ ├ /sys/devices/pci0000:00/0000:00:03.0/0000:02:00.1/sound/card1/input11
		  │ │ (input:input11) "HDA NVidia HDMI/DP,pcm=9"
		  │ ├ /sys/devices/pci0000:00/0000:00:03.0/0000:02:00.1/sound/card1/input12
		  │ │ (input:input12) "HDA NVidia HDMI/DP,pcm=8"
		  │ ├ /sys/devices/pci0000:00/0000:00:03.0/0000:02:00.1/sound/card1/input13
		  │ │ (input:input13) "HDA NVidia HDMI/DP,pcm=7"
		  │ └ /sys/devices/pci0000:00/0000:00:03.0/0000:02:00.1/sound/card1/input14
		  │   (input:input14) "HDA NVidia HDMI/DP,pcm=3"
		  ├ /sys/devices/pci0000:00/0000:00:1a.0/usb3
		  │ (usb:usb3)
		  ├ /sys/devices/pci0000:00/0000:00:1a.1/usb4
		  │ (usb:usb4)
		  ├ /sys/devices/pci0000:00/0000:00:1a.2/usb5
		  │ (usb:usb5)
		  ├ /sys/devices/pci0000:00/0000:00:1a.7/usb1
		  │ (usb:usb1)
		  ├ /sys/devices/pci0000:00/0000:00:1b.0/sound/card0
		  │ (sound:card0) "Intel"
		  │ ├ /sys/devices/pci0000:00/0000:00:1b.0/sound/card0/input10
		  │ │ (input:input10) "HDA Intel Line Out Front"
		  │ ├ /sys/devices/pci0000:00/0000:00:1b.0/sound/card0/input4
		  │ │ (input:input4) "HDA Intel Line"
		  │ ├ /sys/devices/pci0000:00/0000:00:1b.0/sound/card0/input5
		  │ │ (input:input5) "HDA Intel Rear Mic"
		  │ ├ /sys/devices/pci0000:00/0000:00:1b.0/sound/card0/input6
		  │ │ (input:input6) "HDA Intel Front Mic"
		  │ ├ /sys/devices/pci0000:00/0000:00:1b.0/sound/card0/input7
		  │ │ (input:input7) "HDA Intel Front Headphone"
		  │ ├ /sys/devices/pci0000:00/0000:00:1b.0/sound/card0/input8
		  │ │ (input:input8) "HDA Intel Line Out CLFE"
		  │ └ /sys/devices/pci0000:00/0000:00:1b.0/sound/card0/input9
		  │   (input:input9) "HDA Intel Line Out Surround"
		  ├ /sys/devices/pci0000:00/0000:00:1d.0/usb6
		  │ (usb:usb6)
		  │ └ /sys/devices/pci0000:00/0000:00:1d.0/usb6/6-2/6-2:1.0/input/input16
		  │   (input:input16) "Unicomp  Endura Keyboard "
		  ├ /sys/devices/pci0000:00/0000:00:1d.1/usb7
		  │ (usb:usb7)
		  ├ /sys/devices/pci0000:00/0000:00:1d.2/usb8
		  │ (usb:usb8)
		  ├ /sys/devices/pci0000:00/0000:00:1d.7/usb2
		  │ (usb:usb2)
		  └ /sys/devices/virtual/misc/kvm
		    (misc:kvm)

and the X server doesn't find it. Interestingly it looks like the USB hub itself is attached to seat0, just not the mouse.

If I manually attach the mouse to seat0 by running:

systemd-loginctl attach seat0 /sys/devices/pci0000:00/0000:00:1a.7/usb1/1-6/1-6.1/1-6.1:1.2/0003:046D:C52B.000A/input/input17

then it appears in the seat's device tree:

seat0
	Sessions: 1
	 Devices:
[...]
		  ├ /sys/devices/pci0000:00/0000:00:1a.7/usb1
		  │ (usb:usb1)
		  │ └ /sys/devices/pci0000:00/0000:00:1a.7/usb1/1-6/1-6.1/1-6.1:1.2/0003:046D:C52B.000A/input/input17
		  │   (input:input17) "Logitech Unifying Device. Wireless PID:101b"
[...]

and X finds it and it works. If I plug it in directly:

[ 1644.164848] logitech-djreceiver 0003:046D:C52B.000E: hiddev0,hidraw1: USB HID v1.11 Device [Logitech USB Receiver] on usb-0000:00:1d.0-1/input2
[ 1644.167748] input: Logitech Unifying Device. Wireless PID:101b as /devices/pci0000:00/0000:00:1d.0/usb6/6-1/6-1:1.2/0003:046D:C52B.000E/input/input18
[ 1644.168138] logitech-djdevice 0003:046D:C52B.000F: input,hidraw2: USB HID v1.11 Mouse [Logitech Unifying Device. Wireless PID:101b] on usb-0000:00:1d.0-1:1

then it goes onto seat0 and works as expected, without manually attaching:

[...]
		  ├ /sys/devices/pci0000:00/0000:00:1d.0/usb6
		  │ (usb:usb6)
		  │ ├ /sys/devices/pci0000:00/0000:00:1d.0/usb6/6-1/6-1:1.2/0003:046D:C52B.000E/input/input18
		  │ │ (input:input18) "Logitech Unifying Device. Wireless PID:101b"
		  │ └ /sys/devices/pci0000:00/0000:00:1d.0/usb6/6-2/6-2:1.0/input/input16
		  │   (input:input16) "Unicomp  Endura Keyboard "
[...]

Comment 1 Michal Schmidt 2012-05-22 09:32:12 UTC
What information does udev have about the devices?:
udevadm info -q all -p /sys/devices/pci...

Comment 2 Dan Callaghan 2012-05-22 10:11:28 UTC
When plugged in directly (working normally):

P: /devices/pci0000:00/0000:00:1d.0/usb6/6-1/6-1:1.2/0003:046D:C52B.0016/input/input20
E: DEVPATH=/devices/pci0000:00/0000:00:1d.0/usb6/6-1/6-1:1.2/0003:046D:C52B.0016/input/input20
E: EV=17
E: ID_BUS=usb
E: ID_FOR_SEAT=input-pci-0000_00_1d_0-usb-0_1_1_2
E: ID_INPUT=1
E: ID_INPUT_MOUSE=1
E: ID_MODEL=USB_Receiver
E: ID_MODEL_ENC=USB\x20Receiver
E: ID_MODEL_ID=c52b
E: ID_PATH=pci-0000:00:1d.0-usb-0:1:1.2
E: ID_PATH_TAG=pci-0000_00_1d_0-usb-0_1_1_2
E: ID_REVISION=1200
E: ID_SERIAL=Logitech_USB_Receiver
E: ID_TYPE=hid
E: ID_USB_DRIVER=usbhid
E: ID_USB_INTERFACES=:030101:030102:030000:
E: ID_USB_INTERFACE_NUM=02
E: ID_VENDOR=Logitech
E: ID_VENDOR_ENC=Logitech
E: ID_VENDOR_ID=046d
E: KEY=ffff0000 0 0 0 0
E: MODALIAS=input:b0003v046DpC52Be0111-e0,1,2,4,k110,111,112,113,114,115,116,117,118,119,11A,11B,11C,11D,11E,11F,r0,1,6,8,am4,lsfw
E: MSC=10
E: NAME="Logitech Unifying Device. Wireless PID:101b"
E: PHYS="usb-0000:00:1d.0-1:1"
E: PRODUCT=3/46d/c52b/111
E: PROP=0
E: REL=143
E: SUBSYSTEM=input
E: TAGS=:seat:
E: UNIQ=""
E: USEC_INITIALIZED=6761346382

When plugged in via the USB hub:

P: /devices/pci0000:00/0000:00:1a.7/usb1/1-6/1-6.3/1-6.3:1.2/0003:046D:C52B.001E/input/input22
E: DEVPATH=/devices/pci0000:00/0000:00:1a.7/usb1/1-6/1-6.3/1-6.3:1.2/0003:046D:C52B.001E/input/input22
E: EV=17
E: ID_BUS=usb
E: ID_FOR_SEAT=input-pci-0000_00_1a_7-usb-0_6_3_1_2
E: ID_INPUT=1
E: ID_INPUT_MOUSE=1
E: ID_MODEL=USB_Receiver
E: ID_MODEL_ENC=USB\x20Receiver
E: ID_MODEL_ID=c52b
E: ID_PATH=pci-0000:00:1a.7-usb-0:6.3:1.2
E: ID_PATH_TAG=pci-0000_00_1a_7-usb-0_6_3_1_2
E: ID_REVISION=1200
E: ID_SEAT=seat-usb-pci-0000_00_1a_7-usb-0_6
E: ID_SERIAL=Logitech_USB_Receiver
E: ID_TYPE=hid
E: ID_USB_DRIVER=usbhid
E: ID_USB_INTERFACES=:030101:030102:030000:
E: ID_USB_INTERFACE_NUM=02
E: ID_VENDOR=Logitech
E: ID_VENDOR_ENC=Logitech
E: ID_VENDOR_ID=046d
E: KEY=ffff0000 0 0 0 0
E: MODALIAS=input:b0003v046DpC52Be0111-e0,1,2,4,k110,111,112,113,114,115,116,117,118,119,11A,11B,11C,11D,11E,11F,r0,1,6,8,am4,lsfw
E: MSC=10
E: NAME="Logitech Unifying Device. Wireless PID:101b"
E: PHYS="usb-0000:00:1a.7-6.3:1"
E: PRODUCT=3/46d/c52b/111
E: PROP=0
E: REL=143
E: SUBSYSTEM=input
E: TAGS=:seat:seat-usb-pci-0000_00_1a_7-usb-0_6:
E: UNIQ=""
E: USEC_INITIALIZED=6825458265

I'm guessing that seat-usb-pci-0000_00_1a_7-usb-0_6 is not right...

Comment 3 Michal Schmidt 2012-05-22 12:45:31 UTC
Do you have any seat rules under /etc?:
grep SEAT /etc/udev/rules.d/*

Comment 4 Dan Callaghan 2012-05-22 21:55:32 UTC
No, there is nothing under /etc/udev/rules.d at all (apart from the rules which are evidently created by systemd-loginctl attach, which I have been removing for testing this bug). I haven't customised any configuration related to systemd or udev on this box, apart from enabling/disabling various services.

Comment 5 Michal Schmidt 2012-05-23 09:12:40 UTC
Please attach the output of
udevadm info --export-db

Comment 6 Lennart Poettering 2012-05-23 12:22:58 UTC
What is the vendor/product id of the USB hub you connect this to? Can you please provide the lsusb output?

My educated guess is that the current check for MIMO USB displays is a bit too broad since it uses a generic VID/PID for the hub that is built in (058f:6254). We should make this a bit more specific.

Comment 7 Dan Callaghan 2012-05-25 22:55:36 UTC
Good guess Lennart :-)

$ lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 008 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 002: ID 058f:6254 Alcor Micro Corp. USB Hub
Bus 006 Device 002: ID f617:0905  
Bus 001 Device 003: ID 046d:c52b Logitech, Inc. Unifying Receiver

"Alcor Micro Corp. USB Hub" is the hub (it's actually inside my Samsung monitor).

I commented out this line in /lib/udev/rules.d/71-seat.rules:

# Mimo 720, with integrated USB hub, displaylink graphics, and e2i touchscreen
#SUBSYSTEM=="usb", ATTR{idVendor}=="058f", ATTR{idProduct}=="6254", ENV{ID_AUTOSEAT}="1"

and now everything is working nicely.

Comment 8 Lennart Poettering 2012-05-31 00:02:56 UTC
Fixed in git.

Comment 9 Fedora Update System 2012-06-13 00:15:22 UTC
systemd-44-13.fc17 has been submitted as an update for Fedora 17.
https://admin.fedoraproject.org/updates/systemd-44-13.fc17

Comment 10 Fedora Update System 2012-06-15 12:28:18 UTC
Package systemd-44-14.fc17:
* should fix your issue,
* was pushed to the Fedora 17 testing repository,
* should be available at your local mirror within two days.
Update it with:
# su -c 'yum update --enablerepo=updates-testing systemd-44-14.fc17'
as soon as you are able to.
Please go to the following url:
https://admin.fedoraproject.org/updates/FEDORA-2012-9471/systemd-44-14.fc17
then log in and leave karma (feedback).

Comment 11 Fedora Update System 2012-06-20 19:25:28 UTC
systemd-44-14.fc17 has been pushed to the Fedora 17 stable repository.  If problems still persist, please make note of it in this bug report.

Comment 12 kpijarski 2012-07-16 08:30:11 UTC
hello,

i have no idea if my issue is related to this one but this was the only bug that is analogous to mine that i could find: the thing is, i have all the above updates installed (i just got a new computer, so the system is fresh), so my wireless logitech mouse works with a hub, but it does not work *without* a hub anymore. is it possible that this is connected to the above? (all the ports are usb 3.0, but the hub is usb 2.0.)

dmesg when plugged directly into the computer (dell inspiron 7520):

[ 5106.901515] usb 3-4: new full-speed USB device number 14 using xhci_hcd
[ 5106.915115] usb 3-4: New USB device found, idVendor=046d, idProduct=c52b
[ 5106.915121] usb 3-4: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 5106.915124] usb 3-4: Product: USB Receiver
[ 5106.915126] usb 3-4: Manufacturer: Logitech
[ 5106.918268] logitech-djreceiver 0003:046D:C52B.0020: hiddev0,hidraw0: USB HID v1.11 Device [Logitech USB Receiver] on usb-0000:00:14.0-4/input2
[ 5106.918534] logitech-djreceiver 0003:046D:C52B.0020: logi_dj_probe:logi_dj_recv_query_paired_devices error:-32
[ 5106.918747] logitech-djreceiver: probe of 0003:046D:C52B.0020 failed with error -32

dmesg when plugged into the hub:

[ 5356.068340] usb 3-1.1: new full-speed USB device number 15 using xhci_hcd
[ 5356.082123] usb 3-1.1: New USB device found, idVendor=046d, idProduct=c52b
[ 5356.082128] usb 3-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 5356.082142] usb 3-1.1: Product: USB Receiver
[ 5356.082144] usb 3-1.1: Manufacturer: Logitech
[ 5356.085787] logitech-djreceiver 0003:046D:C52B.0023: hiddev0,hidraw0: USB HID v1.11 Device [Logitech USB Receiver] on usb-0000:00:14.0-1.1/input2
[ 5356.088998] input: Logitech Unifying Device. Wireless PID:101d as /devices/pci0000:00/0000:00:14.0/usb3/3-1/3-1.1/3-1.1:1.2/0003:046D:C52B.0023/input/input14
[ 5356.089199] logitech-djdevice 0003:046D:C52B.0024: input,hidraw1: USB HID v1.11 Mouse [Logitech Unifying Device. Wireless PID:101d] on usb-0000:00:14.0-1.1:1
[ 5356.091077] input: Logitech Unifying Device. Wireless PID:2007 as /devices/pci0000:00/0000:00:14.0/usb3/3-1/3-1.1/3-1.1:1.2/0003:046D:C52B.0023/input/input15
[ 5356.091204] logitech-djdevice 0003:046D:C52B.0025: input,hidraw2: USB HID v1.11 Keyboard [Logitech Unifying Device. Wireless PID:2007] on usb-0000:00:14.0-1.1:2


i'd be grateful for any help, cheers!

Comment 13 Michal Schmidt 2012-07-16 08:35:37 UTC
(In reply to comment #12)
> [ 5106.918534] logitech-djreceiver 0003:046D:C52B.0020:
> logi_dj_probe:logi_dj_recv_query_paired_devices error:-32
> [ 5106.918747] logitech-djreceiver: probe of 0003:046D:C52B.0020 failed with
> error -32

It appears that the kernel driver is having trouble talking to the device. It's either a kernel bug or a hardware problem. Not related to this bug.

Comment 14 kpijarski 2012-07-16 08:37:53 UTC
thanks for the quick reply - i'll open a new bugreport then.

Comment 15 kpijarski 2012-07-16 08:51:45 UTC
filed it under Bug 840391, thanks again!