3

I have have successfully installed the necessary drivers as outlined: https://github.com/AdnanHodzic/displaylink-debian/blob/master/post-install-guide.md

I do have UEFI installed on Intel NUC (NUC6CAYH) but Secure Mode is disabled

# mokutil --sb-state
SecureBoot disabled

The log files from DisplayLink to troubleshoot errors can be found here: http://md5.mshaffer.com/ats_2018-02-28T06:33:46.461726.zip

The service starts, but the device is not registered. I have dug into the udevadm monitor and dmesg.

It appears there is a conflict with the usbfs system.

[   12.999636] usb 1-1.2: usbfs: interface 0 claimed by usb-storage while 'DeviceManager_0' sets config #1
[   14.003884] usb 1-1.2: usbfs: interface 0 claimed by usb-storage while 'DeviceManager_0' sets config #1
[   15.008097] usb 1-1.2: usbfs: interface 0 claimed by usb-storage while 'DeviceManager_0' sets config #1
[   16.011949] usb 1-1.2: usbfs: interface 0 claimed by usb-storage while 'DeviceManager_0' sets config #1

I unplugged and plugged-in again the monitor (Xenarc with 708TSU, https://www.xenarcdirect.com/708TSU.html with installed eGalax touch drivers)

[  240.897792] usb 1-1.2: new high-speed USB device number 13 using xhci_hcd
[  241.005037] usb 1-1.2: New USB device found, idVendor=17e9, idProduct=0199
[  241.005044] usb 1-1.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[  241.005048] usb 1-1.2: Product: Mini USB Monitor
[  241.005052] usb 1-1.2: Manufacturer: DisplayLink
[  241.005055] usb 1-1.2: SerialNumber: 100179
[  241.013017] usb-storage 1-1.2:2.0: USB Mass Storage device detected
[  241.014100] scsi host2: usb-storage 1-1.2:2.0
[  241.098143] usb 1-1.4: new full-speed USB device number 14 using xhci_hcd
[  241.220893] usb 1-1.4: New USB device found, idVendor=0eef, idProduct=0001
[  241.220901] usb 1-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[  241.220905] usb 1-1.4: Product: USB TouchController
[  241.220909] usb 1-1.4: Manufacturer: eGalax Inc.
[  241.224900] input: eGalax Inc. USB TouchController as /devices/pci0000:00/0000:00:15.0/usb1/1-1/1-1.4/1-1.4:1.0/0003:0EEF:0001.0008/input/input24
[  241.225832] input: eGalax Inc. USB TouchController as /devices/pci0000:00/0000:00:15.0/usb1/1-1/1-1.4/1-1.4:1.0/0003:0EEF:0001.0008/input/input25
[  241.226457] hid-generic 0003:0EEF:0001.0008: input,hidraw0: USB HID v2.10 Pointer [eGalax Inc. USB TouchController] on usb-0000:00:15.0-1.4/input0
[  242.027122] scsi host2: scsi scan: INQUIRY result too short (5), using 36
[  242.027135] scsi 2:0:0:0: CD-ROM                                           PQ: 0 ANSI: 0
[  242.028527] sr 2:0:0:0: [sr0] scsi3-mmc drive: 8x/40x writer xa/form2 cdda tray
[  242.028911] sr 2:0:0:0: Attached scsi CD-ROM sr0
[  242.029191] sr 2:0:0:0: Attached scsi generic sg1 type 5
[  305.820086] usb 1-1.2: usbfs: interface 0 claimed by usb-storage while 'DeviceManager_0' sets config #1
[  306.814074] usb 1-1.2: usbfs: interface 0 claimed by usb-storage while 'DeviceManager_0' sets config #1  ... flooding continues every 1 second]

For some reason, DisplayLink registeres as "usb-storage" based on its class reference, which also has some unregistered data info ( lsusb -v -d 17e9_0199 )

Bus 001 Device 010: ID 17e9:0199 DisplayLink 
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0        64
  idVendor           0x17e9 DisplayLink
  idProduct          0x0199 
  bcdDevice            1.36
  iManufacturer           1 DisplayLink
  iProduct                2 Mini USB Monitor
  iSerial                 3 100179
  bNumConfigurations      2
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           32
    bNumInterfaces          1
    bConfigurationValue     2
    iConfiguration          1 DisplayLink
    bmAttributes         0xc0
      Self Powered
    MaxPower              500mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass         8 Mass Storage
      bInterfaceSubClass      6 SCSI
      bInterfaceProtocol     80 Bulk-Only
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x03  EP 3 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x84  EP 4 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           66
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0x80
      (Bus Powered)
    MaxPower              500mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           3
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass      0 
      bInterfaceProtocol      0 
      iInterface              0 
      ** UNRECOGNIZED:  1b 5f 01 00 19 05 00 01 03 00 04 04 01 00 03 d0 00 02 04 00 bd 1f 00 01 04 01 02
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x01  EP 1 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0008  1x 8 bytes
        bInterval               4
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x0a  EP 10 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
Device Qualifier (for other device speed):
  bLength                10
  bDescriptorType         6
  bcdUSB               2.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0        64
  bNumConfigurations      2
Device Status:     0x0000
  (Bus Powered)

Bus 001 Device 013: ID 17e9:0199 DisplayLink 
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0        64
  idVendor           0x17e9 DisplayLink
  idProduct          0x0199 
  bcdDevice            1.36
  iManufacturer           1 DisplayLink
  iProduct                2 Mini USB Monitor
  iSerial                 3 100144
  bNumConfigurations      2
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           32
    bNumInterfaces          1
    bConfigurationValue     2
    iConfiguration          1 DisplayLink
    bmAttributes         0xc0
      Self Powered
    MaxPower              500mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass         8 Mass Storage
      bInterfaceSubClass      6 SCSI
      bInterfaceProtocol     80 Bulk-Only
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x03  EP 3 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x84  EP 4 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           66
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0x80
      (Bus Powered)
    MaxPower              500mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           3
      bInterfaceClass       255 Vendor Specific Class
      bInterfaceSubClass      0 
      bInterfaceProtocol      0 
      iInterface              0 
      ** UNRECOGNIZED:  1b 5f 01 00 19 05 00 01 03 00 04 04 01 00 03 d0 00 02 04 00 bd 1f 00 01 04 01 02
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x01  EP 1 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0008  1x 8 bytes
        bInterval               4
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x0a  EP 10 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0200  1x 512 bytes
        bInterval               0
Device Qualifier (for other device speed):
  bLength                10
  bDescriptorType         6
  bcdUSB               2.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0 
  bDeviceProtocol         0 
  bMaxPacketSize0        64
  bNumConfigurations      2
Device Status:     0x0000
  (Bus Powered)

If I can get past this usbfs error, I believe I will be able to get xrandr to manage the device.

Do I have to reinstally the Intel NUC in "BIOS mode"? Since I have SecureBoot disabled, I do not believe so.

How can I prevent this "irq-like conflict" for USB?

mshaffer
  • 131
  • 1
  • 3
  • Does it help if you unbind the device from `usb-storage`? `echo 1-1.2 > /sys/bus/usb/drivers/usb-storage/unbind` as root... – Stephen Kitt Feb 28 '18 at 14:58
  • ls -al on /sys/bus/usb/drivers/usb-storage/ – mshaffer Mar 01 '18 at 12:45
  • lrwxrwxrwx 1 root root 0 Mar 1 07:45 1-4.7.2.2:2.0 -> ../../../../devices/pci0000:00/0000:00:15.0/usb1/1-4/1-4.7/1-4.7.2/1-4.7.2.2/1-4.7.2.2:2.0 – mshaffer Mar 01 '18 at 12:46
  • lrwxrwxrwx 1 root root 0 Mar 1 07:45 module -> ../../../../module/usb_storage – mshaffer Mar 01 '18 at 12:46
  • @ stephen-kitt 1-1.2 on reboot is now 1-4.7.2:2.0 and I guess it worked, but unbinding the driver isn't going to help get the monitor to come online??? – mshaffer Mar 01 '18 at 12:50
  • Unbinding the driver will avoid the conflict between `usb-storage` and `DeviceManager_0`. – Stephen Kitt Mar 01 '18 at 14:30
  • @StephenKitt I think the udev rules have to be changed to eliminate the conflict so the device is still recognized. The # 1-4.7.2:2.0 is the DeviceManager_0 element so if I disable it, it won't work. – mshaffer Mar 01 '18 at 17:30
  • Unbinding the device from `usb-storage` shouldn’t disable the device; the intent is to free the device so that it can be driven by the correct driver. – Stephen Kitt Mar 01 '18 at 18:39
  • @StephenKitt I am not following your logic. It registers the DisplayLink as the usb-storage, and you want to disable it? The boot dmesg is here: https://github.com/AdnanHodzic/displaylink-debian/issues/116#issuecomment-370891349 – mshaffer Mar 06 '18 at 19:07
  • I *don’t* want to disable the device. You asked about resolving the conflict; I’m not sure why `usb-storage` would be involved in controlling a monitor, so I wondered if unbinding the `usb-storage` driver would help. If it doesn’t, so be it, it was just speculation. USB devices aren’t set up by the firmware, they’re set up by device drivers, so that’s usually where tweaks are needed when things go wrong; UEFI or Secure Boot etc. shouldn’t have much bearing on the issue. – Stephen Kitt Mar 06 '18 at 19:49
  • @StephenKitt Thanks for following me through this logic. I agree about UEFI being a false flag. Since DisplayLink is a partial black box (binary), we can only get so far troubleshooting the issue. But, from what I am reading with lsusb and the log files, when the device is plugged in, the software is communicating with usbcore or usbfs and saying "I am usb-storage". Is that how you interpret what is going on. – mshaffer Mar 07 '18 at 22:08
  • @StephenKitt So I did a fresh install, legacy BIOS, Linux Mint... Before installing any drivers, I got the device to register as expected "hcd" then within that chain, it found :"2.0" usb storage. https://displaylink.org/forum/showthread.php?t=65972#post_message_85441 – mshaffer Mar 08 '18 at 15:43
  • The device’s USB descriptors say that it has two configurations: the first presents a USB storage-class endpoint, the second presents a vendor-specific endpoint. I’m guessing that the former is used to present some sort of driver (Windows-specific probably), and when the driver is loaded, it activates the second configuration to access the monitor itself. This is common with other kinds of USB devices, *e.g.* wi-fi devices; under Linux they’re handled by `usb-modeswitch`. – Stephen Kitt Mar 08 '18 at 19:41
  • The problem you’re running into is that when the USB device is enumerated, `usb-storage` claims it. Then when the device driver for the monitor tries to take control, it can’t change to the second USB configuration, because `usb-storage` is still using it... That’s why I think `usb-storage` needs to be unbound from the device before the proper monitor device driver tries to initialise it. – Stephen Kitt Mar 08 '18 at 19:42

0 Answers0