On Mon, Jan 28, 2013 at 10:54:33PM +0000, Stuart Henderson wrote: > On 2013/01/28 14:20, Mike Larkin wrote: > > On Mon, Jan 28, 2013 at 06:50:28PM -0200, Daniel Bolgheroni wrote: > > > Hi tech@, > > > > > > anyone with a patch lurking around to work with a Rapoo V7 keyboard? > > > > > > Linux has a workaround, but don't know if works: > > > > > > https://github.com/Golevka/rapoov7-keyboard-driver > > > > > > The dmesg for the kbd is: > > > > > > ukbd1 at uhidev2 reportid 4: 56 variable keys, 0 key codes > ^^^^^^^^^^^ > I think it's probably related to this. > > The workaround seems to set the keyboard to a simpler boot protocol > which probably doesn't do the n-key rollover stuff; it might be worth > playing with this. > > Index: uhidev.c > =================================================================== > RCS file: /cvs/src/sys/dev/usb/uhidev.c,v > retrieving revision 1.42 > diff -u -p -u -7 -r1.42 uhidev.c > --- uhidev.c 3 Jul 2011 15:47:17 -0000 1.42 > +++ uhidev.c 28 Jan 2013 22:52:00 -0000 > @@ -126,14 +126,15 @@ uhidev_attach(struct device *parent, str > const void *descptr; > usbd_status err; > > sc->sc_udev = uaa->device; > sc->sc_iface = iface; > id = usbd_get_interface_descriptor(iface); > > + (void)usbd_set_protocol(iface, 0); > (void)usbd_set_idle(iface, 0, 0); > #if 0 > > qflags = usbd_get_quirks(sc->sc_udev)->uq_flags; > if ((qflags & UQ_NO_SET_PROTO) == 0 && > id->bInterfaceSubClass != UISUBCLASS_BOOT) > (void)usbd_set_protocol(iface, 1); > > The other workaround I saw mentioned for these new keyboards was to > plug them into a passive USB->PS/2 adapter (if the keyboard supports > this), and then plug that into an active PS/2 -> USB adapter. Again > you lose any of the more complicated features. > > > I'd think you probably won't find much help unless you're willing to donate > > the kb to someone for testing. Or buy one for someone. Awfully hard to fix > > this sort of thing without access to the hardware. > > yep. >
The diff above might work but when I tried something akin to that last year when implementing support for the Monoprice keyboard (similar mechanical 'gaming' style keyboard), the boot protocol only allowed one key pressed at a time. That meant no Shift/Ctrl/Alt which made things somewhat difficult. -ml