Configure 27" 2560x1440 for a monitor with corrupt EDID
Solution 1:
I had a similar problem recently. I could've made a custom Xorg.conf file but that would've undermined all the nice new automatic configuration when I connected to other monitors.
I re-wrote the corrupted EDID instead:
Here are some reading materials:
ref: https://en.wikipedia.org/wiki/Extended_display_identification_data#External_links
edid-rw: https://github.com/bulletmark/edid-rw ( this might work for you... I tried it and could read the edid but couldn't write?! Try it first?)
You need to find the monitor's i2c address:
i2cdetect -l
// look for vga, in this case I got "1"
i2cdetect 1
// look for address.. in this case only one.. I got 0x50
sudo i2cdump 1 0x50 b
// get the current edid
I found a listing on the internet for my monitor's edid as part of an xorg listing in a bug post. Put it in file new.bin:
Checksum!.. This next line should spit out 0
x=$( sum -s new.bin | cut -d " " -f 1 ); echo "$x % 256 " |bc
Since edid-rw above didn't work for me I looked into:
I used this to write the edid:
WARNING - DANGEROUS - Make sure your i2c addresses are correct and insert them below!
cat new.bin | hexdump -v -e '"sudo i2cset -y 1 0x50 0x%_ax 0x" /1 "%02X b\n"'
check final result:
(make sure to use the address info you found above using i2cdetect instead of " 1 0x50 ")
sudo i2cdump 1 0x50 b >test.bin
cat test.bin
x=$( sum -s test.bin | cut -d " " -f 1 ); echo "$x % 256 " |bc should return 0 if good