ArtsAutosBooksBusinessEducationEntertainmentFamilyFashionFoodGamesGenderHealthHolidaysHomeHubPagesPersonal FinancePetsPoliticsReligionSportsTechnologyTravel

How to Reflash a Monitor with corrupted EDID

Updated on November 18, 2013

Could be a (monitor) Life Saver

I do wish to share a useful program by author Mark Blakeney at GitHub.com which saved a 'faulty' monitor of mine from going to the scrap heap..

This program (edid-rw) allows you to 're-flash' the EDID chip inside a monitor to correct settings so that modern operating systems can boot it to native resolution.

The program runs on linux Ubuntu/Debian and probably any of it's derivatives or live CDs.

A word of warning: You should only use this process as a ' last resort '. It could be that your monitor's problem is not EDID related at all. Flashing wrong data could also corrupt an EDID.

What is an EDID ?

Most consumer monitors these days carry inside an EEPROM chip called the EDID. It contains the name and specifications of the monitor's technical data including it's capabilities. Using a special Display Data Channel (DDC) in the monitor cable, the PC communicates with the monitor to get it's info.

The EDID can be re-written using special software.

Why on Earth Would I Want to do That ?

Unlike earlier versions of Linux, modern distros are increasingly relying on 'Auto-Detection' of hardware, and that includes monitors.

This means the OS will 'ask' the monitor, what it is capable of. In the old days, before this type of auto-detection, the user would just pre-config these settings manually into config files.

If the boot process does not detect the monitor correctly, you could end up with the following symptoms.

Unable to achieve a higher resolution supported.

Incorrectly detecting a resolution that does not exist.

Unable to detect the monitor at all.

Tip: This also means that it's better to have your monitor 'on' before booting, otherwise the OS would default to a lower resolution.

These symptoms could be because of incorrect settings on the PC side, or it could also be because the EDID data in the monitor has been corrupted.

So what? There's nothing wrong with my monitor.

No, I'm not saying there is. But EDID chips can go corrupt.

The chip is sensitive to electric shocks. Just the act of unplugging a cable without switching off the monitor might cause this. Ok it's unusual but it does happen, and there's scant solutions on the internet to fix it.

Ok, What's the solution ?

On Windows, there's the 'Phoenix'solution by Phoenix EDID Designer from Raylar Design, Inc. Since I don't use windows anymore, I don't know if this works or not, try Google for more info. It looks simple enough, good luck. There are also other programs made by monitor manufacturers themselves that run on Windows, but they are hard to find.

Instead I'm going to show you how it can be done in Linux Lubuntu, which would probably work for any other Ubuntu derivative. You can even use a bootable linux live CD and install the software temporarily, if you wish, it works just the same.

edid-rw

edid-rw is a python script from Mark Blakeney at GitHub.

It reads and writes EDID data on the i2c channel between the PC and monitor.

The EDID is basically a 128 byte block. edid-rw alone is not enough to read and write to this block, you also need some supporting software.

Instructions

I assume you know how to open a terminal and execute commands as root.

1. Install Software

First download the edid-rw python script from GitHub

https://github.com/bulletmark/edid-rw

Then install the support software;

apt-get install python-smbus

apt-get install edid-decode

apt-get install ghex

edid-decode displays the raw EDID as readable text.

ghex is a hex code editor.

Also, make edid-rw excutable: i.e chmod 755 edid-rw

(To see the help text : ./edid-rw -h )

2. Display EDID info

To see the current EDID info from the monitor you must specify an i2c device number. This example uses 3, but you must experiment yourself find which is the your monitor i2c device number. I suggest you start from 0 and work you way up. An incorrect device# will give a program traceback and IO error.

Get the EDID data block and pipe it into a decoder to readable form;

./edid-rw 3 | edid-decode

If there are any errors, edid-decode will indicate so, it will also validate and display the last-byte checksum.

3. Modify the EDID

