Вопрос или проблема
У меня самая странная проблема с 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 и клавиатуры, но клавиатура не подключается после пробуждения.
Возможные решения
-
Проверка совместимости оборудования и драйверов:
- Убедитесь, что используемая версия BlueZ и ядро актуальны. Вы указали, что у вас версия BlueZ 5.72 и ядро 6.8.0. Если возможно, рассмотрите обновление до более новой версии или попробуйте перевести систему на более стабильную версию драйверов.
-
Изменение конфигурации Bluetooth:
- Попробуйте установить
ControllerMode = dual
, но дополнительно измените другие параметры, такие какMultiProfile
иFastConnectable
. Убедитесь, что оба этих значения установлены. Это может помочь улучшить совместимость с несколькими устройствами.
- Попробуйте установить
-
Использование скрипта для автоматического переподключения:
- Хотя это не идеальное решение, создание скрипта для автоматического отключения и включения клавиатуры может помочь:
#!/bin/bash mac="dc:46:28:46:68:b9" # Подставьте MAC-адрес вашей клавиатуры bluetoothctl disconnect $mac sleep 2 bluetoothctl connect $mac
- Сохраните его как
reconnect.sh
, сделайте исполняемым (chmod +x reconnect.sh
) и запустите при необходимости.
- Хотя это не идеальное решение, создание скрипта для автоматического отключения и включения клавиатуры может помочь:
-
Исследование логов системы:
- Вы указали, что в
dmesg
есть ошибки с некорректными опкодами (Opcode). Возможно, стоит обратить внимание на эти сообщения. Проверьте, есть ли обновления для прошивки вашего Bluetooth-адаптера. Убедитесь, что драйверы Intel (если это ваш адаптер) обновлены до последней версии.
- Вы указали, что в
-
Изменение параметров энергопотребления:
- Иногда проблемы с Bluetooth-устройствами могут быть связаны с функциями энергосбережения. Включите или отключите режимы энергосбережения для Bluetooth. Это можно сделать в настройках BIOS или с помощью параметров ядра.
Заключение
Это комплексная проблема, требующая проверки разных аспектов конфигурации системы и оборудования. Важными являются совместимость драйверов, настройки конфигурации Bluetooth и оптимизация параметров энергосбережения. Если ни одно из предложенных решений не поможет, я рекомендую посетить форумы Ubuntu или обратиться в поддержку, где пользователи смогут поделиться своим опытом.