Eu tenho um adaptador Sabrent USB para HDMI que é um dispositivo DisplayLink. É reconhecido por udl
como sendo um dispositivo DisplayLink, mas parece ser rejeitado / desativado devido a ter um EDID inválido:
[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
Estou executando o Ubuntu 12.04 LTS (Elementary Luna) com um kerrnel 3.11.0:
$ 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
Instalei xserver-xorg-video-displaylink
e está claro que está em execução, pois udl
detecta o dispositivo DisplayLink.
Eu não recebo uma tela verde, o monitor não liga.
Procurando no kernel, a mensagem EDID invalid
ocorre em 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;
}
O que exatamente está errado aqui e como posso corrigi-lo? O EDID retornado interrompe a utilização do dispositivo? Existe uma maneira que eu possa corrigir meu kernel ou definir alguma outra configuração para que o dispositivo DisplayLink funcione corretamente?