udl vs udlfb and EDID trouble
Tvrtko Ursulin
tvrtko.ursulin at onelan.co.uk
Thu Aug 30 05:24:45 PDT 2012
Hi all,
I've been playing with some DisplayLink adapters, six of them to be precise
connected to six identical HDMI monitors.
Under kernel 3.5 things did not really work for me apparently because of the
udl driver's inability to fetch EDID. Interestingly, logged EDID blocks were
different for each of the six monitors which suggests a serious bug somewhere.
I've then went to see if I can load my own EDID, because I remember doing it
via /sys/class/graphics/fb?/edid before, but that file was not there.
(Is it possible to override EDID with the udl driver?)
To cut the long story short, I figured out there are two drivers for this
hardware. Fedora based 3.5 kernel builds and uses udl, while the older 3.3.2
I played with before builds and uses udlfb. (Why two drivers?)
Now going back to 3.3.2 and udlfb, EDID got correctly fetched from all six
monitors.
Udlfb seems the EDID like this:
# hexdump /sys/class/graphics/fb1/edid -C
00000000 00 ff ff ff ff ff ff 00 4c 2d 02 09 00 00 00 00 |........L-......|
00000010 29 15 01 03 80 29 17 78 0a ee 91 a3 54 4c 99 26 |)....).x....TL.&|
00000020 0f 50 54 bd ef 80 71 4f 81 c0 81 00 81 80 95 00 |.PT...qO........|
00000030 a9 c0 b3 00 01 01 02 3a 80 18 71 38 2d 40 58 2c |.......:..q8- at X,|
00000040 45 00 a0 5a 00 00 00 1e 66 21 56 aa 51 00 1e 30 |E..Z....f!V.Q..0|
00000050 46 8f 33 00 a0 5a 00 00 00 1e 00 00 00 fd 00 18 |F.3..Z..........|
00000060 4b 0f 51 17 00 0a 20 20 20 20 20 20 00 00 00 fc |K.Q... ....|
00000070 00 53 41 4d 53 55 4e 47 0a 20 20 20 20 20 01 f1 |.SAMSUNG. ..|
00000080
Below are the corrupt EDID blocks udl under 3.5 was getting. It's a lot of
text but someone perhaps will be able to infer something from them.
2012-08-29T16:53:00.048995+01:00 kernel[] info:[ 18.343314] [drm] vendor descriptor length:2e data:2e 5f 01 002c 00 04 04 01 00 03
2012-08-29T16:53:00.048999+01:00 kernel[] err:[ 18.362643] [drm:drm_edid_block_valid] *ERROR* EDID checksum is invalid, remainder is 199
2012-08-29T16:53:00.049008+01:00 kernel[] err:[ 18.362655] Raw EDID:
2012-08-29T16:53:00.049014+01:00 kernel[] err:[ 18.362662] 00 40 39 a0 ff ff ff ff 00 70 41 a0 ff ff ff ff
2012-08-29T16:53:00.049017+01:00 kernel[] err:[ 18.362667] 04 00 00 00 00 00 00 00 99 a9 77 61 00 88 ff ff
2012-08-29T16:53:00.049020+01:00 kernel[] err:[ 18.362672] 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
2012-08-29T16:53:00.049024+01:00 kernel[] err:[ 18.362677] b0 a9 77 61 00 88 ff ff 30 95 6c 60 00 88 ff ff
2012-08-29T16:53:00.049101+01:00 kernel[] err:[ 18.362681] 7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00
2012-08-29T16:53:00.049105+01:00 kernel[] err:[ 18.362686] 40 a6 c3 62 00 88 ff ff e0 16 00 00 00 00 00 00
2012-08-29T16:53:00.049108+01:00 kernel[] err:[ 18.362690] 40 00 00 00 00 00 00 00 58 82 02 00 00 00 00 00
2012-08-29T16:53:00.049119+01:00 kernel[] err:[ 18.362695] 00 00 00 00 40 00 38 00 07 00 40 00 1c 00 1b 00
2012-08-29T16:53:00.049124+01:00 kernel[] warning:[ 18.362707] usb 2-1.2: DVI-I-1: EDID invalid.
2012-08-29T16:53:00.049126+01:00 kernel[] info:[ 18.364581] fb1: udldrmfb frame buffer device
2012-08-29T16:53:00.049130+01:00 kernel[] info:[ 18.364594] [drm] Initialized udl 0.0.1 20120220 on minor 1
2012-08-29T16:53:00.049133+01:00 kernel[] info:[ 18.365388] [drm] vendor descriptor length:2e data:2e 5f 01 002c 00 04 04 01 00 03
2012-08-29T16:53:00.049136+01:00 kernel[] err:[ 18.421823] Raw EDID:
2012-08-29T16:53:00.049139+01:00 kernel[] err:[ 18.421842] 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
2012-08-29T16:53:00.049142+01:00 kernel[] err:[ 18.421848] 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
2012-08-29T16:53:00.049152+01:00 kernel[] err:[ 18.421853] 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
2012-08-29T16:53:00.049157+01:00 kernel[] err:[ 18.421857] 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
2012-08-29T16:53:00.049160+01:00 kernel[] err:[ 18.421862] 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
2012-08-29T16:53:00.049163+01:00 kernel[] err:[ 18.421866] 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
2012-08-29T16:53:00.049167+01:00 kernel[] err:[ 18.421871] 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
2012-08-29T16:53:00.049170+01:00 kernel[] err:[ 18.421875] 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
2012-08-29T16:53:00.049173+01:00 kernel[] warning:[ 18.421889] usb 2-1.3: DVI-I-2: EDID invalid.
2012-08-29T16:53:00.049182+01:00 kernel[] info:[ 18.424921] fb2: udldrmfb frame buffer device
2012-08-29T16:53:00.049187+01:00 kernel[] info:[ 18.424987] [drm] Initialized udl 0.0.1 20120220 on minor 2
2012-08-29T16:53:00.049190+01:00 kernel[] info:[ 18.428455] [drm] vendor descriptor length:2e data:2e 5f 01 002c 00 04 04 01 00 03
2012-08-29T16:53:00.049193+01:00 kernel[] err:[ 18.491450] Raw EDID:
2012-08-29T16:53:00.049196+01:00 kernel[] err:[ 18.491469] 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
2012-08-29T16:53:00.049199+01:00 kernel[] err:[ 18.491475] 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
2012-08-29T16:53:00.049202+01:00 kernel[] err:[ 18.491479] 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
2012-08-29T16:53:00.049206+01:00 kernel[] err:[ 18.491484] 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
2012-08-29T16:53:00.049215+01:00 kernel[] err:[ 18.491489] 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
2012-08-29T16:53:00.049220+01:00 kernel[] err:[ 18.491493] 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
2012-08-29T16:53:00.049224+01:00 kernel[] err:[ 18.491497] 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
2012-08-29T16:53:00.049227+01:00 kernel[] err:[ 18.491502] 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
2012-08-29T16:53:00.049230+01:00 kernel[] warning:[ 18.491515] usb 2-1.4: DVI-I-3: EDID invalid.
2012-08-29T16:53:00.049233+01:00 kernel[] info:[ 18.494223] fb3: udldrmfb frame buffer device
2012-08-29T16:53:00.049236+01:00 kernel[] info:[ 18.494241] [drm] Initialized udl 0.0.1 20120220 on minor 3
2012-08-29T16:53:00.049246+01:00 kernel[] info:[ 18.495604] [drm] vendor descriptor length:2e data:2e 5f 01 002c 00 04 04 01 00 03
2012-08-29T16:53:00.049252+01:00 kernel[] err:[ 18.525219] [drm:drm_edid_block_valid] *ERROR* EDID checksum is invalid, remainder is 87
2012-08-29T16:53:00.049254+01:00 kernel[] err:[ 18.525231] Raw EDID:
2012-08-29T16:53:00.049257+01:00 kernel[] err:[ 18.525238] 00 40 32 a0 ff ff ff ff 00 c0 32 a0 ff ff ff ff
2012-08-29T16:53:00.049260+01:00 kernel[] err:[ 18.525243] 04 00 00 00 00 00 00 00 99 80 7e 61 00 88 ff ff
2012-08-29T16:53:00.049264+01:00 kernel[] err:[ 18.525248] 18 b0 92 60 00 88 ff ff 98 78 1c 50 00 88 ff ff
2012-08-29T16:53:00.049267+01:00 kernel[] err:[ 18.525253] 30 b0 92 60 00 88 ff ff b0 78 1c 50 00 88 ff ff
2012-08-29T16:53:00.049270+01:00 kernel[] err:[ 18.525257] 40 73 1c 50 00 88 ff ff 40 73 1c 50 00 88 ff ff
2012-08-29T16:53:00.049280+01:00 kernel[] err:[ 18.525262] 00 01 5d 62 00 88 ff ff e0 ba 7e 61 00 88 ff ff
2012-08-29T16:53:00.049285+01:00 kernel[] err:[ 18.525266] 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
2012-08-29T16:53:00.049288+01:00 kernel[] err:[ 18.525271] 00 00 00 00 40 00 38 00 07 00 40 00 1c 00 1b 00
2012-08-29T16:53:00.049291+01:00 kernel[] warning:[ 18.525283] usb 2-1.1.1: DVI-I-4: EDID invalid.
2012-08-29T16:53:00.049294+01:00 kernel[] info:[ 18.527493] fb4: udldrmfb frame buffer device
2012-08-29T16:53:00.049297+01:00 kernel[] info:[ 18.527512] [drm] Initialized udl 0.0.1 20120220 on minor 4
2012-08-29T16:53:00.049301+01:00 kernel[] info:[ 18.529482] [drm] vendor descriptor length:2e data:2e 5f 01 002c 00 04 04 01 00 03
2012-08-29T16:53:00.049311+01:00 kernel[] err:[ 18.554576] [drm:drm_edid_block_valid] *ERROR* EDID checksum is invalid, remainder is 171
2012-08-29T16:53:00.049315+01:00 kernel[] err:[ 18.554584] Raw EDID:
2012-08-29T16:53:00.049318+01:00 kernel[] err:[ 18.554588] 00 10 bf 12 00 c9 ff ff 00 20 d7 12 00 c9 ff ff
2012-08-29T16:53:00.049321+01:00 kernel[] err:[ 18.554591] 04 00 00 00 00 00 00 00 98 7c 1c 50 00 88 ff ff
2012-08-29T16:53:00.049324+01:00 kernel[] err:[ 18.554594] 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
2012-08-29T16:53:00.049328+01:00 kernel[] err:[ 18.554596] b0 7c 1c 50 00 88 ff ff b0 73 1c 50 00 88 ff ff
2012-08-29T16:53:00.049331+01:00 kernel[] err:[ 18.554598] 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
2012-08-29T16:53:00.049334+01:00 kernel[] err:[ 18.554600] 80 4d 43 60 00 88 ff ff 00 00 00 00 00 00 00 00
2012-08-29T16:53:00.049343+01:00 kernel[] err:[ 18.554603] 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
2012-08-29T16:53:00.049348+01:00 kernel[] err:[ 18.554605] 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
2012-08-29T16:53:00.049351+01:00 kernel[] warning:[ 18.554613] usb 2-1.1.2: DVI-I-5: EDID invalid.
2012-08-29T16:53:00.049354+01:00 kernel[] info:[ 18.558351] fb5: udldrmfb frame buffer device
2012-08-29T16:53:00.049357+01:00 kernel[] info:[ 18.558366] [drm] Initialized udl 0.0.1 20120220 on minor 5
2012-08-29T16:53:00.049361+01:00 kernel[] info:[ 18.561871] [drm] vendor descriptor length:2e data:2e 5f 01 002c 00 04 04 01 00 03
2012-08-29T16:53:00.063248+01:00 dbus[994] notice: [system] Activating service name='org.freedesktop.ModemManager' (using servicehelper)
2012-08-29T16:53:00.063258+01:00 dbus-daemon[994] info: dbus[994]: [system] Activating service name='org.freedesktop.ModemManager' (using servicehelper)
2012-08-29T16:53:00.074611+01:00 kernel[] err:[ 18.584027] [drm:drm_edid_block_valid] *ERROR* EDID checksum is invalid, remainder is 212
2012-08-29T16:53:00.074618+01:00 kernel[] err:[ 18.584039] Raw EDID:
2012-08-29T16:53:00.074622+01:00 kernel[] err:[ 18.584046] 01 00 00 00 00 00 00 00 08 03 47 62 00 88 ff ff
2012-08-29T16:53:00.074626+01:00 kernel[] err:[ 18.584051] 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
2012-08-29T16:53:00.074629+01:00 kernel[] err:[ 18.584056] 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
2012-08-29T16:53:00.074633+01:00 kernel[] err:[ 18.584061] 51 02 00 00 00 00 00 00 e0 be c2 81 ff ff ff ff
2012-08-29T16:53:00.074636+01:00 kernel[] err:[ 18.584065] 00 00 00 00 00 00 00 00 58 30 9d 66 00 88 ff ff
2012-08-29T16:53:00.074640+01:00 kernel[] err:[ 18.584070] 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
2012-08-29T16:53:00.074643+01:00 kernel[] err:[ 18.584074] 58 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
2012-08-29T16:53:00.074647+01:00 kernel[] err:[ 18.584078] 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
2012-08-29T16:53:00.074650+01:00 kernel[] warning:[ 18.584091] usb 2-1.1.3: DVI-I-6: EDID invalid.
2012-08-29T16:53:00.074653+01:00 kernel[] info:[ 18.586045] fb6: udldrmfb frame buffer device
2012-08-29T16:53:00.074656+01:00 kernel[] info:[ 18.586063] [drm] Initialized udl 0.0.1 20120220 on minor 6
Tvrtko
More information about the dri-devel
mailing list