@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.
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.
@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/f3611717bce 078056634bc2312 dba2787a433401/ 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.