Bluetooth сломался и больше не показывает никаких контроллеров.

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

Хорошо, так что всего пару дней назад я знал, что Bluetooth на моей системе Manjaro работал.
Однако теперь он не работает.

Для начала, он не заблокирован (хотя теперь каждый раз, когда я перезагружаюсь, мне приходится разблокировать его)

 rfkill list all     
0: hci0: Bluetooth
    Soft blocked: no
    Hard blocked: no

bluetoothctl не особо полезен

bluetoothctl      
[bluetooth]# Agent registered
[bluetooth]# show
No default controller available
[bluetooth]# list
[bluetooth]#

Насколько я могу судить, в службе Bluetooth нет реальных проблем

systemctl status bluetooth.service                                                                                  ✔  46s 
● bluetooth.service - Bluetooth service
     Loaded: loaded (/usr/lib/systemd/system/bluetooth.service; enabled; preset: disabled)
     Active: active (running) since Sat 2025-01-18 17:06:16 CET; 9min ago
 Invocation: 71ca38d20a35419da96497ee6313211c
       Docs: man:bluetoothd(8)
   Main PID: 1025 (bluetoothd)
     Status: "Running"
      Tasks: 1 (limit: 37005)
     Memory: 2M (peak: 2.5M)
        CPU: 10ms
     CGroup: /system.slice/bluetooth.service
             └─1025 /usr/lib/bluetooth/bluetoothd

jan 18 17:06:16 munhunger-desktop bluetoothd[1025]: src/plugin.c:init_plugin() System does not support bap plugin
jan 18 17:06:16 munhunger-desktop bluetoothd[1025]: src/plugin.c:init_plugin() System does not support bass plugin
jan 18 17:06:16 munhunger-desktop bluetoothd[1025]: src/plugin.c:init_plugin() System does not support mcp plugin
jan 18 17:06:16 munhunger-desktop bluetoothd[1025]: src/plugin.c:init_plugin() System does not support vcp plugin
jan 18 17:06:16 munhunger-desktop bluetoothd[1025]: profiles/audio/micp.c:micp_init() D-Bus experimental not enabled
jan 18 17:06:16 munhunger-desktop bluetoothd[1025]: src/plugin.c:init_plugin() System does not support micp plugin
jan 18 17:06:16 munhunger-desktop bluetoothd[1025]: src/plugin.c:init_plugin() System does not support ccp plugin
jan 18 17:06:16 munhunger-desktop bluetoothd[1025]: src/plugin.c:init_plugin() System does not support csip plugin
jan 18 17:06:16 munhunger-desktop bluetoothd[1025]: src/plugin.c:init_plugin() System does not support asha plugin
jan 18 17:06:16 munhunger-desktop bluetoothd[1025]: Bluetooth management interface 1.23 initialized

Я получаю что-то в dmesg, но я не совсем понимаю, что это

sudo dmesg | grep  Bluetooth                                                                                                ✔
[    4.025890] usb 1-12: Product: Bluetooth Radio
[    6.248215] Bluetooth: Core ver 2.22
[    6.293760] Bluetooth: HCI device and connection manager initialized
[    6.293765] Bluetooth: HCI socket layer initialized
[    6.293767] Bluetooth: L2CAP socket layer initialized
[    6.293769] Bluetooth: SCO socket layer initialized
[    7.160288] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[    7.160291] Bluetooth: BNEP filters: protocol multicast
[    7.160294] Bluetooth: BNEP socket layer initialized
[    8.460411] Bluetooth: hci0: command 0xfc61 tx timeout
[    8.460419] Bluetooth: hci0: RTL: Failed to generate devcoredump
[    8.460431] Bluetooth: hci0: RTL: RTL: Read reg16 failed (-110)

Что я пробовал сделать, чтобы он заработал снова, так это подключал USB Bluetooth адаптер, который не сработал.

Я также пробовал установить некоторые драйверы (которые мне раньше не были нужны)

yay -S rtl8821ce-dkms-git

Я переустановил все, что связано с bluez

И, конечно, я пробовал перезагрузить, но безуспешно

Чувствую себя довольно глупо, если честно, но после множества попыток я все же решил проблему.

Я наконец нашел это на вики Arch https://wiki.archlinux.org/title/Bluetooth#bluetoothctl:_No_default_controller_available

что в простых словах говорит:
выключите свой компьютер и отключите питание на минуту перед перезапуском.

Не уверен, почему он не нашел мой USB адаптер, но это вероятно отдельная проблема

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

Проблемы с Bluetooth на операционной системе Manjaro могут вызвать разочарование, особенно когда функционал работал буквально несколько дней назад и вдруг перестал. Рассмотрим последовательность шагов и действий, которые помогут выявить и устранить неисправности, связанные с отсутствием контроллеров Bluetooth.

Теория

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

Сначала следует убедиться, что Bluetooth-модуль подключен и не заблокирован. Вывод команды rfkill list all, который показывает "Soft blocked: no" и "Hard blocked: no", подтверждает, что модуль не заблокирован со стороны системы. Это необходимо проверить в первую очередь, поскольку блокировка модулей – распространенная причина проблем с соединением.

Второй важный аспект – это корректная работа служб и демон Bluetooth. Команда systemctl status bluetooth.service показывает, что служба Bluetooth активна и работает. Однако, несмотря на это, bluetoothctl сообщает об отсутствии доступных контроллеров, что указывает на более глубокую проблему.

Пример

Вас может заинтересовать вывод dmesg, где сообщается об ошибках, связанных с устройством hci0: "command 0xfc61 tx timeout", "Failed to generate devcoredump" и "Read reg16 failed (-110)". Эти сообщения свидетельствуют об ошибках на уровне драйверов устройства, что часто связано с некорректной работой аппаратной части или конфликта драйверов.

Одним из популярных решений подобных проблем является очистка кэша питания ноутбуков и настольных ПК. В данном случае, отключение компьютера и его выключение из сети могло помочь удалить остаточные данные в микросхемах, которые могли вызывать сбой. Данное решение предложено на wiki-странице Arch Linux, что демонстрирует его эффективность в практике.

Применение

Теперь, когда мы понимаем возможные причины и решения проблемы, перейдем к практическим шагам:

  1. Отключение питания: Выключите компьютер и отключите его от сети на несколько минут, а затем снова подключите и включите. Это позволяет полностью сбросить состояние аппаратных контроллеров на материнской плате.

  2. Проверка драйверов: Убедитесь, что установлены корректные драйвера для Bluetooth-модуля. Зачастую, проблемы могут проявляться при использовании неправильных или устаревших драйверов. Обновите их при помощи yay -S или аналогичным управляющим пакетом.

  3. Проверка USB-адаптера: Если дополнительные USB-адаптеры не обнаруживаются, убедитесь, что они исправны и совместимы с вашей системой. Проверка совместимости и тестирование на другом устройстве могут выявить аппаратные проблемы.

  4. Конфликт модулей: Ранние версии драйверов или неправильно загружаемые модули могут вступать в конфликт с вашим оборудованием. Попробуйте временно отключить или удалить ненужные модули.

  5. Журналы и диагностика: Используйте команды dmesg и journalctl для более детальной диагностики проблемы. В них могут содержаться подсказки о конфликтах или дополнительных проблемах.

  6. Переустановка пакетов bluez: Попробуйте полностью удалить и переустановить все пакеты, связанные с Bluetooth, чтобы гарантировать, что ни один из них не поврежден.

  7. Проверка аппаратного обеспечения: В редких случаях проблемы могут быть связаны с аппаратными дефектами. Проверка оборудования – последний шаг в цепочке поиска неисправности.

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

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

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