Comment 18 for bug 1511511

Revision history for this message
Daniel M. Lambea (dmlambea) wrote :

@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.