I haven't tried this yet, because I don't have the jumpers available, however I looked through the source code to the atkbd module, and it has a special case for a keyboard with an ID of ACA1, which looked like the keyboard should then operate in Set 3 mode, and I believe as the terminal keyboard behaves without the break codes. This isn't tested yet however, I haven't the jumpers yet to set the ID. The ID should be settable because the first to bits in each byte are the 10 (the bit value is 1010 1100 1010 0001), just as the keyboard allows.
And I don't currently have a PC setup with a natural PS/2 port either, I've been using a non-converting PS/2 to USB passive adapter, in which case I've been getting the repeat issue since the keyboard doesn't send the break code for the keys.
Once I have the jumpers I am going to attempt this. It would be nice if Windows also had some catch like this but I very highly doubt it.
I ran into a bunch of code for FreeBSD and NetBSD which looked as though there was some sort of native level support for scancode set 3, and it should be possible to do something similar to the windows driver patch for linux by writing a custom application (either in c, python, or anything really) which will send the correct bytes to the /dev/port device, by opening the device and seeking to the correct IOPort address and writing the correct bytes.
Was wondering if anyone else had a good experience attempting to get this to work under linux. I also have 64-bit Windows 7 however don't have the time right now to download the windows 2003 ddk and set it all up to patch the version compatible with the enhanced driver API.
Thanks,
Rick