First get the raw block and save it to a file;

./edid-rw 3 > edid.bin

(You can also check the file using edid-decode; i.e cat edid.bin | edid-decode )

Edit the block using ghex;

ghex edid.bin

( It will help to set Ghex preferences with cursor offset as decimal. )

The complete EDID data block specification can be found on Wikipedia.

At this point only You will know how bad the block has been corrupted. If you are lucky you will be able to find a duplicate block on the web from somebody who has exactly the same monitor as you. If not, you will have to repair it byte by byte using the spec.

Often, it's just the case of a corrupted checksum (last byte of the file). The suggested checksum is always displayed by edid-decode, you can try using that. Another important part are bytes 38-39, this gives info of the first standard supported mode, e.g 1280x1024 @ 60Hz.

After editing your modifications, save it as edid-new.bin.

Run edid-new.bin through edid-decode to get the new checksum.

cat edid-new.bin | edid-decode

Edit again with ghex to poke in the new checksum.

ghex edid-new.bin

and save the file.

4. Burn in the new EDID

./edid-rw -w 3 < edid-new.bin

Be sure to use the same i2c device number.

Good Luck !

Hopefully, you can now reboot to your desired resolution.

Tip: I have found that you can still get the monitor to work even if edid-decode says "block does not conform" or "Bad year of manufacture".

That's all for now !

