2

I recently got a Cougar 700m gaming mouse which does not work in Fedora 22. Running xinput lists it as a slave keyboard.

⎡ Virtual core pointer                      id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ PS/2 Generic Mouse                        id=11   [slave  pointer  (2)]
⎜   ↳ SynPS/2 Synaptics TouchPad                id=12   [slave  pointer  (2)]
⎜   ↳ Wacom Serial Penabled 2FG Touchscreen stylus  id=15   [slave  pointer  (2)]
⎜   ↳ Wacom Serial Penabled 2FG Touchscreen eraser  id=16   [slave  pointer  (2)]
⎜   ↳ Wacom Serial Penabled 2FG Touchscreen touch   id=17   [slave  pointer  (2)]
⎣ Virtual core keyboard                     id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
    ↳ Power Button                              id=6    [slave  keyboard (3)]
    ↳ Video Bus                                 id=7    [slave  keyboard (3)]
    ↳ Sleep Button                              id=8    [slave  keyboard (3)]
    ↳ HP HD Webcam [Fixed]                      id=9    [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard              id=10   [slave  keyboard (3)]
    ↳ HP WMI hotkeys                            id=14   [slave  keyboard (3)]
    ↳ COUGAR 700M COUGAR 700M Gaming Mouse      id=13   [slave  keyboard (3)]

Is there a way, short of recompiling my kernel to fix this issue?

uname -r : 4.0.4-303.fc22.x86_64
1
  • 1
    This isn't a kernel issue: your mouse is advertising itself as a keyboard. Presumably it comes with a Windows driver that translates motion and the main buttons into mouse events and the keeps the rest as keyboard events. You'd need an X.org driver that does the same thing. – Gilles 'SO- stop being evil' Jun 6 '15 at 23:38
2

The previous answer, amazingly enough, works!

I have a Cougar 700m, and it didn't work in Ubuntu. Steps to download, patch and compile the kernel for me, on Ubuntu 14.04 LTS (mostly taken from https://help.ubuntu.com/community/Kernel/Compile):

sudo apt-get install linux-source
cd src/
tar xjvf /usr/src/linux-source-3.13.0.tar.bz2 
cd linux-source-3.13.0/
cp -vi /boot/config-`uname -r` .config
make oldconfig
make localmodconfig
make xconfig
cd include/linux/
(modify HID_MAX_USAGES as required)
cd ../../
make -j4 deb-pkg
cd ../
sudo dpkg -i linux-headers-3.13.11-ckt30_3.13.11-ckt30-1_amd64.deb 
sudo dpkg -i linux-image-3.13.11-ckt30_3.13.11-ckt30-1_amd64.deb 

It's a shame that you need a kernel patch for this sort of thing, but it was actually pretty painless to do. Of course, now I have to re-apply the patch every time I update the kernel...

1

Rebuild your kernel with the following patch:

--- a/include/linux/hid.h       2014-09-22 01:41:22.907084621 -0400
+++ b/include/linux/hid.h       2014-09-22 01:42:10.166556867 -0400
@@ -333,7 +333,7 @@
  * This is the local environment. It is persistent up the next main-item.
  */

-#define HID_MAX_USAGES                 12288
+#define HID_MAX_USAGES                 32768
 #define HID_DEFAULT_NUM_COLLECTIONS    16

 struct hid_local {

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.