LINUX.ORG.RU

Bluetooth игнорирует все входящие запросы

 , ,


0

3

Одноплатник Orange Pi Zero, операционка Armbian 25.2.0 на базе Ubuntu 24.04 Noble Numbat.

Система чистая консоль, без графической сессии.

Задача - сделать эту плату приемником bluetooth audio.

Проблема: игнорирутся все входящие запросы на bluetooth, то есть я запускаю bluemon или bluetoothctl на плате, пытаюсь подключаться с телефона к этой плате, и не вижу никаких сообщений вообще.

При этом, плата и телефон уже изначально спарены. ВАЖНО! Подключение С платы НА телефон командой connect MAC работает без проблем, все соединяется, звук с телефона начинает играть через плату! А наоборот - bluetooth на плате никак не реагирует, словно никаких запросов снаружи нет!

Что пробовал - повторить то же с Arch Linux на x86 ноутбуке обычном. Все работает, внешние подключения принимаются сразу, bluemon начинает сыпать информацией после нажатия кнопочки на телефоне.

Такое подозрение, что в этом Armbian что-то блокирует все входящие соединения на Bluetooth! Но что? Кто может блокировать? Куда копать?

★★★★

Последнее исправление: James_Holden (всего исправлений: 1)

Настройки надо смотреть. Что-то вроде видимости устройства другим, безопасный режим. Кроме спаренных есть еще доверенные устройства. То есть, доверенное и спаренное работает сразу.

Это всё что сразу приходит на ум. Извини за сумбур )

master_0K
()
Последнее исправление: master_0K (всего исправлений: 2)
Ответ на: комментарий от master_0K

Устройство спарено, доверено.

Настройки блютуща смотрел и сверял с арчем - там просто все конфиги закомментированы и все по дефолту. Именно такой опции, которая блокирует все входящее - вообще не вижу.

Пока думаю что что-то стороннее режет входящие пакеты.

А, и да - по логике, если бы это сам сервис bluetooth был так настроен, он бы писал хоть что-то в отладочные логи, типа «игнорировано». А он ничего не пишет, в логе в отладочном режиме вообще тишина, он тупо не видит что к нему стучатся снаружи.

James_Holden ★★★★
() автор топика
Ответ на: комментарий от anonymous

Не виден снаружи, тоже проблема.

bluetoothctl show показывает что он не спит, на блютуз свистке мигает диод при этом. Хотя это все не факт, надо перепроверить.

Только что-то он очень уж сразу просыпается, если я даю команду connect из bluetoothctl сразу все подключается.

James_Holden ★★★★
() автор топика
Последнее исправление: James_Holden (всего исправлений: 1)
Ответ на: комментарий от master_0K
Controller 00:1A:7D:DA:71:13 (public)
        Manufacturer: 0x000a (10)
        Version: 0x09 (9)
        Name: orangepizero
        Alias: orangepizero
        Class: 0x006c0000 (7077888)
        Powered: yes
        Discoverable: no
        DiscoverableTimeout: 0x000000b4 (180)
        Pairable: yes
        UUID: A/V Remote Control        (0000110e-0000-1000-8000-00805f9b34fb)
        UUID: Handsfree Audio Gateway   (0000111f-0000-1000-8000-00805f9b34fb)
        UUID: PnP Information           (00001200-0000-1000-8000-00805f9b34fb)
        UUID: Audio Sink                (0000110b-0000-1000-8000-00805f9b34fb)
        UUID: Audio Source              (0000110a-0000-1000-8000-00805f9b34fb)
        UUID: A/V Remote Control Target (0000110c-0000-1000-8000-00805f9b34fb)
        UUID: Generic Access Profile    (00001800-0000-1000-8000-00805f9b34fb)
        UUID: Generic Attribute Profile (00001801-0000-1000-8000-00805f9b34fb)
        UUID: Device Information        (0000180a-0000-1000-8000-00805f9b34fb)
        UUID: Handsfree                 (0000111e-0000-1000-8000-00805f9b34fb)
        Modalias: usb:v1D6Bp0246d0548
        Discovering: no
        Roles: central
        Roles: peripheral
Advertising Features:
        ActiveInstances: 0x00 (0)
        SupportedInstances: 0x05 (5)
        SupportedIncludes: tx-power
        SupportedIncludes: appearance
        SupportedIncludes: local-name
James_Holden ★★★★
() автор топика
Ответ на: комментарий от James_Holden

bluetoothctl show показывает что он не спит

Потому что эта команда дергает его и будит. :)

Скорее всего засыпает шина, на которой блютус сидит. Если висит на usb надо запретить или периодически будить/дергать.

anonymous
()
Ответ на: комментарий от anonymous

Так, немного проясняется - я сделал вот что.

Вынул этот usb свисток с одноплатника, и вставил в x86 компьютер с Arch Linux. Такая же картина - снаружи ничего не проходит.

На ноуте со встроенным bluetooth все работает, с такими же настройками на таком же арче.

То есть да, тут видимо проблема либо с состоянием шины USB, либо этот свисток в принципе снаружи не доступен.

James_Holden ★★★★
() автор топика
Ответ на: комментарий от James_Holden

Что за свисток?

В файле /etc/bluetooth/main.conf в разделе [Policy] что в AutoEnable?

Ещё можно использовать отладку сервиса

master_0K
()
Последнее исправление: master_0K (всего исправлений: 2)
Ответ на: комментарий от master_0K

Что за свисток?

0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)

В файле /etc/bluetooth/main.conf в разделе [Policy] что в AutoEnable?

true

подозреваю, что настройки не причем - я уже проверил на одном и том же ноуте, встроенный bluetooth работает нормально, свисток нет.

