后退/前进鼠标按钮在evtest中不显示

我的小米静音鼠标在按下后退/前进按钮时没有产生事件。该鼠标通过蓝牙连接到Ubuntu 20.04.1。

侧面按钮的照片 .

$ xinput query-state "Mi Silent Mouse" 的输出结果为

2 classes :
ButtonClass
    button[1]=up
    button[2]=up
    button[3]=up
    button[4]=up
    button[5]=up
    button[6]=up
    button[7]=up
ValuatorClass Mode=Relative Proximity=In
    valuator[0]=1973
    valuator[1]=741
    valuator[2]=0
    valuator[3]=11640

按钮1-5是三个主要按钮加上滚轮向上/向下,因此按钮6-7应该是后退/前进按钮。
然而,当按下这两个按钮时,evtest没有显示任何事件。
另一方面,在同一台机器的辅助分区上,鼠标在Windows上完美地工作。
我没有找到很多关于如何解决这个问题的信息,任何帮助都将不胜感激。

这只鼠标需要厂家提供的驱动程序才能使所有按钮正常工作吗? - David
不,制造商没有为这个鼠标发布任何操作系统的驱动程序。 - C. S.
运行xev,在出现的白色窗口中尝试按住按钮1(左键),然后(在按住它的同时)使用前进/后退按钮进行点击。查看是否会触发ButtonPress事件(或者发布日志)。 - Héliton Martins
你有没有找到什么线索?我也遇到了同样的问题。 - matega
我追踪到错误并发现鼠标在USB上发送了一个错误的报告描述符。我写了一个修复程序,它是一个内核模块,我很快就会上传它。 - matega
1个回答

鼠标在蓝牙上发送了一个错误的HID报告描述符(通过USB发送正确的)。我编写了一个内核模块来修复它:https://github.com/matega/hid_mimouse 安装说明:
sudo apt install git build-essential dkms
git clone https://github.com/matega/hid_mimouse.git
cd hid_mimouse
make

如果make运行没有错误,你可以
sudo make install
sudo dkms add .
sudo dkms install hid_mimouse/1.0

重启。