Unable to enumerate Logitech MeetUp conference cam as HID device on ChromeOS.
Reported by
usbtestp...@partnerhangoutstest.com,
Mar 23 2018
|
||||||||||||||||||
Issue descriptionUserAgent: Mozilla/5.0 (X11; CrOS x86_64 10176.76.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.190 Safari/537.36 Platform: 10176.76.0 (Official Build) stable-channel guado Steps to reproduce the problem: 1. On ChromeOS, install HID sample extension from https://github.com/GoogleChrome/chrome-app-samples 2. Plug in Logitech MeetUp device. 3. The sample extensions do not see MeetUp HID device. What is the expected behavior? Logitech MeetUp device should be enumerated as HID device and recognized by HID extension apps on ChromeOS. What went wrong? This issue might come from ChromeOS device driver and is related with the ID of "Vendor-defined Usage Page" in HID report descriptor. MeetUp device defines 3 sections of Vendor-defined Usage Page with 3 different IDs and device driver does not recognize multiple Vendor-defined Usage Page. Did this work before? No Chrome version: 64.0.3282.190 Channel: n/a OS Version: 10176.76.0 Flash Version: If all Vendor-defined usage page IDs are changed to 0xFF00, ChromeOS HID extension app can recognized MeetUp Hid device.
,
Mar 30 2018
I got the log from my ChromeBox: Plug in: 2018-03-29T18:55:33.700068-07:00 INFO kernel: [117467.799354] usb 1-4: new high-speed USB device number 12 using xhci_hcd 2018-03-29T18:55:33.868091-07:00 INFO kernel: [117467.967268] usb 1-4: New USB device found, idVendor=046d, idProduct=086a 2018-03-29T18:55:33.868124-07:00 INFO kernel: [117467.967287] usb 1-4: New USB device strings: Mfr=1, Product=2, SerialNumber=0 2018-03-29T18:55:33.868128-07:00 INFO kernel: [117467.967296] usb 1-4: Product: USB2.1 Hub 2018-03-29T18:55:33.868130-07:00 INFO kernel: [117467.967305] usb 1-4: Manufacturer: GenesysLogic 2018-03-29T18:55:33.869020-07:00 INFO kernel: [117467.968828] hub 1-4:1.0: USB hub found 2018-03-29T18:55:33.869050-07:00 INFO kernel: [117467.969106] hub 1-4:1.0: 2 ports detected 2018-03-29T18:55:34.160095-07:00 INFO kernel: [117468.259268] usb 1-4.1: new high-speed USB device number 13 using xhci_hcd 2018-03-29T18:55:34.270071-07:00 INFO kernel: [117468.370114] usb 1-4.1: New USB device found, idVendor=046d, idProduct=0866 2018-03-29T18:55:34.270112-07:00 INFO kernel: [117468.370131] usb 1-4.1: New USB device strings: Mfr=0, Product=2, SerialNumber=3 2018-03-29T18:55:34.270115-07:00 INFO kernel: [117468.370139] usb 1-4.1: Product: Logitech MeetUp 2018-03-29T18:55:34.270118-07:00 INFO kernel: [117468.370146] usb 1-4.1: SerialNumber: 509C4267 2018-03-29T18:55:34.273022-07:00 INFO kernel: [117468.372667] uvcvideo: Found UVC 1.00 device Logitech MeetUp (046d:0866) 2018-03-29T18:55:34.362089-07:00 INFO kernel: [117468.461290] usb 1-4.2: new full-speed USB device number 14 using xhci_hcd 2018-03-29T18:55:34.471029-07:00 INFO kernel: [117468.570963] usb 1-4.2: New USB device found, idVendor=046d, idProduct=0867 2018-03-29T18:55:34.471050-07:00 INFO kernel: [117468.570975] usb 1-4.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3 2018-03-29T18:55:34.471052-07:00 INFO kernel: [117468.570983] usb 1-4.2: Product: Logitech MeetUp Speakerphone 2018-03-29T18:55:34.471053-07:00 INFO kernel: [117468.570989] usb 1-4.2: Manufacturer: Logitech 2018-03-29T18:55:34.471055-07:00 INFO kernel: [117468.570995] usb 1-4.2: SerialNumber: 0x05c92476 2018-03-29T18:55:34.483964-07:00 INFO kernel: [117468.583817] input: Logitech Logitech MeetUp Speakerphone as /devices/pci0000:00/0000:00:14.0/usb1/1-4/1-4.2/1-4.2:1.3/0003:046D:0867.0006/input/input10 2018-03-29T18:55:34.534969-07:00 INFO kernel: [117468.634477] hid-generic 0003:046D:0867.0006: input,hiddev0,hidraw3: USB HID v1.11 Device [Logitech Logitech MeetUp Speakerphone] on usb-0000:00:14.0-4.2/input3 2018-03-29T18:55:34.635603-07:00 INFO permission_broker[1056]: ProcessPath(/dev/bus/usb/001/013) 2018-03-29T18:55:34.664915-07:00 ERR cras_server[1134]: USB card: vendor:046d, product:0867, serial num:0x05c92476, checksum:3c71084e 2018-03-29T18:55:34.684883-07:00 INFO permission_broker[1056]: AllowUsbDeviceRule: ALLOW 2018-03-29T18:55:34.684894-07:00 INFO permission_broker[1056]: AllowTtyDeviceRule: IGNORE 2018-03-29T18:55:34.726146-07:00 INFO permission_broker[1056]: DenyClaimedUsbDeviceRule: DENY 2018-03-29T18:55:34.726156-07:00 INFO permission_broker[1056]: Verdict for /dev/bus/usb/001/013: DENY 2018-03-29T18:55:34.726209-07:00 ERR permission_broker[1056]: OpenPath(...): Domain=permission_broker, Code=permission_denied, Message=Permission to open '/dev/bus/usb/001/013' denied 2018-03-29T18:55:34.726323-07:00 INFO permission_broker[1056]: ProcessPath(/dev/bus/usb/001/014) 2018-03-29T18:55:34.756004-07:00 INFO permission_broker[1056]: AllowUsbDeviceRule: ALLOW 2018-03-29T18:55:34.756014-07:00 INFO permission_broker[1056]: AllowTtyDeviceRule: IGNORE 2018-03-29T18:55:34.796284-07:00 INFO permission_broker[1056]: DenyClaimedUsbDeviceRule: DENY 2018-03-29T18:55:34.796296-07:00 INFO permission_broker[1056]: Verdict for /dev/bus/usb/001/014: DENY ============================================================== Add device in chrome hid app: 8-03-29T18:57:39.415870-07:00 INFO permission_broker[1056]: ProcessPath(/dev/hidraw2) 2018-03-29T18:57:39.470614-07:00 INFO permission_broker[1056]: AllowUsbDeviceRule: IGNORE 2018-03-29T18:57:39.470627-07:00 INFO permission_broker[1056]: AllowTtyDeviceRule: IGNORE 2018-03-29T18:57:39.470633-07:00 INFO permission_broker[1056]: DenyClaimedUsbDeviceRule: IGNORE 2018-03-29T18:57:39.470654-07:00 INFO permission_broker[1056]: DenyUninitializedDeviceRule: IGNORE 2018-03-29T18:57:39.470661-07:00 INFO permission_broker[1056]: DenyUsbDeviceClassRule: IGNORE 2018-03-29T18:57:39.470666-07:00 INFO permission_broker[1056]: DenyUsbDeviceClassRule: IGNORE 2018-03-29T18:57:39.470672-07:00 INFO permission_broker[1056]: DenyUsbVendorIdRule: IGNORE 2018-03-29T18:57:39.470678-07:00 INFO permission_broker[1056]: AllowHidrawDeviceRule: ALLOW 2018-03-29T18:57:39.470684-07:00 INFO permission_broker[1056]: AllowGroupTtyDeviceRule: IGNORE 2018-03-29T18:57:39.470690-07:00 INFO permission_broker[1056]: DenyGroupTtyDeviceRule: IGNORE 2018-03-29T18:57:39.470701-07:00 INFO permission_broker[1056]: message repeated 2 times: [ DenyGroupTtyDeviceRule: IGNORE] 2018-03-29T18:57:39.510444-07:00 INFO permission_broker[1056]: DenyClaimedHidrawDeviceRule: DENY 2018-03-29T18:57:39.510455-07:00 INFO permission_broker[1056]: Verdict for /dev/hidraw2: DENY 2018-03-29T18:57:39.510601-07:00 INFO permission_broker[1056]: ProcessPath(/dev/hidraw3) 2018-03-29T18:57:39.542825-07:00 INFO permission_broker[1056]: AllowUsbDeviceRule: IGNORE 2018-03-29T18:57:39.542834-07:00 INFO permission_broker[1056]: AllowTtyDeviceRule: IGNORE 2018-03-29T18:57:39.542838-07:00 INFO permission_broker[1056]: DenyClaimedUsbDeviceRule: IGNORE 2018-03-29T18:57:39.542853-07:00 INFO permission_broker[1056]: DenyUninitializedDeviceRule: IGNORE 2018-03-29T18:57:39.542857-07:00 INFO permission_broker[1056]: DenyUsbDeviceClassRule: IGNORE 2018-03-29T18:57:39.542860-07:00 INFO permission_broker[1056]: DenyUsbDeviceClassRule: IGNORE 2018-03-29T18:57:39.542864-07:00 INFO permission_broker[1056]: DenyUsbVendorIdRule: IGNORE 2018-03-29T18:57:39.542868-07:00 INFO permission_broker[1056]: AllowHidrawDeviceRule: ALLOW 2018-03-29T18:57:39.542871-07:00 INFO permission_broker[1056]: AllowGroupTtyDeviceRule: IGNORE 2018-03-29T18:57:39.542875-07:00 INFO permission_broker[1056]: DenyGroupTtyDeviceRule: IGNORE 2018-03-29T18:57:39.542881-07:00 INFO permission_broker[1056]: message repeated 2 times: [ DenyGroupTtyDeviceRule: IGNORE] 2018-03-29T18:57:39.586762-07:00 INFO permission_broker[1056]: DenyClaimedHidrawDeviceRule: DENY 2018-03-29T18:57:39.586771-07:00 INFO permission_broker[1056]: Verdict for /dev/hidraw3: DENY
,
Apr 2 2018
The device cannot be opened by chrome because it fails the DenyClaimedHidrawDeviceRule. This rule is implemented here: https://chromium.googlesource.com/chromiumos/platform2/+/master/permission_broker/deny_claimed_hidraw_device_rule.cc The purpose of this rule is to prevent input devices that appear to be mice or keyboards from being claimed by Chrome, while devices with only special function keys are okay. An analysis of the HID report descriptors for the Logitech device is necessary to determine precisely why this rule is triggering and whether that is intentional or a bug in the report descriptor parsing.
,
Apr 3 2018
USB2.1 Hub:
Product ID: 0x086a
Vendor ID: 0x046d (Logitech Inc.)
Version: 0.18
Speed: Up to 480 Mb/sec
Manufacturer: GenesysLogic
Location ID: 0x14110000 / 47
Current Available (mA): 500
Current Required (mA): 100
Extra Operating Current (mA): 0
Logitech MeetUp Speakerphone:
Product ID: 0x0867
Vendor ID: 0x046d (Logitech Inc.)
Version: 1.16
Serial Number: 0x05c92476
Speed: Up to 12 Mb/sec
Manufacturer: Logitech
Location ID: 0x14112000 / 49
Current Available (mA): 500
Current Required (mA): 100
Extra Operating Current (mA): 0
Logitech MeetUp:
Product ID: 0x0866
Vendor ID: 0x046d (Logitech Inc.)
Version: 0.17
Serial Number: 509C4267
Speed: Up to 480 Mb/sec
Location ID: 0x14111000 / 48
Current Available (mA): 500
Current Required (mA): 500
Extra Operating Current (mA): 0
,
Apr 3 2018
Here's a better article on how to dump the HID report descriptors for the device. The information there is just the USB device descriptor. http://www.slashdev.ca/2010/05/08/get-usb-report-descriptor-with-linux/ A comment there also links to this utility: https://github.com/DIGImend/usbhid-dump
,
Apr 3 2018
,
Apr 3 2018
$ lsusb
[...]
Bus 003 Device 012: ID 046d:0867 Logitech, Inc.
Bus 003 Device 011: ID 046d:0866 Logitech, Inc.
Bus 003 Device 010: ID 046d:086a Logitech, Inc.
[...]
$ lsusb -v -d 046d:0867
Bus 003 Device 012: ID 046d:0867 Logitech, Inc.
Couldn't open device, some information will be missing
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.00
bDeviceClass 0 (Defined at Interface level)
bDeviceSubClass 0
bDeviceProtocol 0
bMaxPacketSize0 64
idVendor 0x046d Logitech, Inc.
idProduct 0x0867
bcdDevice 1.16
iManufacturer 1
iProduct 2
iSerial 3
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 219
bNumInterfaces 4
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xc0
Self Powered
MaxPower 100mA
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 0
bInterfaceClass 1 Audio
bInterfaceSubClass 1 Control Device
bInterfaceProtocol 0
iInterface 0
AudioControl Interface Descriptor:
bLength 10
bDescriptorType 36
bDescriptorSubtype 1 (HEADER)
bcdADC 1.00
wTotalLength 72
bInCollection 2
baInterfaceNr( 0) 1
baInterfaceNr( 1) 2
AudioControl Interface Descriptor:
bLength 12
bDescriptorType 36
bDescriptorSubtype 2 (INPUT_TERMINAL)
bTerminalID 1
wTerminalType 0x0101 USB Streaming
bAssocTerminal 0
bNrChannels 2
wChannelConfig 0x0003
Left Front (L)
Right Front (R)
iChannelNames 0
iTerminal 0
AudioControl Interface Descriptor:
bLength 10
bDescriptorType 36
bDescriptorSubtype 6 (FEATURE_UNIT)
bUnitID 2
bSourceID 1
bControlSize 1
bmaControls( 0) 0x03
Mute Control
Volume Control
bmaControls( 1) 0x00
bmaControls( 2) 0x00
iFeature 0
AudioControl Interface Descriptor:
bLength 9
bDescriptorType 36
bDescriptorSubtype 3 (OUTPUT_TERMINAL)
bTerminalID 3
wTerminalType 0x0405 Echo-canceling speakerphone
bAssocTerminal 5
bSourceID 2
iTerminal 0
AudioControl Interface Descriptor:
bLength 12
bDescriptorType 36
bDescriptorSubtype 2 (INPUT_TERMINAL)
bTerminalID 5
wTerminalType 0x0405 Echo-canceling speakerphone
bAssocTerminal 3
bNrChannels 2
wChannelConfig 0x0003
Left Front (L)
Right Front (R)
iChannelNames 0
iTerminal 0
AudioControl Interface Descriptor:
bLength 10
bDescriptorType 36
bDescriptorSubtype 6 (FEATURE_UNIT)
bUnitID 6
bSourceID 5
bControlSize 1
bmaControls( 0) 0x03
Mute Control
Volume Control
bmaControls( 1) 0x00
bmaControls( 2) 0x00
iFeature 0
AudioControl Interface Descriptor:
bLength 9
bDescriptorType 36
bDescriptorSubtype 3 (OUTPUT_TERMINAL)
bTerminalID 7
wTerminalType 0x0101 USB Streaming
bAssocTerminal 0
bSourceID 6
iTerminal 0
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 0
bNumEndpoints 0
bInterfaceClass 1 Audio
bInterfaceSubClass 2 Streaming
bInterfaceProtocol 0
iInterface 0
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 1
bNumEndpoints 1
bInterfaceClass 1 Audio
bInterfaceSubClass 2 Streaming
bInterfaceProtocol 0
iInterface 0
AudioStreaming Interface Descriptor:
bLength 7
bDescriptorType 36
bDescriptorSubtype 1 (AS_GENERAL)
bTerminalLink 7
bDelay 1 frames
wFormatTag 1 PCM
AudioStreaming Interface Descriptor:
bLength 11
bDescriptorType 36
bDescriptorSubtype 2 (FORMAT_TYPE)
bFormatType 1 (FORMAT_TYPE_I)
bNrChannels 2
bSubframeSize 2
bBitResolution 16
bSamFreqType 1 Discrete
tSamFreq[ 0] 32000
Endpoint Descriptor:
bLength 9
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 37
Transfer Type Isochronous
Synch Type Asynchronous
Usage Type Implicit feedback Data
wMaxPacketSize 0x0084 1x 132 bytes
bInterval 1
bRefresh 0
bSynchAddress 0
AudioControl Endpoint Descriptor:
bLength 7
bDescriptorType 37
bDescriptorSubtype 1 (EP_GENERAL)
bmAttributes 0x00
bLockDelayUnits 0 Undefined
wLockDelay 0 Undefined
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 2
bAlternateSetting 0
bNumEndpoints 0
bInterfaceClass 1 Audio
bInterfaceSubClass 2 Streaming
bInterfaceProtocol 0
iInterface 0
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 2
bAlternateSetting 1
bNumEndpoints 1
bInterfaceClass 1 Audio
bInterfaceSubClass 2 Streaming
bInterfaceProtocol 0
iInterface 0
AudioStreaming Interface Descriptor:
bLength 7
bDescriptorType 36
bDescriptorSubtype 1 (AS_GENERAL)
bTerminalLink 1
bDelay 1 frames
wFormatTag 1 PCM
AudioStreaming Interface Descriptor:
bLength 11
bDescriptorType 36
bDescriptorSubtype 2 (FORMAT_TYPE)
bFormatType 1 (FORMAT_TYPE_I)
bNrChannels 2
bSubframeSize 2
bBitResolution 16
bSamFreqType 1 Discrete
tSamFreq[ 0] 32000
Endpoint Descriptor:
bLength 9
bDescriptorType 5
bEndpointAddress 0x01 EP 1 OUT
bmAttributes 5
Transfer Type Isochronous
Synch Type Asynchronous
Usage Type Data
wMaxPacketSize 0x0084 1x 132 bytes
bInterval 1
bRefresh 0
bSynchAddress 0
AudioControl Endpoint Descriptor:
bLength 7
bDescriptorType 37
bDescriptorSubtype 1 (EP_GENERAL)
bmAttributes 0x00
bLockDelayUnits 0 Undefined
wLockDelay 0 Undefined
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 3
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 3 Human Interface Device
bInterfaceSubClass 0 No Subclass
bInterfaceProtocol 0 None
iInterface 0
HID Device Descriptor:
bLength 9
bDescriptorType 33
bcdHID 1.11
bCountryCode 0 Not supported
bNumDescriptors 1
bDescriptorType 34 Report
wDescriptorLength 674
Report Descriptors:
** UNAVAILABLE **
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x83 EP 3 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 2
$ lsusb -v -d 046d:0866
Bus 003 Device 011: ID 046d:0866 Logitech, Inc.
Couldn't open device, some information will be missing
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.10
bDeviceClass 239 Miscellaneous Device
bDeviceSubClass 2 ?
bDeviceProtocol 1 Interface Association
bMaxPacketSize0 64
idVendor 0x046d Logitech, Inc.
idProduct 0x0866
bcdDevice 0.17
iManufacturer 0
iProduct 2
iSerial 3
bNumConfigurations 1
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 2339
bNumInterfaces 2
bConfigurationValue 1
iConfiguration 0
bmAttributes 0xc0
Self Powered
MaxPower 500mA
Interface Association:
bLength 8
bDescriptorType 11
bFirstInterface 0
bInterfaceCount 2
bFunctionClass 14 Video
bFunctionSubClass 3 Video Interface Collection
bFunctionProtocol 0
iFunction 0
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 14 Video
bInterfaceSubClass 1 Video Control
bInterfaceProtocol 0
iInterface 0
VideoControl Interface Descriptor:
bLength 13
bDescriptorType 36
bDescriptorSubtype 1 (HEADER)
bcdUVC 1.00
wTotalLength 215
dwClockFrequency 30.000000MHz
bInCollection 1
baInterfaceNr( 0) 1
VideoControl Interface Descriptor:
bLength 18
bDescriptorType 36
bDescriptorSubtype 2 (INPUT_TERMINAL)
bTerminalID 1
wTerminalType 0x0201 Camera Sensor
bAssocTerminal 0
iTerminal 0
wObjectiveFocalLengthMin 0
wObjectiveFocalLengthMax 0
wOcularFocalLength 0
bControlSize 3
bmControls 0x0000120e
Auto-Exposure Mode
Auto-Exposure Priority
Exposure Time (Absolute)
Zoom (Absolute)
PanTilt (Relative)
VideoControl Interface Descriptor:
bLength 11
bDescriptorType 36
bDescriptorSubtype 5 (PROCESSING_UNIT)
Warning: Descriptor too short
bUnitID 3
bSourceID 1
wMaxMultiplier 16384
bControlSize 2
bmControls 0x0000175b
Brightness
Contrast
Saturation
Sharpness
White Balance Temperature
Backlight Compensation
Gain
Power Line Frequency
White Balance Temperature, Auto
iProcessing 0
bmVideoStandards 0x1b
None
NTSC - 525/60
SECAM - 625/50
NTSC - 625/50
VideoControl Interface Descriptor:
bLength 27
bDescriptorType 36
bDescriptorSubtype 6 (EXTENSION_UNIT)
bUnitID 14
guidExtensionCode {6ad1492c-b832-8544-3ea8-643a152362f2}
bNumControl 6
bNrPins 1
baSourceID( 0) 3
bControlSize 2
bmControls( 0) 0x3f
bmControls( 1) 0x00
iExtension 0
VideoControl Interface Descriptor:
bLength 27
bDescriptorType 36
bDescriptorSubtype 6 (EXTENSION_UNIT)
bUnitID 6
guidExtensionCode {d09ee423-7811-314f-ae52-d2fb8a8d3b48}
bNumControl 14
bNrPins 1
baSourceID( 0) 3
bControlSize 2
bmControls( 0) 0xff
bmControls( 1) 0x6f
iExtension 0
VideoControl Interface Descriptor:
bLength 27
bDescriptorType 36
bDescriptorSubtype 6 (EXTENSION_UNIT)
bUnitID 8
guidExtensionCode {e48e6769-0f41-db40-a850-7420d7d8240e}
bNumControl 8
bNrPins 1
baSourceID( 0) 3
bControlSize 2
bmControls( 0) 0x3f
bmControls( 1) 0x03
iExtension 0
VideoControl Interface Descriptor:
bLength 28
bDescriptorType 36
bDescriptorSubtype 6 (EXTENSION_UNIT)
bUnitID 9
guidExtensionCode {a94c5d1f-11de-8744-840d-50933c8ec8d1}
bNumControl 18
bNrPins 1
baSourceID( 0) 3
bControlSize 3
bmControls( 0) 0xff
bmControls( 1) 0xff
bmControls( 2) 0x0f
iExtension 0
VideoControl Interface Descriptor:
bLength 27
bDescriptorType 36
bDescriptorSubtype 6 (EXTENSION_UNIT)
bUnitID 10
guidExtensionCode {1502e449-34f4-fe47-b158-0e885023e51b}
bNumControl 10
bNrPins 1
baSourceID( 0) 3
bControlSize 2
bmControls( 0) 0xba
bmControls( 1) 0x2f
iExtension 0
VideoControl Interface Descriptor:
bLength 28
bDescriptorType 36
bDescriptorSubtype 6 (EXTENSION_UNIT)
bUnitID 11
guidExtensionCode {212de5ff-3080-2c4e-82d9-f587d00540bd}
bNumControl 9
bNrPins 1
baSourceID( 0) 3
bControlSize 3
bmControls( 0) 0x0f
bmControls( 1) 0x47
bmControls( 2) 0x01
iExtension 0
VideoControl Interface Descriptor:
bLength 9
bDescriptorType 36
bDescriptorSubtype 3 (OUTPUT_TERMINAL)
bTerminalID 4
wTerminalType 0x0101 USB Streaming
bAssocTerminal 0
bSourceID 3
iTerminal 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x85 EP 5 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0040 1x 64 bytes
bInterval 8
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 0
bNumEndpoints 0
bInterfaceClass 14 Video
bInterfaceSubClass 2 Video Streaming
bInterfaceProtocol 0
iInterface 0
VideoStreaming Interface Descriptor:
bLength 15
bDescriptorType 36
bDescriptorSubtype 1 (INPUT_HEADER)
bNumFormats 2
wTotalLength 1901
bEndPointAddress 129
bmInfo 0
bTerminalLink 4
bStillCaptureMethod 0
bTriggerSupport 0
bTriggerUsage 0
bControlSize 1
bmaControls( 0) 27
bmaControls( 1) 27
VideoStreaming Interface Descriptor:
bLength 27
bDescriptorType 36
bDescriptorSubtype 4 (FORMAT_UNCOMPRESSED)
bFormatIndex 1
bNumFrameDescriptors 19
guidFormat {59555932-0000-1000-8000-00aa00389b71}
bBitsPerPixel 16
bDefaultFrameIndex 1
bAspectRatioX 0
bAspectRatioY 0
bmInterlaceFlags 0x00
Interlaced stream or variable: No
Fields per frame: 2 fields
Field 1 first: No
Field pattern: Field 1 only
bCopyProtect 0
VideoStreaming Interface Descriptor:
bLength 54
bDescriptorType 36
bDescriptorSubtype 5 (FRAME_UNCOMPRESSED)
bFrameIndex 1
bmCapabilities 0x00
Still image unsupported
wWidth 640
wHeight 480
dwMinBitRate 24576000
dwMaxBitRate 147456000
dwMaxVideoFrameBufferSize 614400
dwDefaultFrameInterval 333333
bFrameIntervalType 7
dwFrameInterval( 0) 333333
dwFrameInterval( 1) 416666
dwFrameInterval( 2) 500000
dwFrameInterval( 3) 666666
dwFrameInterval( 4) 1000000
dwFrameInterval( 5) 1333333
dwFrameInterval( 6) 2000000
VideoStreaming Interface Descriptor:
bLength 54
bDescriptorType 36
bDescriptorSubtype 5 (FRAME_UNCOMPRESSED)
bFrameIndex 2
bmCapabilities 0x00
Still image unsupported
wWidth 160
wHeight 120
dwMinBitRate 1536000
dwMaxBitRate 9216000
dwMaxVideoFrameBufferSize 38400
dwDefaultFrameInterval 333333
bFrameIntervalType 7
dwFrameInterval( 0) 333333
dwFrameInterval( 1) 416666
dwFrameInterval( 2) 500000
dwFrameInterval( 3) 666666
dwFrameInterval( 4) 1000000
dwFrameInterval( 5) 1333333
dwFrameInterval( 6) 2000000
VideoStreaming Interface Descriptor:
bLength 54
bDescriptorType 36
bDescriptorSubtype 5 (FRAME_UNCOMPRESSED)
bFrameIndex 3
bmCapabilities 0x00
Still image unsupported
wWidth 176
wHeight 144
dwMinBitRate 2027520
dwMaxBitRate 12165120
dwMaxVideoFrameBufferSize 50688
dwDefaultFrameInterval 333333
bFrameIntervalType 7
dwFrameInterval( 0) 333333
dwFrameInterval( 1) 416666
dwFrameInterval( 2) 500000
dwFrameInterval( 3) 666666
dwFrameInterval( 4) 1000000
dwFrameInterval( 5) 1333333
dwFrameInterval( 6) 2000000
VideoStreaming Interface Descriptor:
bLength 54
bDescriptorType 36
bDescriptorSubtype 5 (FRAME_UNCOMPRESSED)
bFrameIndex 4
bmCapabilities 0x00
Still image unsupported
wWidth 320
wHeight 180
dwMinBitRate 4608000
dwMaxBitRate 27648000
dwMaxVideoFrameBufferSize 115200
dwDefaultFrameInterval 333333
bFrameIntervalType 7
dwFrameInterval( 0) 333333
dwFrameInterval( 1) 416666
dwFrameInterval( 2) 500000
dwFrameInterval( 3) 666666
dwFrameInterval( 4) 1000000
dwFrameInterval( 5) 1333333
dwFrameInterval( 6) 2000000
VideoStreaming Interface Descriptor:
bLength 54
bDescriptorType 36
bDescriptorSubtype 5 (FRAME_UNCOMPRESSED)
bFrameIndex 5
bmCapabilities 0x00
Still image unsupported
wWidth 320
wHeight 240
dwMinBitRate 6144000
dwMaxBitRate 36864000
dwMaxVideoFrameBufferSize 153600
dwDefaultFrameInterval 333333
bFrameIntervalType 7
dwFrameInterval( 0) 333333
dwFrameInterval( 1) 416666
dwFrameInterval( 2) 500000
dwFrameInterval( 3) 666666
dwFrameInterval( 4) 1000000
dwFrameInterval( 5) 1333333
dwFrameInterval( 6) 2000000
VideoStreaming Interface Descriptor:
bLength 54
bDescriptorType 36
bDescriptorSubtype 5 (FRAME_UNCOMPRESSED)
bFrameIndex 6
bmCapabilities 0x00
Still image unsupported
wWidth 352
wHeight 288
dwMinBitRate 8110080
dwMaxBitRate 48660480
dwMaxVideoFrameBufferSize 202752
dwDefaultFrameInterval 333333
bFrameIntervalType 7
dwFrameInterval( 0) 333333
dwFrameInterval( 1) 416666
dwFrameInterval( 2) 500000
dwFrameInterval( 3) 666666
dwFrameInterval( 4) 1000000
dwFrameInterval( 5) 1333333
dwFrameInterval( 6) 2000000
VideoStreaming Interface Descriptor:
bLength 54
bDescriptorType 36
bDescriptorSubtype 5 (FRAME_UNCOMPRESSED)
bFrameIndex 7
bmCapabilities 0x00
Still image unsupported
wWidth 340
wHeight 340
dwMinBitRate 9248000
dwMaxBitRate 55488000
dwMaxVideoFrameBufferSize 231200
dwDefaultFrameInterval 333333
bFrameIntervalType 7
dwFrameInterval( 0) 333333
dwFrameInterval( 1) 416666
dwFrameInterval( 2) 500000
dwFrameInterval( 3) 666666
dwFrameInterval( 4) 1000000
dwFrameInterval( 5) 1333333
dwFrameInterval( 6) 2000000
VideoStreaming Interface Descriptor:
bLength 54
bDescriptorType 36
bDescriptorSubtype 5 (FRAME_UNCOMPRESSED)
bFrameIndex 8
bmCapabilities 0x00
Still image unsupported
wWidth 424
wHeight 240
dwMinBitRate 8140800
dwMaxBitRate 48844800
dwMaxVideoFrameBufferSize 203520
dwDefaultFrameInterval 333333
bFrameIntervalType 7
dwFrameInterval( 0) 333333
dwFrameInterval( 1) 416666
dwFrameInterval( 2) 500000
dwFrameInterval( 3) 666666
dwFrameInterval( 4) 1000000
dwFrameInterval( 5) 1333333
dwFrameInterval( 6) 2000000
VideoStreaming Interface Descriptor:
bLength 30
bDescriptorType 36
bDescriptorSubtype 5 (FRAME_UNCOMPRESSED)
bFrameIndex 9
bmCapabilities 0x00
Still image unsupported
wWidth 440
wHeight 440
dwMinBitRate 15488000
dwMaxBitRate 15488000
dwMaxVideoFrameBufferSize 387200
dwDefaultFrameInterval 333333
bFrameIntervalType 1
dwFrameInterval( 0) 333333
VideoStreaming Interface Descriptor:
bLength 54
bDescriptorType 36
bDescriptorSubtype 5 (FRAME_UNCOMPRESSED)
bFrameIndex 10
bmCapabilities 0x00
Still image unsupported
wWidth 480
wHeight 270
dwMinBitRate 10368000
dwMaxBitRate 62208000
dwMaxVideoFrameBufferSize 259200
dwDefaultFrameInterval 333333
bFrameIntervalType 7
dwFrameInterval( 0) 333333
dwFrameInterval( 1) 416666
dwFrameInterval( 2) 500000
dwFrameInterval( 3) 666666
dwFrameInterval( 4) 1000000
dwFrameInterval( 5) 1333333
dwFrameInterval( 6) 2000000
VideoStreaming Interface Descriptor:
bLength 54
bDescriptorType 36
bDescriptorSubtype 5 (FRAME_UNCOMPRESSED)
bFrameIndex 11
bmCapabilities 0x00
Still image unsupported
wWidth 640
wHeight 360
dwMinBitRate 18432000
dwMaxBitRate 110592000
dwMaxVideoFrameBufferSize 460800
dwDefaultFrameInterval 333333
bFrameIntervalType 7
dwFrameInterval( 0) 333333
dwFrameInterval( 1) 416666
dwFrameInterval( 2) 500000
dwFrameInterval( 3) 666666
dwFrameInterval( 4) 1000000
dwFrameInterval( 5) 1333333
dwFrameInterval( 6) 2000000
VideoStreaming Interface Descriptor:
bLength 54
bDescriptorType 36
bDescriptorSubtype 5 (FRAME_UNCOMPRESSED)
bFrameIndex 12
bmCapabilities 0x00
Still image unsupported
wWidth 800
wHeight 448
dwMinBitRate 28672000
dwMaxBitRate 172032000
dwMaxVideoFrameBufferSize 716800
dwDefaultFrameInterval 333333
bFrameIntervalType 7
dwFrameInterval( 0) 333333
dwFrameInterval( 1) 416666
dwFrameInterval( 2) 500000
dwFrameInterval( 3) 666666
dwFrameInterval( 4) 1000000
dwFrameInterval( 5) 1333333
dwFrameInterval( 6) 2000000
VideoStreaming Interface Descriptor:
bLength 50
bDescriptorType 36
bDescriptorSubtype 5 (FRAME_UNCOMPRESSED)
bFrameIndex 13
bmCapabilities 0x00
Still image unsupported
wWidth 800
wHeight 600
dwMinBitRate 38400000
dwMaxBitRate 184320000
dwMaxVideoFrameBufferSize 960000
dwDefaultFrameInterval 416666
bFrameIntervalType 6
dwFrameInterval( 0) 416666
dwFrameInterval( 1) 500000
dwFrameInterval( 2) 666666
dwFrameInterval( 3) 1000000
dwFrameInterval( 4) 1333333
dwFrameInterval( 5) 2000000
VideoStreaming Interface Descriptor:
bLength 54
bDescriptorType 36
bDescriptorSubtype 5 (FRAME_UNCOMPRESSED)
bFrameIndex 14
bmCapabilities 0x00
Still image unsupported
wWidth 848
wHeight 480
dwMinBitRate 32563200
dwMaxBitRate 195379200
dwMaxVideoFrameBufferSize 814080
dwDefaultFrameInterval 333333
bFrameIntervalType 7
dwFrameInterval( 0) 333333
dwFrameInterval( 1) 416666
dwFrameInterval( 2) 500000
dwFrameInterval( 3) 666666
dwFrameInterval( 4) 1000000
dwFrameInterval( 5) 1333333
dwFrameInterval( 6) 2000000
VideoStreaming Interface Descriptor:
bLength 42
bDescriptorType 36
bDescriptorSubtype 5 (FRAME_UNCOMPRESSED)
bFrameIndex 15
bmCapabilities 0x00
Still image unsupported
wWidth 960
wHeight 540
dwMinBitRate 41472000
dwMaxBitRate 124416000
dwMaxVideoFrameBufferSize 1036800
dwDefaultFrameInterval 666666
bFrameIntervalType 4
dwFrameInterval( 0) 666666
dwFrameInterval( 1) 1000000
dwFrameInterval( 2) 1333333
dwFrameInterval( 3) 2000000
VideoStreaming Interface Descriptor:
bLength 42
bDescriptorType 36
bDescriptorSubtype 5 (FRAME_UNCOMPRESSED)
bFrameIndex 16
bmCapabilities 0x00
Still image unsupported
wWidth 1024
wHeight 576
dwMinBitRate 47185920
dwMaxBitRate 141557760
dwMaxVideoFrameBufferSize 1179648
dwDefaultFrameInterval 666666
bFrameIntervalType 4
dwFrameInterval( 0) 666666
dwFrameInterval( 1) 1000000
dwFrameInterval( 2) 1333333
dwFrameInterval( 3) 2000000
VideoStreaming Interface Descriptor:
bLength 38
bDescriptorType 36
bDescriptorSubtype 5 (FRAME_UNCOMPRESSED)
bFrameIndex 17
bmCapabilities 0x00
Still image unsupported
wWidth 1280
wHeight 720
dwMinBitRate 73728000
dwMaxBitRate 147456000
dwMaxVideoFrameBufferSize 1843200
dwDefaultFrameInterval 1000000
bFrameIntervalType 3
dwFrameInterval( 0) 1000000
<f
...
[Message clipped] View entire message
,
Apr 3 2018
It looks like this message was clipped so I'm not sure if they're included later on but the HID report descriptors are marked as "** UNAVAILABLE **" in what I see here so far. The article I linked provides a solution to this problem.
,
Apr 3 2018
Can you add me (llu7@logitech.com) to the cc list of this bug report. I've filed without really paying attention on what account i was on. Thanks
,
Apr 3 2018
,
Apr 4 2018
,
Apr 9 2018
I dumped the HID report descriptor here for now (internal access only) http://gpaste/5625364344733696 Another way to get to the HID report descriptor is to do: cd /sys/kernel/debug/hid/<SOME_DEVICE> for i in $(head -n 1 rdesc); do echo -n "0x$i, "; done; echo Paste that output into http://eleccelerator.com/usbdescreqparser/
,
Apr 12 2018
On an email thread we found out that the kernel appears to be parsing the HID report descriptor in a way that is making it think that the device is an absolute pointing device: # cat /sys/class/input/input11/capabilities/abs ffffff0000000000 # cat /sys/class/input/input11/capabilities/rel 0 # cat /sys/class/input/input11/capabilities/key 1 1000000000000000 0 c000000000000000 0 This is why the permission_broker is rejecting the open request.
,
Apr 16 2018
I think this happens because the device does not export usages hid-input understands well, and so it maps them onto ABS_MISC + n, which eventually bleeds into multi-touch range. We might need this: https://patchwork.kernel.org/patch/9795625/ I'll ping upstream on the status of it.
,
Apr 16 2018
,
Apr 18 2018
The HID maintainer has accepted the patch in question and queued it for inclusion in 4.18 kernel. I made a CL for guado here: https://crrev.com/c/1017864 Please give it a try and if that fixes your issue we can get it into the rest of chromeos kernels.
,
Apr 26 2018
Initial tests show that the same issue is occuring The sample app does not detect the MeetUp, volume sync is not maintained. We see: # cat /sys/class/input/input11/capabilities/abs ffffff0000000000 # cat /sys/class/input/input11/capabilities/rel 0 # cat /sys/class/input/input11/capabilities/key 1 1000000000000000 0 c000000000000000 0
,
Apr 27 2018
Re: #18 I do not think that you used patched kernel as here is what I see with the device:
Input device ID: bus 0x3 vendor 0x46d product 0x867 version 0x111
Input device name: "Logitech Logitech MeetUp Speakerphone"
Supported events:
Event type 0 (EV_SYN)
Event type 1 (EV_KEY)
Event code 114 (KEY_VOLUMEDOWN)
Event code 115 (KEY_VOLUMEUP)
Event code 248 (?)
Event code 256 (BTN_0)
Event type 3 (EV_ABS)
Event code 40 (ABS_MISC)
Value 0
Min 0
Max 255
Event type 4 (EV_MSC)
Event code 4 (MSC_SCAN)
Event type 17 (EV_LED)
Event code 7 (LED_MUTE)
localhost ~ # cat /sys/class/input/input9/capabilities/abs
10000000000
Still, this ABS_MISC mapping will cause permission broker to disallow access to the device. Reilly, do you think we could ignore ABS_MISC if there are no other axes present in an input device?
Another option is for Logitech to write a proper hid sub-driver that maps the reports properly. As it is the device's behavior is not optimal: it sends KeyUp events, but not KeyDown; 1, 2 or zoom keys do not seem to produce events, etc.
,
Apr 27 2018
Do we know anything about what kinds of events are being reported under this event type? For devices that generate ABS_MISC events is that something that usually corresponds to a kind of input we would be concerned about apps getting access to? Remember, the goal of this filtering is to prevent apps from logging keyboard and mouse (or touch) input.
,
Apr 30 2018
ABS_MISC is for events that we can't easily classify or is used by mistake: - Wacom driver is using ABS_MISC to report tool ID (to help distinguishing cases where you may have several pens that you use with a tablet) - Aiptek tablet driver (incorrectly) is using ABS_MISC to report tool type (stylus/mouse/unknown) - Hanwang appears to be doping the same - GTCO - Transducer? - I do not think there are devices left in the wild anyway - cma3000 - accelerometer - used to indicate free fall condition - Walkera and PXRC - remote controllers for helicopters/planes - additional axis I think we should be OK allowing accessing devices with ABS_MISC if there are no other absolute axis.
,
May 5 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/third_party/kernel/+/54ef25029f84806e870410b29f88d7ce696653b1 commit 54ef25029f84806e870410b29f88d7ce696653b1 Author: Benjamin Tissoires <benjamin.tissoires@redhat.com> Date: Sat May 05 18:06:59 2018 BACKPORT: FROMLIST: HID: input: do not increment usages when a duplicate is found This is something that bothered us from a long time. When hid-input doesn't know how to map a usage, it uses *_MISC. But there is something else which increments the usage if the evdev code is already used. This leads to few issues: - some devices may have their ABS_X mapped to ABS_Y if they export a bad set of usages (see the DragonRise joysticks IIRC -> fixed in a specific HID driver) - *_MISC + N might (will) conflict with other defined axes (my Logitech H800 exports some multitouch axes because of that) - this prevents to freely add some new evdev usages, because "hey, my headset will now report ABS_COFFEE, and it's not coffee capable". So let's try to kill this nonsense, and hope we won't break too many devices. I my headset case, the ABS_MISC axes are created because of some proprietary usages, so we might not break that many devices. For backward compatibility, a quirk HID_QUIRK_INCREMENT_USAGE_ON_DUPLICATE is created and can be applied to any device that needs this behavior. Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com> Acked-by: Peter Hutterer <peter.hutterer@who-t.net> Acked-by: Dmitry Torokhov <dmitry.torokhov@gmail.com> BUG=chromium:825288 TEST=Build on guado, try connecting MeetUp device and verify it does not list any extra absolute axes. (am from https://patchwork.kernel.org/patch/10102635/ and adjust hid.h to not use BIT() macros but plain constants) Signed-off-by: Dmitry Torokhov <dtor@chromium.org> Change-Id: Id86933886d98ea4f5d7bb27784876bc7e56501c2 Reviewed-on: https://chromium-review.googlesource.com/1017864 Reviewed-by: Benson Leung <bleung@chromium.org> [modify] https://crrev.com/54ef25029f84806e870410b29f88d7ce696653b1/drivers/hid/hid-input.c [modify] https://crrev.com/54ef25029f84806e870410b29f88d7ce696653b1/include/linux/hid.h
,
May 8 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/third_party/kernel/+/ccc4d1d53e0a6c80add52cec87f0f097d1e5b715 commit ccc4d1d53e0a6c80add52cec87f0f097d1e5b715 Author: Benjamin Tissoires <benjamin.tissoires@redhat.com> Date: Tue May 08 03:45:45 2018 BACKPORT: FROMLIST: HID: input: do not increment usages when a duplicate is found This is something that bothered us from a long time. When hid-input doesn't know how to map a usage, it uses *_MISC. But there is something else which increments the usage if the evdev code is already used. This leads to few issues: - some devices may have their ABS_X mapped to ABS_Y if they export a bad set of usages (see the DragonRise joysticks IIRC -> fixed in a specific HID driver) - *_MISC + N might (will) conflict with other defined axes (my Logitech H800 exports some multitouch axes because of that) - this prevents to freely add some new evdev usages, because "hey, my headset will now report ABS_COFFEE, and it's not coffee capable". So let's try to kill this nonsense, and hope we won't break too many devices. I my headset case, the ABS_MISC axes are created because of some proprietary usages, so we might not break that many devices. For backward compatibility, a quirk HID_QUIRK_INCREMENT_USAGE_ON_DUPLICATE is created and can be applied to any device that needs this behavior. Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com> Acked-by: Peter Hutterer <peter.hutterer@who-t.net> Acked-by: Dmitry Torokhov <dmitry.torokhov@gmail.com> BUG=chromium:825288 TEST=Build on guado, try connecting MeetUp device and verify it does not list any extra absolute axes. (am from https://patchwork.kernel.org/patch/10102635/ and adjust hid.h to not use BIT() macros but plain constants) Signed-off-by: Dmitry Torokhov <dtor@chromium.org> Change-Id: Id86933886d98ea4f5d7bb27784876bc7e56501c2 Reviewed-on: https://chromium-review.googlesource.com/1017864 Reviewed-by: Benson Leung <bleung@chromium.org> (cherry picked from commit 54ef25029f84806e870410b29f88d7ce696653b1) Reviewed-on: https://chromium-review.googlesource.com/1048005 Reviewed-by: Guenter Roeck <groeck@chromium.org> [modify] https://crrev.com/ccc4d1d53e0a6c80add52cec87f0f097d1e5b715/drivers/hid/hid-input.c [modify] https://crrev.com/ccc4d1d53e0a6c80add52cec87f0f097d1e5b715/include/linux/hid.h
,
May 8 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/third_party/kernel/+/f633324aeb8d109ec5dd498e3a8d94e0bf0fd826 commit f633324aeb8d109ec5dd498e3a8d94e0bf0fd826 Author: Benjamin Tissoires <benjamin.tissoires@redhat.com> Date: Tue May 08 03:45:34 2018 BACKPORT: FROMLIST: HID: input: do not increment usages when a duplicate is found This is something that bothered us from a long time. When hid-input doesn't know how to map a usage, it uses *_MISC. But there is something else which increments the usage if the evdev code is already used. This leads to few issues: - some devices may have their ABS_X mapped to ABS_Y if they export a bad set of usages (see the DragonRise joysticks IIRC -> fixed in a specific HID driver) - *_MISC + N might (will) conflict with other defined axes (my Logitech H800 exports some multitouch axes because of that) - this prevents to freely add some new evdev usages, because "hey, my headset will now report ABS_COFFEE, and it's not coffee capable". So let's try to kill this nonsense, and hope we won't break too many devices. I my headset case, the ABS_MISC axes are created because of some proprietary usages, so we might not break that many devices. For backward compatibility, a quirk HID_QUIRK_INCREMENT_USAGE_ON_DUPLICATE is created and can be applied to any device that needs this behavior. Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com> Acked-by: Peter Hutterer <peter.hutterer@who-t.net> Acked-by: Dmitry Torokhov <dmitry.torokhov@gmail.com> BUG=chromium:825288 TEST=Build on guado, try connecting MeetUp device and verify it does not list any extra absolute axes. (am from https://patchwork.kernel.org/patch/10102635/ and adjust hid.h to not use BIT() macros but plain constants) Signed-off-by: Dmitry Torokhov <dtor@chromium.org> Change-Id: Id86933886d98ea4f5d7bb27784876bc7e56501c2 Reviewed-on: https://chromium-review.googlesource.com/1017864 Reviewed-by: Benson Leung <bleung@chromium.org> (cherry picked from commit 54ef25029f84806e870410b29f88d7ce696653b1) Reviewed-on: https://chromium-review.googlesource.com/1048006 Reviewed-by: Guenter Roeck <groeck@chromium.org> [modify] https://crrev.com/f633324aeb8d109ec5dd498e3a8d94e0bf0fd826/drivers/hid/hid-input.c [modify] https://crrev.com/f633324aeb8d109ec5dd498e3a8d94e0bf0fd826/include/linux/hid.h
,
May 8 2018
,
May 8 2018
This bug requires manual review: M67 has already been promoted to the beta branch, so this requires manual review Please contact the milestone owner if you have questions. Owners: cmasso@(Android), cmasso@(iOS), kbleicher@(ChromeOS), govind@(Desktop) For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
,
May 8 2018
Hi, this isn't a M67 regression. In fact it's fairly old (M64). M67 is already in beta. Is there a compelling reason for M67?
,
May 8 2018
My change to permission_broker had not landed yet so this is not ready to merge.
,
May 8 2018
There is a compelling business reason here given the major infocomm plans we have. It would be cleanest for users to simultaneously announce and have full functionality. If merged only to 68 it would be over a month from announcement to the time that these fixes go stable on CFM.
,
May 9 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/third_party/kernel/+/742412e7f39aeb8895746657dca8ca25996e6750 commit 742412e7f39aeb8895746657dca8ca25996e6750 Author: Benjamin Tissoires <benjamin.tissoires@redhat.com> Date: Wed May 09 00:44:32 2018 BACKPORT: FROMLIST: HID: input: do not increment usages when a duplicate is found This is something that bothered us from a long time. When hid-input doesn't know how to map a usage, it uses *_MISC. But there is something else which increments the usage if the evdev code is already used. This leads to few issues: - some devices may have their ABS_X mapped to ABS_Y if they export a bad set of usages (see the DragonRise joysticks IIRC -> fixed in a specific HID driver) - *_MISC + N might (will) conflict with other defined axes (my Logitech H800 exports some multitouch axes because of that) - this prevents to freely add some new evdev usages, because "hey, my headset will now report ABS_COFFEE, and it's not coffee capable". So let's try to kill this nonsense, and hope we won't break too many devices. I my headset case, the ABS_MISC axes are created because of some proprietary usages, so we might not break that many devices. For backward compatibility, a quirk HID_QUIRK_INCREMENT_USAGE_ON_DUPLICATE is created and can be applied to any device that needs this behavior. Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com> Acked-by: Peter Hutterer <peter.hutterer@who-t.net> Acked-by: Dmitry Torokhov <dmitry.torokhov@gmail.com> BUG=chromium:825288 TEST=Build on guado, try connecting MeetUp device and verify it does not list any extra absolute axes. (am from https://patchwork.kernel.org/patch/10102635/ and adjust hid.h to not use BIT() macros but plain constants) Signed-off-by: Dmitry Torokhov <dtor@chromium.org> Change-Id: Id86933886d98ea4f5d7bb27784876bc7e56501c2 Reviewed-on: https://chromium-review.googlesource.com/1017864 Reviewed-by: Benson Leung <bleung@chromium.org> (cherry picked from commit 54ef25029f84806e870410b29f88d7ce696653b1) Reviewed-on: https://chromium-review.googlesource.com/1048949 Reviewed-by: Guenter Roeck <groeck@chromium.org> [modify] https://crrev.com/742412e7f39aeb8895746657dca8ca25996e6750/drivers/hid/hid-input.c [modify] https://crrev.com/742412e7f39aeb8895746657dca8ca25996e6750/include/linux/hid.h
,
May 9 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/third_party/kernel/+/987c6ba0a02e8a08332fbc2bb82cc8bb96cad278 commit 987c6ba0a02e8a08332fbc2bb82cc8bb96cad278 Author: Benjamin Tissoires <benjamin.tissoires@redhat.com> Date: Wed May 09 21:40:33 2018 BACKPORT: FROMLIST: HID: input: do not increment usages when a duplicate is found This is something that bothered us from a long time. When hid-input doesn't know how to map a usage, it uses *_MISC. But there is something else which increments the usage if the evdev code is already used. This leads to few issues: - some devices may have their ABS_X mapped to ABS_Y if they export a bad set of usages (see the DragonRise joysticks IIRC -> fixed in a specific HID driver) - *_MISC + N might (will) conflict with other defined axes (my Logitech H800 exports some multitouch axes because of that) - this prevents to freely add some new evdev usages, because "hey, my headset will now report ABS_COFFEE, and it's not coffee capable". So let's try to kill this nonsense, and hope we won't break too many devices. I my headset case, the ABS_MISC axes are created because of some proprietary usages, so we might not break that many devices. For backward compatibility, a quirk HID_QUIRK_INCREMENT_USAGE_ON_DUPLICATE is created and can be applied to any device that needs this behavior. Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com> Acked-by: Peter Hutterer <peter.hutterer@who-t.net> Acked-by: Dmitry Torokhov <dmitry.torokhov@gmail.com> BUG=chromium:825288 TEST=Build on guado, try connecting MeetUp device and verify it does not list any extra absolute axes. (am from https://patchwork.kernel.org/patch/10102635/ and adjust hid.h to not use BIT() macros but plain constants) Signed-off-by: Dmitry Torokhov <dtor@chromium.org> Change-Id: Id86933886d98ea4f5d7bb27784876bc7e56501c2 Reviewed-on: https://chromium-review.googlesource.com/1017864 Reviewed-by: Benson Leung <bleung@chromium.org> (cherry picked from commit 54ef25029f84806e870410b29f88d7ce696653b1) Reviewed-on: https://chromium-review.googlesource.com/1049045 Reviewed-by: Guenter Roeck <groeck@chromium.org> [modify] https://crrev.com/987c6ba0a02e8a08332fbc2bb82cc8bb96cad278/drivers/hid/hid-input.c [modify] https://crrev.com/987c6ba0a02e8a08332fbc2bb82cc8bb96cad278/include/linux/hid.h
,
May 9 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/third_party/kernel/+/7b62350248ff9ea7e1a6c4572116cb69b89c71d8 commit 7b62350248ff9ea7e1a6c4572116cb69b89c71d8 Author: Benjamin Tissoires <benjamin.tissoires@redhat.com> Date: Wed May 09 21:40:24 2018 BACKPORT: FROMLIST: HID: input: do not increment usages when a duplicate is found This is something that bothered us from a long time. When hid-input doesn't know how to map a usage, it uses *_MISC. But there is something else which increments the usage if the evdev code is already used. This leads to few issues: - some devices may have their ABS_X mapped to ABS_Y if they export a bad set of usages (see the DragonRise joysticks IIRC -> fixed in a specific HID driver) - *_MISC + N might (will) conflict with other defined axes (my Logitech H800 exports some multitouch axes because of that) - this prevents to freely add some new evdev usages, because "hey, my headset will now report ABS_COFFEE, and it's not coffee capable". So let's try to kill this nonsense, and hope we won't break too many devices. I my headset case, the ABS_MISC axes are created because of some proprietary usages, so we might not break that many devices. For backward compatibility, a quirk HID_QUIRK_INCREMENT_USAGE_ON_DUPLICATE is created and can be applied to any device that needs this behavior. Signed-off-by: Benjamin Tissoires <benjamin.tissoires@redhat.com> Acked-by: Peter Hutterer <peter.hutterer@who-t.net> Acked-by: Dmitry Torokhov <dmitry.torokhov@gmail.com> BUG=chromium:825288 TEST=Build on guado, try connecting MeetUp device and verify it does not list any extra absolute axes. (am from https://patchwork.kernel.org/patch/10102635/ and adjust hid.h to not use BIT() macros but plain constants) Signed-off-by: Dmitry Torokhov <dtor@chromium.org> Change-Id: Id86933886d98ea4f5d7bb27784876bc7e56501c2 Reviewed-on: https://chromium-review.googlesource.com/1049121 Reviewed-by: Guenter Roeck <groeck@chromium.org> [modify] https://crrev.com/7b62350248ff9ea7e1a6c4572116cb69b89c71d8/drivers/hid/hid-input.c [modify] https://crrev.com/7b62350248ff9ea7e1a6c4572116cb69b89c71d8/include/linux/hid.h
,
May 10 2018
Per #29 M67 is locked down for new features. That was communicated for M67 specifically and per our regular release process. Once we're in beta we're only approving bug fixes.
,
May 17 2018
,
May 17 2018
Thanks - We've added M-68 merge request labels. Would be great to get these patches landed there!
,
May 17 2018
This bug requires manual review: We don't branch M68 until 2018-05-24. Please contact the milestone owner if you have questions. Owners: cmasso@(Android), kariahda@(iOS), bhthompson@(ChromeOS), abdulsyed@(Desktop) For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
,
May 19 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromiumos/platform2/+/e560639e3e1a9b37598a1fb14b68afe1c85bfdac commit e560639e3e1a9b37598a1fb14b68afe1c85bfdac Author: Reilly Grant <reillyg@chromium.org> Date: Sat May 19 03:08:29 2018 permission_broker: Allow connections to input devices with ABS_MISC This patch modifies the permission_broker so that Chrome is allowed to open a connection to the hidraw node of an input device that provides ABS_MISC events. These events are not considered to be at risk for keylogging. BUG=chromium:825288 TEST=Ran unit tests Change-Id: I16971303c07b2ad6b3756b39ab923bf1ce49a23d Reviewed-on: https://chromium-review.googlesource.com/1040826 Commit-Ready: Reilly Grant <reillyg@chromium.org> Tested-by: Reilly Grant <reillyg@chromium.org> Reviewed-by: Jorge Lucangeli Obes <jorgelo@chromium.org> [modify] https://crrev.com/e560639e3e1a9b37598a1fb14b68afe1c85bfdac/permission_broker/deny_claimed_hidraw_device_rule_unittest.cc [modify] https://crrev.com/e560639e3e1a9b37598a1fb14b68afe1c85bfdac/permission_broker/deny_claimed_hidraw_device_rule.cc
,
Jun 4 2018
These should already be in 68 as they landed before the branch, no need to merge. |
||||||||||||||||||
►
Sign in to add a comment |
||||||||||||||||||
Comment 1 by reillyg@chromium.org
, Mar 29 2018Labels: Needs-Feedback