Отладку сервиса делал - она просто молчит при попытках подключения снаружи.

Сейчас буду пробовать параметр модуля ядра, про который написал анонимус.

James_Holden ★★★★
() автор топика
Ответ на: комментарий от James_Holden

0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)

кажется помню такое. ((

Под этим vid:pid китайцы выпускали множество разных (и не совместимых между собой) «свистков». И периодически линукс поддерживал то один, то другой «свисток». У меня было таких не менее двух. Правда, они либо работали, либо нет. Ну или я был не слишком настойчив.

master_0K
()
Ответ на: комментарий от master_0K

Короче, автосуспенд у модуля ядра и так был выключен

# cat /sys/module/btusb/parameters/enable_autosuspend
N

Видимо это свисток так себя ведет, блин обидно…

Работает он отлично, просто нельзя подключиться к нему, только с него! После этого он принимает аудио без проблем, но я же не буду лазить в консоль одноплатника по ssh каждый раз, чтобы музыку послушать.

James_Holden ★★★★
() автор топика
Ответ на: комментарий от master_0K

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

James_Holden ★★★★
() автор топика
Ответ на: комментарий от James_Holden

Для них это обычное дело: это выбрасываем и так сойдёт. Что они там этим сэкономили?

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

«костылить» обходной канал связи

master_0K
()
Последнее исправление: master_0K (всего исправлений: 1)
Ответ на: комментарий от anonymous
Bus=01 Lev=02 Prnt=02 Port=01 Cnt=01 Dev#=  5 Spd=12   MxCh= 0
D:  Ver= 2.00 Cls=e0(wlcon) Sub=01 Prot=01 MxPS=64 #Cfgs=  1
P:  Vendor=0a12 ProdID=0001 Rev=88.91
S:  Product=BT DONGLE10
C:  #Ifs= 2 Cfg#= 1 Atr=a0 MxPwr=100mA
I:  If#= 0 Alt= 0 #EPs= 3 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
E:  Ad=02(O) Atr=02(Bulk) MxPS=  64 Ivl=0ms
E:  Ad=81(I) Atr=03(Int.) MxPS=  16 Ivl=1ms
E:  Ad=82(I) Atr=02(Bulk) MxPS=  64 Ivl=0ms
I:  If#= 1 Alt= 0 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
E:  Ad=03(O) Atr=01(Isoc) MxPS=   0 Ivl=1ms
E:  Ad=83(I) Atr=01(Isoc) MxPS=   0 Ivl=1ms
James_Holden ★★★★
() автор топика
Ответ на: комментарий от James_Holden

Вендор специфичное это и есть firmware. Обычно без него «тыква». Есть конечно всякие "realtek"и, но в линуксе это треш безнадёжный. Посмотри в journalctl или dmesg – думаю шанс на что-то отличное от btusb и firmware ничтожные доли процента для USB-«свистков».

master_0K
()
Ответ на: комментарий от imatveev13

Это не то, агент тут не причем, устройства уже спарены.

Агент там по умолчанию запущен и работает в bluetoothctl даже без дополнительных команд.

James_Holden ★★★★
() автор топика
Последнее исправление: James_Holden (всего исправлений: 1)
Ответ на: комментарий от James_Holden

Агент нужен только для того чтобы спарить же

Полностью случай не расследовал. GUI blueman-manager говорил что устройства спарены, но не работало. Увидел в journalctl попытки dbus обращений к агенту, прочитал что bluetoothctl это может. Сделал, заработало.

imatveev13
()
Ответ на: комментарий от James_Holden

Наверно так и было. Вот как выглядели ошибки:

Jan 25 15:55:20 debian blueman-manager[1425824]: blueman-manager 15.55.20 WARNING  ManagerDeviceMenu:145 fail      : fail g-dbus-error-quark: GDBus.Error:org>
Jan 25 15:55:20 debian blueman-manager[1425824]:  (0)
Jan 25 15:55:24 debian bluetoothd[3008588]: src/device.c:new_auth() No agent available for request type 2
Jan 25 15:55:24 debian bluetoothd[3008588]: device_confirm_passkey: Operation not permitted
Jan 25 15:55:24 debian bluetoothd[3008588]: profiles/audio/avdtp.c:avdtp_connect_cb() connect to 9C:E9:51:6D:19:D8: Permission denied (13)
Jan 25 15:56:50 debian bluetoothd[3008588]: src/device.c:new_auth() No agent available for request type 2
Jan 25 15:56:50 debian bluetoothd[3008588]: device_confirm_passkey: Operation not permitted
Jan 25 15:56:50 debian bluetoothd[3008588]: src/profile.c:ext_connect() Hands-Free unit failed connect to 9C:E9:51:6D:19:D8: Connection refused (111)
Jan 25 15:56:50 debian bluetoothd[3008588]: profiles/audio/avdtp.c:avdtp_connect_cb() connect to 9C:E9:51:6D:19:D8: Connection reset by peer (104)
Jan 25 15:56:50 debian blueman-manager[1425824]: blueman-manager 15.56.50 WARNING  ManagerDeviceMenu:145 fail      : fail g-dbus-error-quark: GDBus.Error:org>
Jan 25 15:56:50 debian blueman-manager[1425824]:  (0)
Jan 25 15:56:54 debian bluetoothd[3008588]: src/device.c:new_auth() No agent available for request type 2
Jan 25 15:56:54 debian bluetoothd[3008588]: device_confirm_passkey: Operation not permitted
Jan 25 15:56:55 debian bluetoothd[3008588]: profiles/audio/avdtp.c:avdtp_connect_cb() connect to 9C:E9:51:6D:19:D8: Permission denied (13)

imatveev13
()