# PS2-USB IBM Keyboard: Meta-Key disables Key-Event

## heipei

Hi Forum,

I've searched extensively for this but couldn't find an answer, so I'm opening a new thread.

I recently hooked up an old IBM SK-8820 PS2-Keyboard using a simple PS2-USB Converter and was able to use it right away, alongside my usual USB keyboard. The new keyboard does have its quirks though, the biggest being this:

1. I hold a key (like "s"), and can see the events generated in xev

2. I simultaneously press and release a key like Shift, which will generate a few upper-case "S" in xev

3. After releasing Shift, "s" will only be generated a finite number of times, depending on the repeat-rate. Then, I have to re-press "s" to continue generating events.

Point 3. is where my USB and my PS2-USB keyboards differ. I've tried this on two machines, Gentoo, Ubuntu, different kernels, different xorg.confs. I'm not even sure this isn't a limitation of the hardware, which I couldn't imagine, since it essentially renders this keyboard useless for some applications (hints: games). General hints or information welcome.

Greetings,

Jojo

----------

## eccerr0r

I have yet to find a PS2-USB keyboard adaptor (for keyboards that don't natively support USB) acceptable.  I've bought a few, and a lot behave differently so I'm blaming the adaptors for now.  Most of them handle key rollover funny.  Summary: it's a hardware issue.

The best I've seen so far is the Y-Mouse by P I Engineering.  I'm not going to vouch for them even, they also have issues with rollover sometimes.

I'd suggest you drop the legacy hardware or if there's a legacy PS2 port, use that (or possibly get a PCI PS/2 port card if you don't have legacy ports on motherboard). Else keep on trying adaptors until you find one that's good.

I've also found that there's a subtle difference between UHCI and OHCI keyboards.  Some USB keyboards will work for one or the other but not both.  I suspect the USB-PS2 adaptor may have the same issue, as it needs to emulate a whole keyboard as well.

----------

## heipei

Thanks for you reply. I've tried to narrow the problem down a bit further. First of all, Windows behaves completely different and stops the original key repeat as soon as I press a Meta key.

Now, for Linux I've discovered this: The keyboard supports a fair amount of simultaneous key-presses. But whenever a Meta-Key is pressed and released (Shift, Alt, Space, Ctrl), any Non-Meta still pressed is released shortly afterwards as well. I've tried it here: http://www.microsoft.com/appliedsciences/content/projects/KeyboardGhostingDemo.aspx which is basically a pretty version for xev  :Wink: 

Still looking for help.

----------

## eccerr0r

If I remember correctly, it's mostly in how the hardware handles key repeat.  Ideally key repeat should only be handled by the host system only, but sometimes the keyboard and/or usb-ps2 converter will attempt to also do key repeat when it doesn't really need to.  As said the usb-ps2 converter also needs to emulate a keyboard, and sometimes the ps2 keyboard itself tries to do key repeat.  Both will jumble each other up and send funny requests to the host system...

Yet another issue is if the ps2-usb adaptor forgets how many keys were pressed because too many were pressed... then it will also behave funny.  This is probably the underlying reason for a lot of issues.  There tends to be the assumption no more than 3 keys (2 modifiers and one alphanumeric) would be pressed at once, but depending on typing style and how fast you lift off, more than 1 alphabetic key can be pressed (and games, you tend to need to press more than 1 key at once)... if the two are not totally aligned, or if the adaptor forgets about the first keys, strange behavior ensues.  Couple that with key repeat... it gets ugly real fast.

How the host PC handles it is a different story, if you want Linux to duplicate what Windows does, that I have no clue.  Need to muck with the kernel to behave differently I suspect.

----------

