akatrevorjay / edid-generator

Hackerswork to generate an EDID blob from given Xorg Modelines, complete with valid checksum.
GNU General Public License v3.0
224 stars 50 forks source link

EDID file fails to load on Arch Linux 4.14.68-1-lts kernel - size is wrong #11

Open znmeb opened 6 years ago

znmeb commented 6 years ago

I generated a file for my 1360x768 monitor and everything worked in edid-generator. But the resulting file doesn't load at boot time:

$ dmesg|grep -i edid
[    0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-linux-lts root=UUID=335e9118-3b2d-419e-97e8-9ecb1f5bb34c rw amdgpu.cik_support=1 radeon.cik_support=0 amdgpu.dc=1 drm_kms_helper.edid_firmware=edid/1360x768_60.00.bin video=1360x768
[    0.000000] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-linux-lts root=UUID=335e9118-3b2d-419e-97e8-9ecb1f5bb34c rw amdgpu.cik_support=1 radeon.cik_support=0 amdgpu.dc=1 drm_kms_helper.edid_firmware=edid/1360x768_60.00.bin video=1360x768
[    1.560475] platform DVI-I-1: Direct firmware load for edid/1360x768_60.00.bin failed with error -2
[    1.560500] [drm:drm_load_edid_firmware [drm_kms_helper]] *ERROR* Requesting EDID firmware "edid/1360x768_60.00.bin" failed (err=-2)
[    1.640462] platform DVI-I-1: Direct firmware load for edid/1360x768_60.00.bin failed with error -2
[    1.640481] [drm:drm_load_edid_firmware [drm_kms_helper]] *ERROR* Requesting EDID firmware "edid/1360x768_60.00.bin" failed (err=-2)
[    1.750471] platform DVI-I-1: Direct firmware load for edid/1360x768_60.00.bin failed with error -2
[    1.750505] [drm:drm_load_edid_firmware [drm_kms_helper]] *ERROR* Requesting EDID firmware "edid/1360x768_60.00.bin" failed (err=-2)
[    8.011317] [drm:drm_load_edid_firmware [drm_kms_helper]] *ERROR* Size of EDID firmware "edid/1360x768_60.00.bin" is invalid (expected 6272, got 130
[    8.090596] [drm:drm_load_edid_firmware [drm_kms_helper]] *ERROR* Size of EDID firmware "edid/1360x768_60.00.bin" is invalid (expected 6272, got 130
[   11.760539] [drm:drm_load_edid_firmware [drm_kms_helper]] *ERROR* Size of EDID firmware "edid/1360x768_60.00.bin" is invalid (expected 6272, got 130
[   19.440719] [drm:drm_load_edid_firmware [drm_kms_helper]] *ERROR* Size of EDID firmware "edid/1360x768_60.00.bin" is invalid (expected 6272, got 130

The system is Arch Linux with the LTS kernel

$ uname -a
Linux AlgoCompSynth 4.14.68-1-lts #1 SMP Wed Sep 5 14:38:31 CEST 2018 x86_64 GNU/Linux
Rotaride commented 5 years ago

Check your cvt modeline output to not contain any consecutive multiple spaces and make sure you are not feeding modeline2edid with it as consecutive spaces corrupts the output.

jm009 commented 5 years ago

Same problem here...

I am using latest Debian (Buster 10.1) and put the generated .bin file in /lib/firmware/edid/.

I added at boot: drm_kms_helper.edid_firmware=edid/3840x2160_24.00_rb.bin

$ ls -trl 3840x2160*
-rw-r--r-- 1 xxx xxx 492 Aug 24 20:57 3840x2160_24.00_rb.S
-rw-r--r-- 1 xxx xxx 134 Aug 24 20:58 3840x2160_24.00_rb.bin
-rw-r--r-- 1 xxx xxx 388 Aug 24 20:59 3840x2160_24.00_rb.bin.ihex
-rw-r--r-- 1 xxx xxx 838 Aug 24 20:59 3840x2160_24.00_rb.c

Output of dmesg contains - Missing trailing ) on purpose

[drm:drm_load_edid_firmware [drm]] *ERROR* Size of EDID firmware "edid/3840x2160_24.00_rb.bin" is invalid (expected 6272, got 134

cristiantm commented 4 years ago

I'm having the same problem on Ubutnu 20.04/Kernel 5.4. I double checked the Modeline for white spaces.

Any idea/workaround? Is it expected to work with kernel 5.4?

1600x900.zip

cristiantm commented 4 years ago

Hey! Just fixed it by simple removing "dots" from the modeline name. I guess somehow this confused the script and made it generate wrong data.

1600x900_2.zip

Another problem I found is that the data generated by cvt is not correct also. Fonts got blurred.

I connected a mac, decoded its EDID and got the right parameters.

Modeline "1600x900" 108.00 1600 1624 1704 1800 900 901 904 1000 +hsync +vsync

Nikoh77 commented 3 years ago

Hi guys, i am a retrogamer and same problem for me... this the modeline i used: Modeline "720x288x50_08" 13.875000 720 744 808 888 288 293 296 312 -HSync -VSync i just add ratio=4:3 at the end of command. this the error (i can see with dmesg): [drm:edid_load [drm]] ERROR Size of EDID firmware "edid/720x288.bin" is invalid (expected 1408, got 128 Please help @Rotaride @cristiantm @znmeb @kenni 720x288.zip

guyuming76 commented 3 years ago

the last things i tried is removing "_" from the Modeline name and change from drm_kms_helper.edid_firmware to drm.edid_firmware. And now it works well for me.

I am not sure which change fixed the issue, i guess i should be removing "_" from the Modeline name.

At first, it was ./modeline2edid - <<< 'Modeline "1920x1080_60.00" 173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsync'

now, it is ./modeline2edid - <<< 'Modeline "1920x1080" 173.00 1920 2048 2248 2576 1080 1083 1088 1120 -hsync +vsync'