Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?


Failed to load latest commit information.
Latest commit message
Commit time

edid-rw: A utility to read and write a display EDID value

Sorry, but I do not support this project anymore. I wrote this utility for my own one-off personal use many years ago but have no means to test and support changes nowadays. Feel free to fork and improve it.


This utility will read and/or write a display's EDID data structure. Use it with the edid-decode utility to view and check an EDID. You can also write new EDID data to attempt to fix a corrupt EDID.

WARNING - THIS UTILITY CAN DESTROY YOUR DISPLAY, MOTHERBOARD, OR OTHER CONNECTED HARDWARE IF RUN INCORRECTLY. Be very sure you understand what you are doing. See this issue for an example of what can happen.

You may have to disable output to the display before you can write the EDID.


Requires python3 smbus module, and edid-decode utility.

Install these prerequisites on Debian/Ubuntu:

sudo apt-get install python3-smbus edid-decode

Or, install these prerequisites on Arch:

yay -S i2c-tools edid-decode-git

Get this source code:

git clone
cd edid-rw

This utility should run using Python version 3.2+. It does not work with Python 2.


Run with -h switch to see usage and optional arguments:

./edid-rw -h

Fetch and decode display address 0 EDID data:

sudo ./edid-rw 0 | edid-decode

Fetch and decode display address 1 EDID data:

sudo ./edid-rw 1 | edid-decode

Capture display address 0 EDID data, edit it, and write it back to device. Use !Gxxd [-r] within vim to read, edit, and write binary file. See :h xxd within vim help. You should set the checksum (last) byte correctly although edit-rw will calculate and set the checksum itself if you include the -f (--fix) switch. edid-rw will always validate the checksum and will not write an invalid EDID:

WARNING - Be sure to triple check the EDID address you are about to write!

sudo ./edid-rw 0 >edid.bin
vim -b edid.bin # Then use xxd within vim, see ":h xxd" in vim
sudo ./edid-rw -w 0 <edid.bin


Mark Blakeney,


Copyright (C) 2012 Mark Blakeney. This program is distributed under the terms of the GNU General Public License.

This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License at for more details.