Hi all,
My story is similar to most others, got a noname KVM switch, old faithful CRT monitor, XP box that works just fine, and a W7 box that is stubbornly stuck at 60Hz. Googled for answers and found threads like this, but no solutions, just annoyed users like me and canned answers that were abrasive and useless.
After trying most everything with no success I found this doc about overriding EDID on MS site:
http://www.microsoft.com/whdc/device/display/edid_over.mspx
I wondered if it could possibly work if there is no EDID at all, tried it, and the bugger worked. I can now set the refresh rate and resolution as if the monitor is directly connected to the computer. Here's how to do it:
Run regedit, and go to HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\DISPLAY\Default_Monitor
This section contains settings for monitors with no EDID info. There may be one or more monitors listed there, possibly depending on how much juggling you've already done. Mine had two. If you are connected to multiple monitors, you may need to figure out which is which. The rest applies to a single monitor case.
The monitor keys look like random strings with numbers, "&" symbols and letters in them. Open one of them and select "Device Parameters". That key should contain a binary value called BAD_EDID.
Right click "Device Parameters", and add a new key called EDID_OVERRIDE.
Select EDID_OVERRIDE, and add a binary value called 0 (plain zero, no quotes). If the EDID you will be copying there contains more than 128 bytes (80 hex), you may also need to add binary values 1 to 5. See the doc for more info. It talks about an INF file, but it all amounts to adding stuff to the registry.
Now you need a copy of the monitor EDID. I got mine by connecting the monitor directly without the KVM switch, in my case it added a section at
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\DISPLAY\GSM4A4D
The name will vary depending on the monitor brand and model. That section contains settings similar to Default_Monitor, except under "Device Parameters" there is a binary value called EDID filled with valid data. Double click EDID, and copy the first 128 bytes to the 0 binary value you added. If the EDID is longer, repeat for the rest of the 128 byte chunks and use values 1 to 5.
Repeat the procedure for all monitors at HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\DISPLAY\Default_Monitor, close regedit, reboot, and presto, the 60Hz lock should be history.