@Alexander, @Taimur: thanks to your comments and efforts, I've managed
to make a very basic HID driver for this keyboard. I have tested it
against kernel 4.15.0-23-generic with success. Please remove
"hid_generic" before loading this module and plugging the keyboard in,
so that hid_generic doesn't take on the device.

I took some parts from the aziokbd.c driver (by Colin Svingen;
https://bitbucket.org/Swoogan/aziokbd/src/f3611717bce078056634bc2312dba2787a433401/aziokbd.c?fileviewer
=file-view-default) and made a minimal mapping table between the special
keys G1-G6 to F1-F5 and SPACE. this way, the rightmost part of the
spacebar (which is labelled as G6) also works as the SPACE key.

This is my very first implementation of anything related to kernel code,
so expect it to be ugly, buggy and incorrect. Actually, I've found that
the kernel oops with a stack trace when the device is disconnected. This
is not a problem if you're using the keyboard as usual, but if you're
unplugging it (as when debugging with a VM, for example), your
machine/VM will become unstable.

I hope somebody with better understanding of USB and kernel driver
programming will take it and make something good out of this code. If
you are interested in evolving this driver and you need me to send you
keycodes/debugging output, don't hesitate to contact me.

** Attachment added: "Workaround driver for Cougar 500k keyboard bug"
   
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1511511/+attachment/5153716/+files/cougar-500k-0.4.tgz

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1511511

Title:
  USB keyboard stops working after pressing extended key

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1511511/+subscriptions

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to