4

I have a Sabrent USB to HDMI adapter which is a DisplayLink device. It's recognized by udl as being a DisplayLink device, yet seems to be rejected/disabled due to having an invalid EDID:

[32780.107963] usb 3-1: new high-speed USB device number 12 using xhci_hcd
[32785.130415] usb 3-1: device descriptor read/8, error -110
[32785.251408] usb 3-1: Invalid ep0 maxpacket: 242
[32785.362527] usb 3-1: new high-speed USB device number 13 using xhci_hcd
[32785.385812] usb 3-1: New USB device found, idVendor=17e9, idProduct=410d
[32785.385824] usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[32785.385831] usb 3-1: Product: Sabrent USB-HDMI
[32785.385836] usb 3-1: Manufacturer: DisplayLink
[32785.385840] usb 3-1: SerialNumber: 442631
[32785.388773] [drm] vendor descriptor length:27 data:27 5f 01 00 25 00 04 04 01 00 03
[32785.498175] Raw EDID:
[32785.498191]      00 00 00 00 00 00 ff 00 5a 63 2e 73 01 01 01 01
[32785.498196]      07 18 01 03 80 34 1d 78 2e 2c c5 a4 56 50 a1 28
[32785.498200]      0f 50 54 bf ef 80 b3 00 a9 40 a9 c0 95 00 90 40
[32785.498203]      81 80 81 40 81 00 02 3a 80 18 71 38 2d 40 58 2c
[32785.498206]      45 00 09 25 21 00 00 1e 00 00 00 ff 00 54 53 54
[32785.498210]      31 34 30 37 34 31 35 33 38 0a 00 00 00 fd 00 32
[32785.498213]      4b 18 52 11 00 0a 20 20 20 20 20 20 00 00 00 fc
[32785.498216]      00 56 41 32 34 34 36 20 53 45 52 49 45 53 00 76
[32785.498226] udl 3-1:1.0: DVI-I-7: EDID invalid.
[32785.499647] udl 3-1:1.0: fb2: udldrmfb frame buffer device
[32785.499656] [drm] Initialized udl 0.0.1 20120220 on minor 2

I'm running Ubuntu 12.04 LTS (Elementary Luna) with a 3.11.0 kerrnel:

$ uname -a
Linux hostname 3.11.0-19-generic #33~precise1-Ubuntu SMP Wed Mar 12 21:16:27 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

I have installed xserver-xorg-video-displaylink, and it's clear that its running, as udl detects the DisplayLink device.

I don't get a green screen, the monitor doesn't turn on.

Digging around in kernel internals, the EDID invalid message occurs in drivers/gpu/drm/drm_edid.c:3000:

if (!drm_edid_is_valid(edid)) {
    dev_warn(connector->dev->dev, "%s: EDID invalid.\n", drm_get_connector_name(connector));
    return 0;
}

What exactly is going wrong here and how can I fix it? Does the returned EDID break the utilization of the device? Is there a way that I can either patch my kernel or set some other configuration to get the DisplayLink device to work properly?

Naftuli Kay
  • 38,686
  • 85
  • 220
  • 311
  • http://lxr.linux.no/#linux+v3.11.10/drivers/gpu/drm/drm_edid.c#L968 You need to modify function to see what's happening behind the screen. If you are sure, that your EDID is insane, then you can do dirty hack and modify the kernel to skip EDID_Validation. ( Warning you, it's a dirty hack ) – SHW Apr 07 '14 at 05:36
  • Though I'm ready to roll up my sleeves and recompile the kernel, I'd like to avoid it if possible. If not, then fine, but if there's any other way for me to bypass the strange EDID reported by the device, then I'll take it. – Naftuli Kay Apr 07 '14 at 06:52
  • Random thought: Use `Option "UseEDID" "False"` in xorg.conf file – SHW Apr 07 '14 at 07:29
  • `[32785.130415] usb 3-1: device descriptor read/8, error -110`: I think your device has a more serious problem (`110` is `ETIMEDOUT`, BTW). Do you connect the device directly to the built-in USB ports or to a hub? Did you try the device with another computer? – Andreas Wiese Apr 07 '14 at 12:14
  • Weirdly enough, I blacklisted `udl` and `udlfb` at least gives me a green screen. Progress! Now I just need to find a way to write my xorg.conf file in a way that doesn't bork everything. – Naftuli Kay Apr 08 '14 at 05:42
  • Reading this http://www.pcl-developers.org/xhci-hcd-I-hate-you-USB-3-0-and-Primesense-Asus-Xtion-td5707949.html, I would suggest to use USB2.0 (ehci_hcd) instead of 3.0 (xhci_hcd) can you try/Have you tried to disable USB3.0 on your computer in UEFI? – UnX Apr 12 '14 at 21:08

0 Answers0