Comments

    0 of 8192 characters used
    Post Comment

    • profile image

      Steve Park 

      3 weeks ago

      Thank you! I was able to repair a brand new AUO b156xtn03 laptop monitor that had a corrupt EDID. There was no toshiba splash screen, could not access bios or install windows. Linux could be installed because it doesn't worry about the EDID. All I had to change were two bytes of data (header) and all worked well after that. Thanks again.

    • profile image

      Bob 

      18 months ago

      I have a monitor with a corrupt checksum. I get to the end of your directions and try to write and I get an IO error. I know this is an old post, but do you have any idea why it would be giving an IO error?

    • profile image

      Michel 

      2 years ago

      My Viewsonic VX2025WM is working again. The EDID was all corrupted. Got a clean EDID from there http://www.komeil.com/blog/fix-edid-monitor-no-sig... changed serial/mfg date and uploaded it.

      Thank you !

    • profile image

      Conundrum 

      2 years ago

      This is also very handy if you have one of the infamous "WP enabled" panels which gets wrecked after a Windows 10 "upgrade".

      I've also found that laptop panels are also sometimes affected by this, typically manufacturers lock them to a specific make and model as well so changing out a panel with a slightly different version will sometimes cause a black screen/no backlight symptom.

    • profile image

      Tonatiuh Miramontes 

      2 years ago

      Hey, my old monitor has had this problem who knows since when and it turned a little catastrophic when KMS deprecated xorg.conf in Ubuntu about 2 years ago (I guess), polluting my logs and dmesg, and I've been just adding the xrandr lines to a script in order to have it working at full resolution, but that was dirty and machine-dependant.

      It's not been easy to get python-smbus under openSUSE, but a rpm from mageia did the trick :D

      My EDID looked rather OK, so I just changed the last byte and that was it, problem solved!

      Thank you very much for taking your time to write this guide!

    • profile image

      Marco Zirino 

      3 years ago

      First of all, thank you so much for taking the time to publish this. That is an amazing process (which fixed my monitor after hours of searching).

    • profile image

      emmanuel 

      3 years ago

      Gracias salvo mi monitor

    working

    This website uses cookies

    As a user in the EEA, your approval is needed on a few things. To provide a better website experience, hubpages.com uses cookies (and other similar technologies) and may collect, process, and share personal data. Please choose which areas of our service you consent to our doing so.

    For more information on managing or withdrawing consents and how we handle data, visit our Privacy Policy at: https://hubpages.com/privacy-policy#gdpr

    Show Details
    Necessary
    HubPages Device IDThis is used to identify particular browsers or devices when the access the service, and is used for security reasons.
    LoginThis is necessary to sign in to the HubPages Service.
    Google RecaptchaThis is used to prevent bots and spam. (Privacy Policy)
    AkismetThis is used to detect comment spam. (Privacy Policy)
    HubPages Google AnalyticsThis is used to provide data on traffic to our website, all personally identifyable data is anonymized. (Privacy Policy)
    HubPages Traffic PixelThis is used to collect data on traffic to articles and other pages on our site. Unless you are signed in to a HubPages account, all personally identifiable information is anonymized.
    Amazon Web ServicesThis is a cloud services platform that we used to host our service. (Privacy Policy)
    CloudflareThis is a cloud CDN service that we use to efficiently deliver files required for our service to operate such as javascript, cascading style sheets, images, and videos. (Privacy Policy)
    Google Hosted LibrariesJavascript software libraries such as jQuery are loaded at endpoints on the googleapis.com or gstatic.com domains, for performance and efficiency reasons. (Privacy Policy)
    Features
    Google Custom SearchThis is feature allows you to search the site. (Privacy Policy)
    Google MapsSome articles have Google Maps embedded in them. (Privacy Policy)
    Google ChartsThis is used to display charts and graphs on articles and the author center. (Privacy Policy)
    Google AdSense Host APIThis service allows you to sign up for or associate a Google AdSense account with HubPages, so that you can earn money from ads on your articles. No data is shared unless you engage with this feature. (Privacy Policy)
    Google YouTubeSome articles have YouTube videos embedded in them. (Privacy Policy)
    VimeoSome articles have Vimeo videos embedded in them. (Privacy Policy)
    PaypalThis is used for a registered author who enrolls in the HubPages Earnings program and requests to be paid via PayPal. No data is shared with Paypal unless you engage with this feature. (Privacy Policy)
    Facebook LoginYou can use this to streamline signing up for, or signing in to your Hubpages account. No data is shared with Facebook unless you engage with this feature. (Privacy Policy)
    MavenThis supports the Maven widget and search functionality. (Privacy Policy)
    Marketing
    Google AdSenseThis is an ad network. (Privacy Policy)
    Google DoubleClickGoogle provides ad serving technology and runs an ad network. (Privacy Policy)
    Index ExchangeThis is an ad network. (Privacy Policy)
    SovrnThis is an ad network. (Privacy Policy)
    Facebook AdsThis is an ad network. (Privacy Policy)
    Amazon Unified Ad MarketplaceThis is an ad network. (Privacy Policy)
    AppNexusThis is an ad network. (Privacy Policy)
    OpenxThis is an ad network. (Privacy Policy)
    Rubicon ProjectThis is an ad network. (Privacy Policy)
    TripleLiftThis is an ad network. (Privacy Policy)
    Say MediaWe partner with Say Media to deliver ad campaigns on our sites. (Privacy Policy)
    Remarketing PixelsWe may use remarketing pixels from advertising networks such as Google AdWords, Bing Ads, and Facebook in order to advertise the HubPages Service to people that have visited our sites.
    Conversion Tracking PixelsWe may use conversion tracking pixels from advertising networks such as Google AdWords, Bing Ads, and Facebook in order to identify when an advertisement has successfully resulted in the desired action, such as signing up for the HubPages Service or publishing an article on the HubPages Service.
    Statistics
    Author Google AnalyticsThis is used to provide traffic data and reports to the authors of articles on the HubPages Service. (Privacy Policy)
    ComscoreComScore is a media measurement and analytics company providing marketing data and analytics to enterprises, media and advertising agencies, and publishers. Non-consent will result in ComScore only processing obfuscated personal data. (Privacy Policy)
    Amazon Tracking PixelSome articles display amazon products as part of the Amazon Affiliate program, this pixel provides traffic statistics for those products (Privacy Policy)