Bluetooth mouse (简体中文) - ArchWiki

Jump to content

# Bluetooth mouse (简体中文)

From ArchWiki

相关文章

- Bluetooth
- Mouse polling rate

翻译状态：本文是 Bluetooth mouse 的翻译。上次翻译日期：2020-08-04。如果英文版本有所更改，则您可以帮助同步翻译。

本文介绍了对于蓝牙鼠标的配置和故障排除步骤，此处的配置基础建立在主要的 Bluetooth 一文中，并认为用户已经按照该文章进行了任何安装，配置或故障排除。

## 配置

### 苹果妙控鼠标 —— 滚动速度

如果觉得鼠标滚动速度太慢，可以尝试

    # rmmod 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

### 苹果妙控鼠标 —— 中键点击

如果觉得中键点击太让人挑剔，可以通过以下方式禁用

    # rmmod 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，可以在 这里 找到最初的讨论记录。

## 故障排除

### 鼠标滞后

如果遇到鼠标反应滞后，可以尝试提高轮询速率。请查阅 Mouse polling rate 获取更多信息。

可以尝试在 BlueZ 中设置鼠标的最小/最大延迟 [1]:

在 `/var/lib/bluetooth/<mac-of-your-adapter>/<mac-of-your-mouse>/info` 中添加或修改以下部分 (相应路径请灵活变通):

    [ConnectionParameters]
    MinInterval=6
    MaxInterval=9
    Latency=44
    Timeout=216

同时，可以使用 `hcitool` (属于 bluez-hcitoolAUR 软件包) 更改设备的延迟参数：

    # 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 和 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 和 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. 重启蓝牙。

如果鼠标不能直接工作，请重启鼠标。

## 另见

- BlueZ 设置存储

Categories:

- Mice (简体中文)
- Bluetooth (简体中文)