我有一个 K850 键盘和一个 M720 Triathlon 鼠标,都是 Logitech 的。它们工作正常,但闲置时会断开连接。
这种行为似乎类似于自动暂停功能,设备会在几秒钟后断开连接,并在有交互时重新连接。这使这些设备的使用变得乏味,尤其是键盘,因为它在重新激活时不会记住按键,并且需要几秒钟才能再次响应。
我在网上搜索并找到了一些与蓝牙和 USB 自动暂停相关的解决方案。例如,我在 grub 中尝试了以下行:
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash btusb.enable_autosuspend=n usbcore.autosuspend=-1 usbcore.autosuspend_delay_ms=-1"
这对我来说不起作用。
这是与 bluetoothctl 的会话:
root@balearics:~# bluetoothctl
Agent registered
[CHG] Controller 5C:87:9C:35:87:83 Pairable: yes
[M720 Triathlon]# devices
Device C9:58:68:E2:1A:D9 M720 Triathlon
Device DA:95:18:89:C3:30 Keyboard K850
[CHG] Device C9:58:68:E2:1A:D9 ServicesResolved: no
[CHG] Device C9:58:68:E2:1A:D9 Connected: no
[CHG] Device C9:58:68:E2:1A:D9 Connected: yes
[CHG] Device C9:58:68:E2:1A:D9 ServicesResolved: yes
[CHG] Device DA:95:18:89:C3:30 ServicesResolved: no
[CHG] Device DA:95:18:89:C3:30 Connected: no
[CHG] Device DA:95:18:89:C3:30 Connected: yes
[CHG] Device DA:95:18:89:C3:30 ServicesResolved: yes
[M720 Triathlon]#
正如您所看到的,空闲后它会断开连接,而当我触摸/键入它时它会再次连接。
任何帮助,将不胜感激
答案1
增加IdleTimeout
或/etc/bluetooth/input.conf
将其设置为 0 以禁用它。
您还可以尝试将其设置 FastConnectable
为 true,/etc/bluetooth/main.conf
以允许设备更快地重新连接,但会增加功耗。
任何更改后重新启动蓝牙:sudo service bluetooth restart
答案2
答案3
这适用于我的 Keychron K2 (v.2)。将其放入/etc/rc.local
:
# Prevents the Bluetooth USB card from getting reset which disconnects the mouse
BTUSB_DEV="8087:07dc"
BTUSB_BINDING="$(lsusb -d "$BTUSB_DEV" |
cut -f 1 -d : |
sed -e 's,Bus ,,' -e 's, Device ,/,' |
xargs -I {} udevadm info -q path -n /dev/bus/usb/{} |
xargs basename)"
echo "Disabling autosuspend for Bluetooth USB Soundcard: $BTUSB_BINDING..."
echo -1 > "/sys/bus/usb/devices/$BTUSB_BINDING/power/autosuspend_delay_ms"
代入以下值BTUSB_设备和供应商:产品蓝牙卡。
要BTUSB_DEV
使用:
lsusb -v | grep -iE '\<(Bus|iProduct|bDeviceClass|bDeviceProtocol|Bluetooth)' 2>/dev/null
你会看到类似这样的内容:
Bus 001 Device 007: ID 0489:e036 Foxconn / Hon Hai
bDeviceClass 224 Wireless
bDeviceProtocol 1 Bluetooth
iProduct 2
bInterfaceProtocol 1 Bluetooth
bInterfaceProtocol 1 Bluetooth
bInterfaceProtocol 1 Bluetooth
bInterfaceProtocol 1 Bluetooth
bInterfaceProtocol 1 Bluetooth
bInterfaceProtocol 1 Bluetooth
ID0489:e036(你的将会有所不同)就是你所需要的。
在禁用我的内部蓝牙卡的自动暂停之前,当我的键盘连接时,我在内核日志()中看到sudo dmesg
许多与超时、连接等相关的错误。然后,这些错误完全消失了。
Dec 11 10:32:29 sonyvaio kernel: [ 5290.684002] input: Keychron K2 System Control as /devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2/1-1.2:1.0/bluetooth/hci0/hci0:21/0005:05AC:024F.0004/input/input23
Dec 11 10:32:29 sonyvaio kernel: [ 5290.684304] hid-generic 0005:05AC:024F.0004: input,hidraw2: BLUETOOTH HID v1.1b Keyboard [Keychron K2] on 08:ed:b9:cf:f7:36
Dec 11 10:33:46 sonyvaio kernel: [ 5367.749903] Bluetooth: hci0: corrupted ACL packet
Dec 11 10:35:07 sonyvaio kernel: [ 5448.214626] Bluetooth: hci0: corrupted ACL packet
Dec 11 10:36:30 sonyvaio kernel: [ 5531.356542] Bluetooth: hci0: ACL packet for unknown connection handle 0
...
来源:https://ubuntuforums.org/showthread.php?t=2159645&page=6&p=12926730#post12926730
答案4
也许这是可行的(我不使用蓝牙设备)
创建文件
/etc/modprobe/btusb.conf
有内容。
options btusb enable_autosuspend=0
让我重新启动。