Open lkong opened 4 years ago
Me too.
Read existing edid:
$ sudo ./edid-rw 3 | edid-decode
edid-decode (hex):
00 ff ff ff ff ff ff 00 24 94 0f 00 00 00 00 00
00 00 01 03 80 1e 17 78 0a cd 75 91 55 4f 8b 26
21 50 54 00 00 00 01 01 01 01 01 01 01 01 01 01
01 01 01 01 01 01 30 2a 78 80 50 1a 0c 40 30 70
13 00 31 e4 10 00 00 1e 00 00 00 0f 00 08 fa 1a
ff 01 3e 06 7d ff ff ff ff 00 00 00 00 fe 00 49
44 54 0a 20 20 20 20 20 20 20 20 20 00 00 00 fe
00 4e 31 35 30 50 33 0a 20 20 20 20 20 20 00 e9
----------------
EDID version: 1.3
Manufacturer: IDT Model 15 Serial Number 0
Made in year 1990
[...]
Checksum: 0xe9
Check new edid:
$ cat newedid.bin | edid-decode
edid-decode (hex):
00 ff ff ff ff ff ff 00 4c 2d 73 03 32 32 59 4d
2c 12 01 03 80 2c 1e 78 2a 78 f1 a6 55 48 9b 26
12 50 54 bf ef 80 b3 00 81 80 81 40 71 4f 01 01
01 01 01 01 01 01 7c 2e 90 a0 60 1a 1e 40 30 20
36 00 cb 28 11 00 00 1a 00 00 00 fd 00 38 4b 1e
51 0e 00 0a 20 20 20 20 20 20 00 00 00 fc 00 53
79 6e 63 4d 61 73 74 65 72 0a 20 20 00 00 00 ff
00 48 39 58 51 41 31 38 39 38 34 0a 20 20 00 a3
----------------
EDID version: 1.3
Manufacturer: SAM Model 883 Serial Number 1297691186
Made in week 44 of 2008
[...]
Checksum: 0xa3
Write new edid data to EDID:
$ sudo ./edid-rw -w 3 <newedid.bin
Recheck EDID and see no change from original:
$ sudo ./edid-rw 3 | edid-decode
edid-decode (hex):
00 ff ff ff ff ff ff 00 24 94 0f 00 00 00 00 00
00 00 01 03 80 1e 17 78 0a cd 75 91 55 4f 8b 26
21 50 54 00 00 00 01 01 01 01 01 01 01 01 01 01
01 01 01 01 01 01 30 2a 78 80 50 1a 0c 40 30 70
13 00 31 e4 10 00 00 1e 00 00 00 0f 00 08 fa 1a
ff 01 3e 06 7d ff ff ff ff 00 00 00 00 fe 00 49
44 54 0a 20 20 20 20 20 20 20 20 20 00 00 00 fe
00 4e 31 35 30 50 33 0a 20 20 20 20 20 20 00 e9
----------------
EDID version: 1.3
Manufacturer: IDT Model 15 Serial Number 0
Made in year 1990
[...]
Checksum: 0xe9
Cheers, Nik
This is caused by write-protected EEPROMS. They just silently ignore write commands.
I've developed a fork of this utility that provides better ok/error messages for this case https://github.com/galkinvv/edid-checked-writer
Ok output:
Provided file is valid EDID, checking original EDID in a EEPROM...
Writing new EDID to EEPROM...
OK: New EDID written and verified
Fail output:
Provided file is valid EDID, checking original EDID in a EEPROM...
Writing new EDID to EEPROM...
ERROR: Failed writing new EDID, maybe device is write-protected.
Nothing changed, existing device EDID kept unmodified
origin EDID:
lkong@odroidn2:workspace/edid-rw ‹master*›$ sudo ./edid-rw 0 | parse-edid Checksum Correct
Section "Monitor" Identifier "AAA" ModelName "AAA" VendorName "ROW"
Monitor Manufactured week 1 of 2016
EndSection
new EDID to write:
lkong@odroidn2:workspace/edid-rw ‹master*›$ parse-edid < qi.bin Checksum Correct
Section "Monitor" Identifier "" ModelName "" VendorName "PQI"
Monitor Manufactured week 10 of 2006
EndSection
Write and check:
lkong@odroidn2:workspace/edid-rw ‹master›$ sudo ./edid-rw -w 0 < qi.bin lkong@odroidn2:workspace/edid-rw ‹master›$ sudo ./edid-rw 0 | parse-edid Checksum Correct
Section "Monitor" Identifier "AAA" ModelName "AAA" VendorName "ROW"
Monitor Manufactured week 1 of 2016
EndSection
EDID stays unchanged, with no error message from ebid-rw