Skip to content

Golevka/rapoov7-keyboard-driver

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

rapoov7-keyboard-driver: A hotfix for rapoo v7 mechanical keyboard on linux machine

Quick Usage and Hotfix

Compile the driver module with make and run ./rapoo7_hotfix, then enjoy typing (≡^∇^≡)

Consequences

The HID descriptor of interface #3 sent by the device is probably broken so the host usbhid driver module cannot find a proper interrupt input endpoint, we have to turn to use the most basic and simple Boot Protocol. The weird thing is: this device could work well in BIOS setup and grub 2, which means that the HID boot protocol is supported and worked, but it could not work with linux usbkbd (HIDBP keyboard support) module. So I have to dig into USB 1.1 HID specification to figure out if the implemetation of the device or usbkbd module violated the standard.

The key to this problem was lying on pg.54 of HID 1.1 spec documentation: it said that all devices defaults to report protocol when initialized, and the host should always issue a SET_PROTOCOL control message and should not make any assumptions about the device’s state. So I added a set protocol and set idle request to usbkbd.c and fixed the problem.

Future works

Maybe we should fix the broken HID descriptor instead of using the old crappy boot protocol, just like hid-cherry.c (in linux source tree) for Cherry Cymotion Keyboard.

Attention

Do not touch those volume control keys and the [M] key at the upper right corner, or it would drive all keyboards attached to your system crazy. Try pressing Ctrl + Shift or Ctrl + Shift + Alt to make them calm down.

About

A hotfix for rapoo v7 mechanical keyboard on linux machine

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages