Bluetooth-клавиатура не подключается после сна, приостановки или загрузки системы.

Вопрос или проблема

У меня самая странная проблема с Bluetooth в Ubuntu 24.04. У меня есть несколько Bluetooth-устройств (клавиатура Logitech K585 BT, AirPods Pro 2, обычная Bluetooth-мышь), которые сопряжены и подключены к компьютеру. После выхода из режима сна/приостановки или после перезагрузки мышь и AirPods переподключаются к Bluetooth без проблем, однако клавиатура не будет переподключаться, пока я не выключу Bluetooth и снова не включу его в системном меню.

Я пробовал играть с различными настройками в /etc/bluetooth/main.conf, и, похоже, установка:

ControllerMode = le

позволяет клавиатуре правильно переподключаться после сна/приостановки и при загрузке, но тогда AirPods больше не подключаются и не сопряжаются с компьютером. Если я устанавливаю ControllerMode = bredr, AirPods работают нормально, но клавиатура больше не подключается вообще (не говоря уже о сне или перезагрузке). Единственная настройка, которая, похоже, работает для всех устройств, – это ControllerMode = dual, и в этом случае у меня есть нежелательное поведение, когда клавиатура не будет переподключаться после пробуждения или перезагрузки, если адаптер Bluetooth не будет выключен и снова включен.

Я также пробовал установить MultiProfile = multiple и FastConnectable = true без успеха.

Для справки, драйвер, который я использую, – это bluez/noble,now 5.72-0ubuntu5 amd64, а ядро:

bender:~> uname -a
Linux bender 6.8.0-49-generic #49-Ubuntu SMP PREEMPT_DYNAMIC Mon Nov  4 02:06:24 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux

Любая помощь будет оценена, так как не очень удобно выключать и включать Bluetooth после пробуждения, так как моя мышь также Bluetooth, что означает, что мне нужно подключиться по SSH с другого компьютера, чтобы снова включить его.

Единственное, что я заметил в dmesg, – это некоторые загадочные сбои опкодов:

bender:~> sudo dmesg | grep -i blue
[    3.617461] Bluetooth: Core ver 2.22
[    3.617494] NET: Registered PF_BLUETOOTH protocol family
[    3.617495] Bluetooth: HCI device and connection manager initialized
[    3.617500] Bluetooth: HCI socket layer initialized
[    3.617502] Bluetooth: L2CAP socket layer initialized
[    3.617507] Bluetooth: SCO socket layer initialized
[    3.678221] Bluetooth: hci0: Legacy ROM 2.x revision 5.0 build 25 week 20 2015
[    3.679172] Bluetooth: hci0: Intel Bluetooth firmware file: intel/ibt-hw-37.8.10-fw-22.50.19.14.f.bseq
[    4.068237] Bluetooth: hci0: Intel BT fw patch 0x43 completed & activated
[    4.755238] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[    4.755243] Bluetooth: BNEP filters: protocol multicast
[    4.755248] Bluetooth: BNEP socket layer initialized
[    4.761546] Bluetooth: MGMT ver 1.22
[    4.856327] Bluetooth: hci0: Bad flag given (0x1) vs supported (0x0)
[    4.856373] Bluetooth: hci0: Bad flag given (0x1) vs supported (0x0)
[    7.018615] Bluetooth: RFCOMM TTY layer initialized
[    7.018632] Bluetooth: RFCOMM socket layer initialized
[    7.018641] Bluetooth: RFCOMM ver 1.11
[   59.704537] Bluetooth: hci0: Opcode 0x2005 failed: -22
[   59.705031] Bluetooth: hci0: Opcode 0x200b failed: -22
[   63.288518] hid-generic 0005:046D:B35A.0003: input,hidraw2: BLUETOOTH HID v0.11 Keyboard [Logi K580/K585] on dc:46:28:46:68:b9

Я готов предоставить любую другую информацию/вывод, которая могла бы быть полезна.

https://superuser.com/a/1768878/346288

или даже последовательность:

off="bluetoothctl disconnect $mac";
on="bluetoothctl connect $mac";
echo $off;
$off;
echo "sleep 2";
sleep 2;
echo $on;
$on

Если что-то из этого заставит работать, вы можете захотеть организовать сценарий, который будет запускаться по щелчку мыши.

Ответ или решение

Проблема с повторным подключением Bluetooth-клавиатуры после сна, приостановки или перезагрузки в Ubuntu 24.04 может быть вызвана несколькими факторами. На основе вашего описания, давайте разберем возможные решения более детально.

Проблема

Вы столкнулись с ситуацией, когда Bluetooth-клавиатура (Logitech K585) не соединяется автоматически после выхода из режима сна или перезагрузки системы. В то же время, другие Bluetooth-устройства (наушники AirPods Pro 2 и BT-мышь) подключаются без проблем. Пробуя разные настройки в конфигурационном файле /etc/bluetooth/main.conf, вы заметили, что:

  • Установка ControllerMode = le позволяет клавиатуре подключаться, но AirPods не работают.
  • С ControllerMode = bredr AirPods работают, но клавиатура не подключается.
  • Настройка ControllerMode = dual приводит к желаемому поведению для AirPods и клавиатуры, но клавиатура не подключается после пробуждения.

Возможные решения

  1. Проверка совместимости оборудования и драйверов:

    • Убедитесь, что используемая версия BlueZ и ядро актуальны. Вы указали, что у вас версия BlueZ 5.72 и ядро 6.8.0. Если возможно, рассмотрите обновление до более новой версии или попробуйте перевести систему на более стабильную версию драйверов.
  2. Изменение конфигурации Bluetooth:

    • Попробуйте установить ControllerMode = dual, но дополнительно измените другие параметры, такие как MultiProfile и FastConnectable. Убедитесь, что оба этих значения установлены. Это может помочь улучшить совместимость с несколькими устройствами.
  3. Использование скрипта для автоматического переподключения:

    • Хотя это не идеальное решение, создание скрипта для автоматического отключения и включения клавиатуры может помочь:
      #!/bin/bash
      mac="dc:46:28:46:68:b9" # Подставьте MAC-адрес вашей клавиатуры
      bluetoothctl disconnect $mac
      sleep 2
      bluetoothctl connect $mac
    • Сохраните его как reconnect.sh, сделайте исполняемым (chmod +x reconnect.sh) и запустите при необходимости.
  4. Исследование логов системы:

    • Вы указали, что в dmesg есть ошибки с некорректными опкодами (Opcode). Возможно, стоит обратить внимание на эти сообщения. Проверьте, есть ли обновления для прошивки вашего Bluetooth-адаптера. Убедитесь, что драйверы Intel (если это ваш адаптер) обновлены до последней версии.
  5. Изменение параметров энергопотребления:

    • Иногда проблемы с Bluetooth-устройствами могут быть связаны с функциями энергосбережения. Включите или отключите режимы энергосбережения для Bluetooth. Это можно сделать в настройках BIOS или с помощью параметров ядра.

Заключение

Это комплексная проблема, требующая проверки разных аспектов конфигурации системы и оборудования. Важными являются совместимость драйверов, настройки конфигурации Bluetooth и оптимизация параметров энергосбережения. Если ни одно из предложенных решений не поможет, я рекомендую посетить форумы Ubuntu или обратиться в поддержку, где пользователи смогут поделиться своим опытом.

Оцените материал
Добавить комментарий

Капча загружается...