Перейти к содержимому

Bluetooth-адаптеры

Bridge одновременно транслирует A2DP-аудио на все настроенные колонки. Каждый SBC-поток потребляет ~345 кбит/с Bluetooth-полосы, поэтому выбор адаптера напрямую влияет на стабильность соединений, дальность и количество колонок, которые можно обслуживать с одного контроллера.

КритерийПочему важен
Bluetooth 5.0+4× дальность LE, лучшая coexistence при множественных подключениях
Чипсет с нативной поддержкой btusbPlug-and-play на HAOS без установки драйверов
Firmware в linux-firmwareHAOS не позволяет ставить пакеты — firmware должен быть в ядре
USB 2.0 nano форм-факторЧистый проброс через Proxmox, не мешает соседним портам
A2DP + SBCОбязательно для аудиостриминга
Стабильный reconnectHeadless-система без UI для ручного восстановления

Один Bluetooth-адаптер поддерживает до 7 активных ACL-соединений, но A2DP-стриминг потребляет значительную полосу. Для надёжной работы:

КолонкиРекомендуемое кол-во адаптеров
1–31 адаптер
4–52 адаптера (2–3 колонки на каждый)
6+3+ адаптера, один на 2–3 колонки

Все перечисленные ниже адаптеры используют чипсет Realtek RTL8761B — де-факто стандарт для BT 5.0 USB-донглов на Linux. Драйвер btusb распознаёт их начиная с ядра 5.8, а нужная прошивка (rtl_bt/rtl8761bu_fw.bin) входит в linux-firmware с 2020 года.

ПараметрЗначение
ЧипсетRealtek RTL8761B
Bluetooth5.0 (BR/EDR + LE)
Драйвер Linuxbtusb (ядро ≥ 5.8)
USB ID2357:0604
Дальность~20 м (Class 1.5)
Цена~$12–15 / ~1000–1500 ₽

Самый протестированный BT 5.0 nano-донгл на Linux. Firmware включён в каждый современный linux-firmware, HAOS подхватывает адаптер сразу после USB-проброса.

ПараметрЗначение
ЧипсетRealtek RTL8761B
Bluetooth5.0 (BR/EDR + LE)
Драйвер Linuxbtusb (ядро ≥ 5.14 по USB ID)
USB ID0b05:190e
Дальность~10 м (Classic / A2DP)
Цена~$15–20 / ~1500–2000 ₽

Тот же чипсет RTL8761B в чуть лучше экранированном корпусе ASUS. Более 890 отчётов на linux-hardware.org и хорошая документация в сообществе Home Assistant.

ПараметрЗначение
ЧипсетRealtek RTL8761B
Bluetooth5.0 (BR/EDR + LE)
Дальность~40 м (LE), ~10 м (Classic)
Цена~$19 / ~1800 ₽

Гарантия 2 года и пожизненная техподдержка. Страница продукта заявляет «incompatible with Linux», но лежащий в основе RTL8761B отлично работает через btusb.

ПараметрЗначение
ЧипсетRealtek RTL8761BUV
Bluetooth5.1
Цена~$10–12 / ~900–1200 ₽

Эволюция RTL8761B с BT 5.1 direction finding (не критично для A2DP, но приятный бонус). Совместимый драйвер btusb; может потребоваться более свежая версия linux-firmware для firmware blob.

ПараметрЗначение
ЧипсетRealtek RTL8761B (номинально)
Bluetooth5.0
Цена~$8–10 / ~700–1000 ₽

Самый дешёвый вариант на RTL8761B. Подходит, если нужно купить несколько адаптеров сразу. После получения проверьте USB ID — в некоторых партиях может оказаться другой чипсет.

#МодельЧипсетBTЯдро LinuxЦенаРейтинг
1TP-Link UB500 v1/v2RTL8761B5.0≥ 5.8~$12⭐⭐⭐⭐⭐
2ASUS USB-BT500RTL8761B5.0≥ 5.14~$17⭐⭐⭐⭐⭐
3Plugable USB-BT5RTL8761B5.0≥ 5.8~$19⭐⭐⭐⭐
4EDUP EP-B3536RTL8761BUV5.1≥ 5.8~$11⭐⭐⭐⭐
5Zexmte BT 5.0RTL8761B5.0≥ 5.8~$9⭐⭐⭐

Coexistence USB BT-донгла со встроенным WiFi на Raspberry Pi

Заголовок раздела «Coexistence USB BT-донгла со встроенным WiFi на Raspberry Pi»

Программные обходы регрессий адаптера / BlueZ

Заголовок раздела «Программные обходы регрессий адаптера / BlueZ»

Bridge содержит advanced compatibility tools для конкретных сбоев ядра, BlueZ или PulseAudio. Они находятся в Configuration → Bluetooth → Advanced recovery workarounds и скрыты до включения Advanced compatibility tools на вкладке General. UI блокирует неподдерживаемые текущим хостом механизмы и показывает причину. Подробности — на странице Web UI.

