蓝牙鼠标
本文介绍了对于蓝牙鼠标的配置和故障排除步骤,此处的配置基础建立在主要的 Bluetooth 一文中,并认为用户已经按照该文章进行了任何安装,配置或故障排除。
配置[编辑 | 编辑源代码]
苹果妙控鼠标——滚动速度[编辑 | 编辑源代码]
如果觉得鼠标滚动速度太慢,可以尝试
# 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
苹果妙控鼠标——中键点击[编辑 | 编辑源代码]
如果觉得中键点击太繁琐,可以通过以下方式禁用
# 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 配对的密钥,反之亦然。
要解决此问题,请按照 StackExchange 上的这个帖子里的说明进行操作。
如果使用了低功耗蓝牙设备 (Bluetooth LE device),请使用这个 Python 脚本, 这个脚本已经根据原脚本进行了轻微改动以适配 Arch Linux,可以在 [1] 找到最初的讨论记录。
故障排除[编辑 | 编辑源代码]
鼠标滞后[编辑 | 编辑源代码]
如果遇到鼠标反应滞后,可以尝试提高轮询速率。请查阅 Mouse polling rate 获取更多信息。
可以尝试在 BlueZ 中设置鼠标的最小/最大延迟 [2]:
在 /var/lib/bluetooth/<mac-of-your-adapter>/<mac-of-your-mouse>/info
中添加或修改以下部分 (相应路径请灵活变通):
[ConnectionParameters] MinInterval=6 MaxInterval=9 Latency=44 Timeout=216
同时,可以使用 hcitool
(属于 bluez-utils-compatAUR 软件包) 更改设备的延迟参数:
# 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 dongle)的问题[编辑 | 编辑源代码]
如果使用 USB 软件狗时遇到问题,可能需要尝试:
# modprobe -v rfcomm
此时,使用下列命令应该可看到一个 hci0 设备:
# hcitool dev
有时设备不会立即激活,可以尝试使用以下命令启动接口:
# hciconfig hci0 up
并搜索如上所示的设备。
鼠标总是连不上[编辑 | 编辑源代码]
如果鼠标没反应,但在重新启动蓝牙后又可以工作,则可能需要为选中的设备停用 USB 自动挂起。
这个问题还可能由设备超时时间和 HID 设置引起,请参见 #Thinkpad 蓝牙激光鼠标相关问题。
如果使用罗技(Logitech)的设备,可以按照以下步骤解决此问题: #罗技低功耗蓝牙鼠标的问题 (M557、M590、M720 和 anywhere mouse 2 等)。
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 minutes) before the connection will # be disconnect (defaults to 0 for no timeout) IdleTimeout=0 #Enable HID protocol handling in userspace input profile #Defaults to false(hidp handled in hidp kernel module) UserspaceHID=true
这些更改将防止设备超时以保持连接状态,第二个设置将启用对蓝牙设备的用户空间 HID 处理,您需要重新启动 bluetooth.service
以测试更改,有时您可能还需要重新启动并重新配对设备。
肯辛通专业无线轨迹球鼠标的问题[编辑 | 编辑源代码]
肯辛通专业无线轨迹球鼠标 (Kensington Expert Wireless Trackball) 的默认轮询速率在 200ms 范围内,这使得操作不太灵敏。要解决这个问题,请按上文提及的那样在 /var/lib/bluetooth/mac-of-your-adapter/mac-of-your-mouse/info
中添加或修改 [ConnectionParameters]
部分 (根据鼠标蓝牙地址调整路径),尤其要将延迟 (latency) 数值降低到很小,甚至到 0
。
罗技低功耗蓝牙鼠标的问题 (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
内核模块。
内核 5.9+ 上所有 BLE 鼠标的问题[编辑 | 编辑源代码]
参见 Bluetooth#Problems with all BLE devices on kernel 5.9+。