1

I'm using Bloody P91s Gaming Mouse my device and it isn't smooth on my Debian OS. It's displaying difference in acceleration on various axis. For example, if I move my mouse left-right over x-axis, the pointer proceeds to go down on y-axis. Also, it feels slower to move mouse pointer up whilst way much faster when I'm moving down.

So I got myself a A4Tech OP-730D for testing and found out that the later one operates smoothly on any OS. I've tested on Debian, Ubuntu, Kali and PopOS - all have same results.

However, It may be noted both mouse shows satisfactory performance over Windows and even on Linux VMs hosted on Windows.

I've tried to find proper driver for the P91s for Linux over the internet but only found Windows executables. So I was hoping for a solution, may be any open source driver that works well for a gaming mouse like P91s on Linux.

2 Answers2

2

When you tested the mouse with different OSs, did you use the same desk/mouse pad in each case? The symptoms sound a bit like the sensor in the mouse might be having trouble tracking the surface you're using it on.

(At work, we had a new meeting room with a glass-topped desk. It turned out the mice that came as standard with company laptops all had trouble when used on that desk without a mouse pad. Using a simple sheet of paper as an improvised mouse pad was enough to fix the issue.)

The basic functionality of USB mice is standardized by the USB HID specification.

If the mouse works poorly in Linux but a proprietary driver fixes it in Windows, that suggests a poor implementation of the USBHID specification in hardware is being worked around by a non-standard driver.

The Linux way of handling such devices would be to implement a device-specific "quirk" in the main USB mouse driver: that avoids duplication of effort in maintaining a complete separate mouse driver. Most likely, you would find a separate driver for a particular model of USB mouse only if that mouse would simultaneously fulfill two conditions:

  • the hardware USBHID implementation is so broken/non-standard that the common USBHID driver cannot reasonably be extended to handle it, and
  • the mouse is otherwise so exceptionally desirable that developers feel it's worth the effort to "reinvent the wheel" for it.
telcoM
  • 96,466
1

For my A4Tech J90s issue with cursor movement was caused due Linux splitting input in two /dev/input/event files and just ignored one of them. So what I did is just merged them with evsieve:

evsieve --input /dev/input/event3 grab --input /dev/input/event5 grab --output

Exact event files were found with evtest.

Just for note: symptoms was that mouse was unresponsive on slow movement up and left.

It seems there is better solution. You just need to add file /etc/udev/hwdb.d/60-input-id.hwdb with content:

id-input:modalias:input:b0003v09DAp3169*
  ID_INPUT_MOUSE=1

You will need to change b0003v09DAp3169 to value from any /sys/class/input/eventN/device/modalias file related to Your mouse. And then run systemd-hwdb update to apply hwdb changes.

Graiden
  • 26
  • How do you detect which input events are generated by the mouse? – Meraj al Maksud Oct 07 '22 at 09:49
  • In the output of evtest /dev/input/eventN (N - number of event file) You will see vendor and product ID's. For A4Tech vendor ID is 09da. Also evtest will react on movement of mouse. So You need find one event file which generates output on all movement except slow left-up and one with all movement except slow right-down. – Graiden Oct 10 '22 at 06:45
  • I want to automate this but the problem is the event number may change in the long run – Meraj al Maksud Apr 02 '23 at 15:22
  • 1
    There is script that allows You to get device path by its ID. And best I come up for now is to look in /sys/class/input/eventN/device/capabilities/rel for value of "903" and "3". I honestly don't know if it is universal solution. – Graiden Apr 04 '23 at 22:42
  • Unfortunately, the latest fix you suggested didn't work for me. I need to deeper into it later. For now, I'm sticking to your previous suggestion. https://github.com/merajmasuk/useful-scripts/blob/main/p91s_fix – Meraj al Maksud Apr 07 '23 at 09:18
  • nevermind, It's working now. – Meraj al Maksud Apr 07 '23 at 11:59