СимптомТоггл
Колонка подключается, но PulseAudio не видит sink (dual-role регрессия BlueZ 5.86, bluez/bluez#1922)EXPERIMENTAL_A2DP_SINK_RECOVERY_DANCE
Sink появляется через раз или только после ручного переподключенияEXPERIMENTAL_PA_MODULE_RELOAD
Весь адаптер замолкает под нагрузкой, и bridge не может его восстановитьEXPERIMENTAL_ADAPTER_AUTO_RECOVERY (rfkill check → MGMT/HCI power-cycle → optional USB reset)
Не получается допарить вторую колонку на одном адаптере, пока первая стримитTemporarily disconnect other speakers в Scan modal
Колонка вообще не отправляет SSP-подтверждение, и bridge ждёт бесконечноNoInputNoOutput pair agent в Scan modal
Multi-profile устройство не завершает pairing без HFP/HSPвключите Authorize HFP/HSP for this pair для одной попытки; playback остаётся A2DP-only

Это точечные обезболивающие — их не нужно включать «на всякий случай». Pairing overrides одноразовые, сбрасываются после каждого запроса, а pairing-агент принимает обращения только от выбранного MAC.

Адаптер / чипсетПроблема
ZEXMTE BT 5.3 Long Range (антенна 180 м, ASIN B0CP5WQ7L8)Детектится, пэйрится, играет — но A2DP music streaming нестабилен (community report, #295)
TP-Link UB500 Plus (BT 5.3 с регулируемой внешней антенной, ASIN B0DHJHMHFS)То же — детектится и пэйрится, A2DP нестабилен. Берите обычный UB500 Nano вместо этого. Community report, #295
CSR8510 A10BT 4.0, ограниченная дальность (~10 м), устаревший чип
Broadcom BCM20702BT 4.0, проблемы с загрузкой firmware на immutable-системах
Qualcomm QCA61x4Требует проприетарный firmware, нестабилен с bluez
TP-Link UB500 v3BT 5.4 с другим чипсетом — совместимость с HAOS не подтверждена
WiFi + BT comboКонфликт с существующим WiFi, сложный USB-проброс
BT 5.2+ LE Audio донглыКодек LC3 пока не поддерживается PulseAudio 17
aptX / Snapdragon Sound transmitters (например Creative BT-W6, B0DG34HRNC)Проприетарный стек; мост стримит строго через A2DP/SBC

Community-датапоинты из #295 (sirs2k, протестировано на HAOS, hci0). Все четыре детектятся и пэйрятся; различает их поведение A2DP music streaming:

ВердиктПродуктASINBTЗаметка
⭐⭐⭐⭐⭐ BestUGREEN 80889 USB Bluetooth 5.0 AdapterB08R8992YC5.0Realtek RTL8761B nano, модель 80889
⭐⭐⭐⭐ GoodTP-Link UB500 Nano (UK Version)B09C25VRXD5.0Та же v1/v2 железка, что и глобальный TP-Link UB500
❌ AvoidTP-Link UB500 Plus (BT 5.3 + внешняя антенна)B0DHJHMHFS5.3Пэйрится и играет, A2DP music нестабилен
❌ AvoidZEXMTE BT 5.3 Long Range (антенна 180 м)B0CP5WQ7L85.3Пэйрится и играет, A2DP music нестабилен

Есть свой датапоинт — модель, ASIN, версия BlueZ, держит ли A2DP под нагрузкой? Пожалуйста, откройте issue — будущие читатели поблагодарят.

Если вы обновляете старые адаптеры CSR8510 A10:

  1. Купите 2× TP-Link UB500 v1/v2 (или любой RTL8761B-донгл из списка выше).
  2. Proxmox: обновите USB device mappings на новые VID:PID.
  3. HAOS: адаптеры подхватятся автоматически (btusb + linux-firmware).
  4. Проверьте bluetoothctl list — должны быть видны два контроллера.
  5. Обновите MAC-адреса адаптеров в конфигурации bridge (hci0 / hci1).
  6. Выполните re-pair для каждой колонки и протестируйте A2DP.
  7. Наблюдайте за стабильностью reconnect в течение 24 часов перед тем, как считать миграцию завершённой.

Типичная конфигурация с двумя адаптерами для 4–5 колонок:

Proxmox Host
├── USB Mapping "Audio" → TP-Link UB500 #1 (hci0) → 2–3 колонки
├── USB Mapping "BT2" → TP-Link UB500 #2 (hci1) → 2 колонки
└── HAOS VM
└── Sendspin BT Bridge
├── BluetoothManager (hci0)
└── BluetoothManager (hci1)

Подробнее о привязке колонок к адаптерам и управлении устройствами — в разделе Устройства и адаптеры.