Ubuntu – Sharkoon Drakonia Gaming Mouse doesn’t work at all


I've got a new Mouse "Sharkoon Drakonia", a gaming mouse with 11 buttons and high changable resolution.

The problem is, that the mouse doesn't work. Only the LEDs are visible, but wether the buttons nor the mouse movement ist recognized.
Under Windows the mouse works out of the box (main buttons, movement, forward and backward, the other buttons not yet tested).

Also the lsusb seems not to see it right:

Bus 003 Device 002: ID 04d9:a067 Holtek Semiconductor, Inc. 

Best Answer

This solution should work with all Sharkoon mice at the time of writing this revision.

Recompiling Ubuntu Kernel for Sharkoon support

  1. Open a Terminal window (Ctrl + Alt + T)
  2. Run sudo apt-get install fakeroot kernel-wedge build-essential makedumpfile kernel-package libncurses5 libncurses5-dev to get required packages for kernel building. You can apt-get remove <package name> these packages if you do not want them afterwards.
  3. Run the following to create a folder for the kernel source:

    mkdir ~/source
    cd ~/source
    apt-get source linux-image-$(uname -r)
  4. Type in cd linux and press Tab to fill in the rest of the folder's name before pressing Enter.

  5. Type in gedit include/linux/hid.h and find the string (Ctrl + F) "#define HID_MAX_USAGES" and change the value of it to '64000'.
  6. Run cp -vi /boot/config-`uname -r` .config to get the config file from your current system.
  7. (Opt) To speed up compiling, you can set the concurrency level. Run export CONCURRENCY_LEVEL=# Replace "#" with the number of cores on your CPU + 1. (Dual-core will be "3")
  8. Run make-kpkg clean to prepare the directory for compiling.
  9. Run fakeroot make-kpkg --initrd --append-to-version=-sk kernel-image kernel-headers to start compiling the kernel. This will take a long time. If you have to interrupt the process, you will have to run rm ~/source and start from Step 3.

The kernel binaries (.deb) will be in the folder ~/source.

Installing the custom kernel

  1. Open a File Manager window and navigate to /lib/modules.
  2. Open a Terminal Window and cd ~/source
  3. Run the following using Tab to autocomplete the names:

    sudo dpkg -i linux-image-(REPLACE_ME).deb    
    sudo dpkg -i linux-headers-(REPLACE_ME).deb
  4. Run sudo update-initramfs -c -k (REPLACE_ME[DIFFERENT]) replacing with the name of the new folder (should end with "-sk" in the File Manager window.

  5. Run sudo update-grub.
  6. Restart your computer.

You should now be running with your new, custom-compiled kernel.

(Opt) Cleaning up

  1. Open a Terminal window
  2. Run sudo apt-get remove fakeroot kernel-wedge build-essential makedumpfile kernel-package libncurses5 libncurses5-dev
  3. Run rm ~/source (Or you could delete the directory from a file manager)
Related Question