在 Ubuntu 20.04 上,蓝牙键盘和鼠标闲置几秒钟后会断开连接,移动/输入时会重新连接

在 Ubuntu 20.04 上,蓝牙键盘和鼠标闲置几秒钟后会断开连接,移动/输入时会重新连接

我有一个 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

您没有说清楚是否已经检查过 GUI 和电源设置,所以我会尝试一下。

打开电源设置并禁用挂起蓝牙设备以节省电量的功能。

Ubuntu 20.04 电源管理 - 蓝牙

答案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

让我重新启动。

相关内容