Вопрос или проблема
У меня проблема с новыми Bluetooth-наушниками (HONOR CHOICE Open-Ear Earbuds). Я могу подключить их к своему компьютеру с Ubuntu 24.10 (это настольный компьютер с Bluetooth-адаптером), после чего они работают нормально, пока я не перезагружу компьютер (или не перезапущу службу bluetooth
), после чего они не могут подключиться. С моими предыдущими Bluetooth-наушниками этого не было, они работали на Ubuntu без проблем.
Единственный способ подключить наушники после перезагрузки — это пройти через процесс, похожий на новое сопряжение: после некоторых манипуляций (выключение и включение наушников или адаптера, повторные попытки подключения) Ubuntu просит меня подтвердить 6-значный код, и после нажатия «Подтвердить» наушники снова работают. (Кстати, это требование 6-значного кода странно само по себе: предыдущие наушники не требовали его, и наушники не могут отображать код, так что я на самом деле не сравниваю этот код ни с чем.)
После этой процедуры LinkKey
в /var/lib/bluetooth/XX:XX:XX:XX:XX:XX/XX:XX:XX:XX:XX:XX/info
меняется; кроме того, программа Bluetooth Manager, которую я установил (blueman
пакет), показывает тот же код в уведомлении с заголовком «Запрос на сопряжение Bluetooth». Это дает мне достаточно оснований считать, что это, действительно, другое сопряжение.
Эта проблема специфична для Ubuntu: она не возникает при установке Windows 11 на том же компьютере, которая без проблем повторно подключается после перезагрузки. (Обратите внимание, что это не проблема с необходимостью синхронизировать ключ Bluetooth между двумя разными ОС в случае двойной загрузки: здесь я соединяю наушники с Ubuntu, а затем снова перезагружаюсь в Ubuntu, не касаясь Windows. Я упоминаю Windows, чтобы сузить проблему до Ubuntu, а не наушников или аппаратного обеспечения ПК.)
Если я пытаюсь подключиться к наушникам через командную строку, то получаю следующее сообщение об ошибке (я закрыл адрес устройства):
$ bluetoothctl connect XX:XX:XX:XX:XX:XX
Попытка подключения к XX:XX:XX:XX:XX:XX
[CHG] Устройство XX:XX:XX:XX:XX:XX Подключено: да
Не удалось подключиться: org.bluez.Error.Failed br-connection-unknown
Как я могу решить эту проблему?
ИЗМЕНЕНИЕ: Я обнаружил инструмент btmon
, который, похоже, выводит полный след Bluetooth-сообщений, передаваемых между компьютером и устройствами, с которыми он взаимодействует.
В трассировке неудачной попытки подключения я нашел следующий обмен:
> Событие HCI: Запрос ключа связи (0x17) plen 6 #55 [hci0] 13.039915
Адрес: XX:XX:XX:XX:XX:XX (Tiinlab Corporation)
< Команда HCI: Отрицательный ответ на запрос ключа связи (0x01|0x000c) plen 6 #56 [hci0] 13.039939
Адрес: XX:XX:XX:XX:XX:XX (Tiinlab Corporation)
Вот соответствующая часть трассировки успешной попытки подключения (после сопряжения и перед перезагрузкой):
> Событие HCI: Запрос ключа связи (0x17) plen 6 #34 [hci0] 13.524821
Адрес: XX:XX:XX:XX:XX:XX (Tiinlab Corporation)
< Команда HCI: Ответ на запрос ключа связи (0x01|0x000b) plen 22 #35 [hci0] 13.524834
Адрес: XX:XX:XX:XX:XX:XX (Tiinlab Corporation)
Ключ связи[16]: xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Похоже, что Ubuntu не запоминает, что у него есть ключ связи для устройства после перезапуска службы bluetooth
.
Ответ или решение
Проблема с постоянным повторным сопряжением Bluetooth-ушных наушников на Ubuntu
Ситуация, которую вы описываете с Bluetooth-ушными наушниками HONOR CHOICE Open-Ear Earbuds на Ubuntu 24.10, действительно может вызывать беспокойство. Проблема заключается в том, что наушники требуют повторного сопряжения после каждой перезагрузки компьютера, несмотря на то, что наушники были успешно сопряжены до этого. Рассмотрим возможные причины этой проблемы и пути ее решения.
1. Проблемы с сохранением ключа связывания
Как вы правильно заметили, после перезагрузки система не распознает ключ связывания (LinkKey) для ваших наушников. Это может произойти по нескольким причинам:
-
Неправильное сохранение конфигурации Bluetooth: Иногда системные изменения или конфликты программного обеспечения могут привести к тому, что информация о сопряженных устройствах не сохраняется должным образом.
-
Ошибка в драйверах Bluetooth: Возможно, используемый драйвер для вашего Bluetooth-USB-адаптера или модуль BlueZ, который отвечает за управление Bluetooth-устройствами, имеет баги, которые препятствуют правильному сохранению настроек.
2. Различия в реализации Bluetooth между ОС
Вы упомянули, что данная проблема не наблюдается на Windows 11. Это может говорить о том, что Bluetooth-стек в Windows функционирует иначе, чем в Ubuntu. Стек BlueZ в Linux отличается в своей реализации и может требовать дополнительных настроек для совместимости с вашими наушниками.
3. Анализ с использованием btmon
Использование утилиты btmon
позволяет получить детализированный вывод обмена данными Bluetooth. Вы заметили, что после перезагрузки устройство предлагает ответить на запрос Link Key Request отрицательным ответом. Это подтверждает предположение, что система не хранит Link Key для дальнейшего использования.
Рекомендации по устранению проблемы
На основе вышеописанного, вот несколько шагов, которые могут помочь в решении проблемы:
-
Обновление системы и драйверов:
- Убедитесь, что все компоненты вашего Ubuntu, включая ядро и драйвера для Bluetooth, обновлены до последней версии. Команда
sudo apt update && sudo apt upgrade
поможет с этим. - Проверьте наличие обновлений для BlueZ, используя
sudo apt install --only-upgrade bluez
.
- Убедитесь, что все компоненты вашего Ubuntu, включая ядро и драйвера для Bluetooth, обновлены до последней версии. Команда
-
Проверьте конфигурацию Bluetooth:
- Откройте файл конфигурации Bluetooth, который обычно расположен в
/etc/bluetooth/main.conf
. Попробуйте внести изменения, например, указываяAutoEnable=true
, чтобы автоматически включать устройства при перезагрузке.
- Откройте файл конфигурации Bluetooth, который обычно расположен в
-
Используйте альтернативное программное обеспечение управления Bluetooth:
- Более продвинутая утилита, такая как
blueman
, может иногда помочь в управлении Bluetooth-соединениями более эффективно. Если вы еще не пробовали, установитеblueman
и протестируйте процесс сопряжения через него.
- Более продвинутая утилита, такая как
-
Посмотреть логи системы:
- Для дальнейшего анализа проблемы просмотрите логи системы, связанные с Bluetooth, используя команды типа
journalctl -xe | grep bluetooth
. Это может дать дополнительную информацию о происходящих процессах во время соединения.
- Для дальнейшего анализа проблемы просмотрите логи системы, связанные с Bluetooth, используя команды типа
-
Обратитесь к сообществу:
- Если перечисленные шаги не дают результата, можно обратиться на форумы Linux-сообществ, такие как Ubuntu Forums или Ask Ubuntu, где другие пользователи могут иметь подобный опыт и решение.
Заключение
Проблема с повторным сопряжением Bluetooth-наушников в Ubuntu требует внимания и различных подходов для ее решения. Следуя вышеперечисленным рекомендациям и продолжая исследовать через btmon
, вы можете найти оптимальное решение для стабильного подключения наушников после перезагрузки системы. Успехов вам в решении этой проблемы!