I was trying to use these instructions but had a devil of a time with dumping edid.bin. A mix of printf and perl finally seemed to work converting from ascii to hex:
printf '%b' $(xrandr --props | perl -pe 's/^((?![[:xdigit:]]{32}).)*$//g ; s/[\s\t]+//g ; s/([[:xdigit:]]{2})/\\x\1/g') > edid.bin
Use the expressions alone to check output:
xrandr --props | perl -pe 's/^((?![[:xdigit:]]{32}).)*$//g ; s/[\s\t]+//g'
xrandr --props | perl -pe 's/^((?![[:xdigit:]]{32}).)*$//g ; s/[\s\t]+//g ; s/([[:xdigit:]]{2})/\\x\1/g'
perl captures only lines that contain 32 hex characters, strips out whitespace/tabs, then reformats each two-digit pair to \x## so that printf interprets the escape sequence to ouput hex. The other accepted method uses edid-decode:
xrandr --verbose | edid-decode - edid.bin
It wouldn't work in a multi-monitor environment since multiple edids would be present.