蓝牙鼠标
本文介绍与蓝牙鼠标相关的配置和故障排除步骤。本文信息建立在主 Bluetooth 文章的基础上,并假定用户已按照该文章中的安装、配置或故障排除步骤进行操作。
配置
Apple Magic Mouse 滚动速度
如果滚动速度太慢,您可以尝试
# modprobe -r hid_magicmouse # modprobe hid_magicmouse scroll_acceleration=1 scroll_speed=55
滚动速度可以设置为 0 到 63。
如果速度符合您的要求,可以在 /etc/modprobe.d/ 中使更改永久生效
/etc/modprobe.d/hid_magicmouse.conf
options hid_magicmouse scroll_acceleration=1 scroll_speed=55
Apple Magic Mouse 中键点击
如果您觉得中键点击太灵敏,可以禁用它
# modprobe -r hid_magicmouse # modprobe hid_magicmouse emulate_3button=0
如果此设置符合您的要求,可以在 /etc/modprobe.d/ 中使更改永久生效
/etc/modprobe.d/hid_magicmouse.conf
options hid_magicmouse emulate_3button=0
鼠标配对与双系统启动
当您双系统启动 Windows 和 Linux 时,您可能会发现自己一遍又一遍地重新配对蓝牙鼠标。每次切换操作系统时都会发生这种情况,因为当您配对设备时,您的蓝牙服务会生成一组唯一的配对密钥。根本原因在于,这组配对密钥无法在两个操作系统之间共享。
首先,您的计算机存储蓝牙设备的 MAC 地址和配对密钥。其次,您的蓝牙设备存储您计算机的 MAC 地址和匹配的密钥。这通常工作正常,但您的蓝牙端口的 MAC 地址在 Linux 和 Windows 上是相同的(它在硬件级别设置)。但是,当您在 Windows 或 Linux 中重新配对设备时,它会生成一个新的密钥。该密钥会覆盖蓝牙设备上先前存储的密钥。Windows 会覆盖 Linux 的密钥,反之亦然。
要解决此问题,请参阅 Bluetooth#Dual boot pairing。
如果使用蓝牙 LE 设备,请使用 此 python 脚本,稍作修改以适应 Arch Linux,该脚本最初在 [1] 中讨论。
故障排除
鼠标延迟
如果您遇到鼠标延迟,可以尝试提高轮询率。有关更多信息,请参阅 Mouse polling rate。
您可以尝试在 BlueZ 中设置鼠标的最小/最大延迟,请参阅 [2]
在 /var/lib/bluetooth/您的适配器 MAC 地址/您的鼠标 MAC 地址/info 中添加或修改以下部分(相应地调整路径)
[ConnectionParameters] MinInterval=6 MaxInterval=9 Latency=44 Timeout=216
此外,您还可以使用 hcitool(在 bluez-deprecated-tools 包中)来更改设备的延迟参数
# HANDLE="$(hcitool con | grep '<Bluetooth Mouse mac address>' | awk '{print $5}')" # get the device handle
# hcitool lecup --handle $HANDLE --latency 0 --min 6 --max 8
请注意,此方法仅对当前连接有效。如果鼠标断开连接,您将需要再次执行。
或者,您可以通过 debugfs 更改默认延迟设置。请参阅 /sys/kernel/debug/bluetooth/hci0/conn_{latency,{min,max}_interval}。
此示例将解决延迟问题,但您必须先取消配对然后重新配对鼠标
# echo 0 > /sys/kernel/debug/bluetooth/hci0/conn_latency # echo 6 > /sys/kernel/debug/bluetooth/hci0/conn_min_interval # echo 7 > /sys/kernel/debug/bluetooth/hci0/conn_max_interval
USB 接收器问题
如果您在使用 USB 接收器时遇到问题,您可能还想尝试
# modprobe -v rfcomm
此时,您应该会得到一个 hci0 设备,并且
# hcitool dev
有时设备不会立即激活。尝试使用以下命令启动接口
# hciconfig hci0 up
并如上所示搜索设备。
鼠标总是断开连接
如果鼠标停止工作,但在重新启动蓝牙后又能正常工作,或者鼠标在闲置几秒钟后似乎“进入睡眠状态”(至少对于某些型号的 Dell XPS 13 是这样 [3]),您可能需要为选定的设备 禁用 USB 自动挂起。
问题也可能出在设备超时和 HID 设置上。请参阅 #Thinkpad Bluetooth Laser Mouse problems。
如果您使用的是 Logitech 设备,可以通过遵循 #Problems with the Logitech BLE mouse (M557, M590, M720, anywhere mouse 2, etc) 中的过程来解决此问题。
Thinkpad 蓝牙激光鼠标问题
如果您发现 Thinkpad 蓝牙激光鼠标每隔几秒钟就会快速连接然后(几毫秒后)断开连接(当您移动鼠标或按下按钮时),请尝试使用密码 0000 进行配对,而不是无密码配对。
如果上述方法无效,问题可能出在设备超时设置上。编辑/创建文件 /etc/bluetooth/input.conf 并进行以下更改
# Configuration file for the input service
# This section contains options which are not specific to any # particular interface [General] # Set idle timeout (in seconds) before the connection will be disconnect and # the input device is removed. # Defaults: 0 (disabled) IdleTimeout=0 # Enable HID protocol handling in userspace input profile # Defaults to true (Use UHID instead of kernel HIDP) UserspaceHID=true
这些更改将防止设备超时,以便保持连接。第二个设置启用了蓝牙设备的用户空间 HID 处理。但是,两者默认都应如此设置。重新启动 bluetooth.service 来测试更改。您也可能需要重启并重新配对设备。
Kensington Expert Wireless Trackball 问题
Kensington Expert Wireless Trackball 的默认轮询率在 200ms 范围内,这会导致延迟。要解决此问题,请在 /var/lib/bluetooth/您的适配器 MAC 地址/您的鼠标 MAC 地址/info 中添加或修改 [ConnectionParameters] 部分(根据您的鼠标蓝牙地址调整路径),如上所示,特别是将延迟降低到一个较小的值,甚至 0。
Logitech BLE 鼠标问题 (M557, M590, M720, Anywhere Mouse 2 等)
在某些情况下,鼠标已配对但使用时不动。设备需要被信任并解除屏蔽。首先打开终端并运行 bluetoothctl
- 关闭蓝牙
[bluetooth] # power off
- 打开蓝牙,然后根据需要启用鼠标上的配对模式
[bluetooth] # power on
- 列出可用的蓝牙设备,您需要复制鼠标设备 ID XX:XX:XX:XX:XX:XX
[bluetooth] # scan on
- 如果已配对,则取消配对设备
[bluetooth] # remove XX:XX:XX:XX:XX:XX
- 将设备置于配对模式(通常通过长按按钮)。它将被扫描并显示。请注意,设备 ID 可能会(略有)变化,因此请复制扫描显示的设备 ID。
- 信任该设备
[bluetooth] # trust XX:XX:XX:XX:XX:XX
- 将鼠标与计算机配对
[bluetooth] # pair XX:XX:XX:XX:XX:XX
- 将计算机与鼠标连接
[bluetooth] # connect XX:XX:XX:XX:XX:XX
- 解除屏蔽设备控制
[M585/M590] # unblock
- 关闭并重新打开蓝牙。
如果鼠标未立即工作,只需关闭并重新打开鼠标电源。
在某些情况下,可能还需要加载 uhid 内核模块。