Skip to content
Mark Van den Borre edited this page Oct 22, 2023 · 6 revisions

Reading EDID

  • Install necessary software
sudo apt install read-edid i2c-dev
  • Get the devices
sudo get-edid|grep 'buses found'

2 potential busses found: 6 7

Query the interesting bus and get it human readable

sudo get-edid -b 7 | parse-edid

Yes, that's the one!

  • Dump the edid
sudo get-edid -b 7 > fosdem_usbc_portable_screen.bin

Dumped edid information for all ms2131 devices we have can be found in the repo.

Finding the edid in the firmware

  • Convert the binary edid dump we just made to something more human readable.
xxd edid_hagibis.bin > edid_hagibis.hex
  • Dump the device flash and make it human readable
sudo ./cli --log-level=7 read FLASH 0 --filename=/tmp/hagibis_flash_full.bin
xxd /tmp/hagibis_flash_full.bin
  • Grep around for the edid info. Find something promising at 0x005a. Dump it from flash.
sudo ./cli --log-level=7 read FLASH 0x005a 256 --filename=/tmp/hagibis_flash_edid.bin
  • Compare the edid tool to the 256 bytes from flash. Yay! We have it!
diff edid_hagibis.bin hagibis_flash_edid.bin

Editing EDID

Getting the device to use a modified EDID

  • Naively trying to write the modified EDID to RAM where we found it at 0x1b33:
sudo ./cli write-file RAM 0x1b33 /home/mark/Downloads/edid_hagibis_modified.bin
  • This does not yield the expected result:
sudo ./cli read RAM 0x1b33 256 --filename=/tmp/edid_hagibis_modified_reread_from_ram.bin
  • Dump the modified EDID into the flash we dumped:
dd if=edid_hagibis_modified.bin of=hagibis_flash_modified_nocrc.bin bs=1 seek=90 conv=notrunc
  • Use the firmware checksum update function built by our in-house professional Go programmer to update this ms213x-status binary.
./ms213x-status firmware --filename hagibis_flash_modified_nocrc.bin --mode write
  • Check the new crc in the binary:
./ms213x-status firmware --filename hagibis_flash_modified_nocrc.bin
  • Upload the new firmware to the device:
sudo ./cli --log-level=7 write-file --verify FLASH 0 /home/mark/Downloads/hagibis_flash_modified_goodcrc.bin
Clone this wiki locally