触控板工作得很好,但我尝试过的 USB 鼠标无法工作。我可以看到在 lsusb 中检测到鼠标
Bus 003 Device 004: ID 248a:8366 Maxxter Wireless Optical Mouse ACT-MUSW-002
和 inxi -Jxxx 显示
Hub-3: 3-0:1 info: Hi-speed hub with single TT ports: 4 rev: 2.0
speed: 480 Mb/s chip-ID: 1d6b:0002 class-ID: 0900
Device-1: 3-2:5 info: Maxxter Wireless Optical Mouse ACT-MUSW-002
type: Mouse driver: N/A interfaces: 1 rev: 1.1 speed: 12 Mb/s power: 50mA
chip-ID: 248a:8366 class-ID: 0301
但即使使用 libinput 调试事件也没有检测到任何移动。我尝试了另一只 USB 鼠标(这是有线的)并看到了类似的结果。我还用 Windows 机器检查了两只鼠标,以确认它们没有损坏。我该怎么做才能让鼠标正常工作?
答案1
大多数 USB 鼠标的驱动模块是usbhid
.一些罕见的 USB 鼠标可能支持USB HID 启动协议仅有的;对于这些,所需的驱动程序模块是usbmouse
.标准内核源代码包含这两个驱动程序。
要验证您的内核配置是否包含这些驱动程序,请运行:
grep -e CONFIG_USB_HID -e CONFIG_USB_MOUSE /boot/config-$(uname -r)
或者,如果您的发行版没有内核配置文件,/boot/config-*
但有/proc/config.gz
,则运行:
zcat /proc/config.gz | grep -e CONFIG_USB_HID -e CONFIG_USB_MOUSE
典型的响应应类似于:
CONFIG_USB_HID=m
CONFIG_USB_HIDDEV=y
CONFIG_USB_MOUSE=m
CONFIG_USB_HID
如果或的设置为CONFIG_USB_MOUSE
,y
则表示该驱动程序内置于当前内核中,并且应始终使用。如果设置为m
,则表示驱动程序被构建为模块,您可以尝试分别使用modprobe usbhid
或加载它modprobe usbmouse
。
通常,如果驱动程序构建为模块,则大多数发行版应在插入 USB 鼠标后立即自动加载 USB 鼠标驱动程序。在您的情况下,驱动程序显然未加载:如果modprobe usbhid
或modprobe usbmouse
使鼠标开始工作,您将必须调查自动驱动程序加载失败的原因。系统日志中是否有相关错误信息,或者模块是否被列入黑名单/etc/modprobe.d/
?
如果结果包含如下行:
# CONFIG_USB_HID is not set
或者
# CONFIG_USB_MOUSE is not set
那么相应的驱动程序在您当前的内核配置中被禁用;您必须更改内核配置并构建新版本的内核才能启用它(或切换到使用已启用这些驱动程序的内核)。