Message ID | 4CBC43BD.1080406@msgid.tls.msk.ru |
---|---|
State | New |
Headers | show |
On Mon, Oct 18, 2010 at 04:55:25PM +0400, Michael Tokarev wrote: > Brad Jorsch <anomie@users.sourceforge.net> writes ( http://bugs.debian.org/578846 ): > > The USB keyboard emulation's translation table in hw/usb-hid.c doesn't > match the codes actually sent for the Logo (a.k.a. "Windows") or Menu > keys. This results in the guest OS not being able to receive these keys > at all when the USB keyboard emulation is being used. > > In particular, both the keymap in /usr/share/kvm/keymaps/modifiers and > the evdev table in x_keymap.c map these keys to 0xdb, 0xdc, and 0xdd, > while usb_hid_usage_keys[] seems to be expecting them to be mapped to > 0x7d, 0x7e, and 0x7f. > > The attached patch seems to fix the problem, at least in my (limited) > testing. > > This indeed fixes the problem, which is indeed exist. > > http://bugs.debian.org/578846 > http://bugs.debian.org/600593 (cloned from the above against different pkg) > https://bugs.launchpad.net/qemu/+bug/584139 > > Signed-Off-By: Brad Jorsch <anomie@users.sourceforge.net> > Signed-Off-By: Michael Tokarev <mjt@tls.msk.ru> > > diff --git a/hw/usb-hid.c b/hw/usb-hid.c > --- a/hw/usb-hid.c > +++ b/hw/usb-hid.c > @@ -401,3 +401,3 @@ static const uint8_t usb_hid_usage_keys[0x100] = { > 0x51, 0x4e, 0x49, 0x4c, 0x00, 0x00, 0x00, 0x00, > - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, > + 0x00, 0x00, 0x00, 0xe3, 0xe7, 0x65, 0x00, 0x00, > 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, > > Thanks, applied.
diff --git a/hw/usb-hid.c b/hw/usb-hid.c --- a/hw/usb-hid.c +++ b/hw/usb-hid.c @@ -401,3 +401,3 @@ static const uint8_t usb_hid_usage_keys[0x100] = { 0x51, 0x4e, 0x49, 0x4c, 0x00, 0x00, 0x00, 0x00, - 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0xe3, 0xe7, 0x65, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,