Вопрос или проблема
Хорошо, так что всего пару дней назад я знал, что 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, что демонстрирует его эффективность в практике.
Применение
Теперь, когда мы понимаем возможные причины и решения проблемы, перейдем к практическим шагам:
-
Отключение питания: Выключите компьютер и отключите его от сети на несколько минут, а затем снова подключите и включите. Это позволяет полностью сбросить состояние аппаратных контроллеров на материнской плате.
-
Проверка драйверов: Убедитесь, что установлены корректные драйвера для Bluetooth-модуля. Зачастую, проблемы могут проявляться при использовании неправильных или устаревших драйверов. Обновите их при помощи
yay -S
или аналогичным управляющим пакетом. -
Проверка USB-адаптера: Если дополнительные USB-адаптеры не обнаруживаются, убедитесь, что они исправны и совместимы с вашей системой. Проверка совместимости и тестирование на другом устройстве могут выявить аппаратные проблемы.
-
Конфликт модулей: Ранние версии драйверов или неправильно загружаемые модули могут вступать в конфликт с вашим оборудованием. Попробуйте временно отключить или удалить ненужные модули.
-
Журналы и диагностика: Используйте команды
dmesg
иjournalctl
для более детальной диагностики проблемы. В них могут содержаться подсказки о конфликтах или дополнительных проблемах. -
Переустановка пакетов bluez: Попробуйте полностью удалить и переустановить все пакеты, связанные с Bluetooth, чтобы гарантировать, что ни один из них не поврежден.
-
Проверка аппаратного обеспечения: В редких случаях проблемы могут быть связаны с аппаратными дефектами. Проверка оборудования – последний шаг в цепочке поиска неисправности.
В конечном итоге, системный подход включает в себя тщательную проверку всех возможных аспектов проблемы, начиная с программных решений и заканчивая аппаратной диагностикой. Такой подход обеспечит вам уверенность в том, что все шаги для диагностики и устранения проблемы были предприняты, а ваш Bluetooth вернется в рабочее состояние.