藍牙鼠標
本文介紹了對於藍牙鼠標的配置和故障排除步驟,此處的配置基礎建立在主要的 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+。