Technical insight - principles
The CH Control Manager principles
The principle used is equivalent to that of the CH Control Manager software on Windows. Basically, the driver sits in between the hardware and the input event interface :
→ Driver receives hardware events and interprets them
→ Driver converts to a valid input event according to programmable key mapping
→ Driver passes input events to the input interface
→ Driver registers in Windows as a virtual HID-compliant keyboard and mouse
We use a similar principle
I have chosen to build this linux driver on the same model, basically capturing hardware events using libusb, doing the translation according to a key mappings file and passing the input event to the kernel using uinput.
This is a userspace application, based on libusb and uinput.