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?

  • 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 7 '14 at 5: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 7 '14 at 6:52
  • Random thought: Use Option "UseEDID" "False" in xorg.conf file – SHW Apr 7 '14 at 7: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 7 '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 8 '14 at 5:42

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.