蓝牙鼠标

出自 ArchWiki

本文描述了蓝牙鼠标的配置和故障排除步骤。这里的信息建立在主要的蓝牙文章之上,并假定用户已经遵循了该文章中的任何安装、配置或故障排除步骤。

配置

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#双启动配对

如果使用蓝牙 LE 设备,请使用 这个 python 脚本,略作编辑以适应 Arch,最初在 [1] 上讨论。

故障排除

鼠标延迟

如果您遇到鼠标延迟,您可以尝试提高轮询率。有关更多信息,请参阅鼠标轮询率

您可以尝试在 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-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 蓝牙激光鼠标问题

如果您使用的是 Logitech 设备,则可以通过执行#Logitech BLE 鼠标 (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 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 的默认轮询率在 200 毫秒范围内,这使其变得迟缓。要解决此问题,请在 /var/lib/bluetooth/mac-of-your-adapter/mac-of-your-mouse/info 中添加或修改 [ConnectionParameters] 部分(根据您的鼠标蓝牙地址调整路径),如上所示,特别是将延迟降低到一个较小的数字,甚至 0

Logitech BLE 鼠标 (M557, M590, M720, anywhere mouse 2, 等) 问题

在某些情况下,鼠标已配对但在使用时无法移动。设备需要被信任和解除阻止。首先打开终端并运行 bluetoothctl

  1. 关闭蓝牙
    [bluetooth] # power off
  2. 打开蓝牙,然后在鼠标上启用配对方法(如果需要)
    [bluetooth] # power on
  3. 列出可用的蓝牙设备,您必须复制鼠标设备 ID XX:XX:XX:XX:XX:XX
    [bluetooth] # scan on
  4. 如果已配对,则取消配对设备
    [bluetooth] # remove XX:XX:XX:XX:XX:XX
  5. 将设备置于配对模式(通常通过长按按钮,或某些键盘上的组合键)。它将被扫描检测到并显示。请注意,设备 ID 可能已(略微)更改,因此请复制扫描显示的设备 ID。
  6. 信任设备
    [bluetooth] # trust XX:XX:XX:XX:XX:XX
  7. 将鼠标与计算机配对
    [bluetooth] # pair XX:XX:XX:XX:XX:XX
  8. 将计算机与鼠标连接
    [bluetooth] # connect XX:XX:XX:XX:XX:XX
  9. 解除阻止设备控制
    [M585/M590] # unblock
  10. 关闭并重新打开蓝牙。

如果鼠标无法直接工作,只需关闭并重新打开鼠标即可。

在某些情况下,也可能需要加载 uhid 内核模块

参见