LINUX.ORG.RU

ASUS USB-BT400 - не воспроизводится звук по HSP/HFP

 asus usb-bt400, bcm20702, , ,


0

1

Kubuntu 18.04, Linux 5.4, в графическом интерфейсе подключаю HD 458BT. Через них воспроизводится звук. Если в pavucontrol-qt выбрать профиль HSP/HFP, и попробовать что-то воспроизвести в браузере, то звука нет и счет времени не начинается, а пульса пишет в лог

(50668.102|   3.229) D: [bluetooth] protocol-native.c: Requesting rewind due to end of underrun.
(50668.102|   0.000) D: [bluetooth] sink-input.c: Requesting rewind due to uncorking
(50668.102|   0.000) D: [pulseaudio] module-suspend-on-idle.c: Sink bluez_sink.00_1B_66_D2_1B_97.headset_head_unit becomes busy, resuming.
Если в vlc включить видео, оно идет без звука и Requesting rewind due to end of underrun. повторяется.

hateWin himmelcross Waldo-de-Kard

$ dmesg | grep -i 'blue'
[    6.471161] Bluetooth: Core ver 2.22
[    6.471176] Bluetooth: HCI device and connection manager initialized
[    6.471179] Bluetooth: HCI socket layer initialized
[    6.471181] Bluetooth: L2CAP socket layer initialized
[    6.471184] Bluetooth: SCO socket layer initialized
[    6.595032] Bluetooth: hci0: BCM: chip id 63
[    6.596788] Bluetooth: hci0: BCM: features 0x07
[    6.614900] Bluetooth: hci0: BCM20702A
[    6.616804] Bluetooth: hci0: BCM20702A1 (001.002.014) build 0000
[    6.622245] bluetooth hci0: Direct firmware load for brcm/BCM20702A1-0b05-17cb.hcd failed with error -2
[    6.622247] Bluetooth: hci0: BCM: Patch brcm/BCM20702A1-0b05-17cb.hcd not found
[    8.164948] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[    8.164949] Bluetooth: BNEP filters: protocol multicast
[    8.164953] Bluetooth: BNEP socket layer initialized
[   49.441802] Bluetooth: RFCOMM TTY layer initialized
[   49.441810] Bluetooth: RFCOMM socket layer initialized
[   49.441817] Bluetooth: RFCOMM ver 1.11
[48233.297847] Bluetooth: hci0: BCM: chip id 63
[48233.300850] Bluetooth: hci0: BCM: features 0x07
[48233.318848] Bluetooth: hci0: ryzen
[48233.320883] Bluetooth: hci0: BCM20702A1 (001.002.014) build 0000
[48233.325891] bluetooth hci0: Direct firmware load for brcm/BCM20702A1-0b05-17cb.hcd failed with error -2
[48233.325895] Bluetooth: hci0: BCM: Patch brcm/BCM20702A1-0b05-17cb.hcd not found
$ lsusb 
Bus 006 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 006: ID 0c45:8603 Microdia 
Bus 001 Device 007: ID 1a40:0101 Terminus Technology Inc. Hub
Bus 001 Device 005: ID 1a40:0101 Terminus Technology Inc. Hub
Bus 001 Device 004: ID 062a:4101 Creative Labs Wireless Keyboard/Mouse
Bus 001 Device 002: ID 0b05:17cb ASUSTek Computer, Inc. Broadcom BCM20702A0 Bluetooth
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
$ pacmd list-sinks
...
  * index: 3
   name: <bluez_sink.00_1B_66_D2_1B_97.headset_head_unit>
   driver: <module-bluez5-device.c>
   flags: HARDWARE HW_VOLUME_CTRL LATENCY 
   state: RUNNING
   suspend cause: 
   priority: 9950
   volume: mono: 52429 /  80%
           balance 0.00
   base volume: 65536 / 100%
   volume steps: 16
   muted: no
   current latency: 37.00 ms
   max request: 0 KiB
   max rewind: 0 KiB
   monitor source: 4
   sample spec: s16le 1ch 8000Hz
   channel map: mono
                Mono
   used by: 1
   linked by: 2
   fixed latency: 28.00 ms
   card: 2 <bluez_card.00_1B_66_D2_1B_97>
   module: 25
   properties:
     bluetooth.protocol = "headset_head_unit"
     device.intended_roles = "phone"
     device.description = "HD 458BT"
     device.string = "00:1B:66:D2:1B:97"
     device.api = "bluez"
     device.class = "sound"
     device.bus = "bluetooth"
     device.form_factor = "headphone"
     bluez.path = "/org/bluez/hci0/dev_00_1B_66_D2_1B_97"
     bluez.class = "0x240418"
     bluez.alias = "HD 458BT"
     device.icon_name = "audio-headphones-bluetooth"
   ports:
     headphone-output: Headphone (priority 0, latency offset 0 usec, available: unknown)
        properties:

   active port: <headphone-output>

$ pacmd list-sources
...
  * index: 5
   name: <bluez_source.00_1B_66_D2_1B_97.headset_head_unit>
   driver: <module-bluez5-device.c>
   flags: HARDWARE HW_VOLUME_CTRL LATENCY 
   state: SUSPENDED
   suspend cause: IDLE 
   priority: 9950
   volume: mono: 65536 / 100%
           balance 0.00
   base volume: 65536 / 100%
   volume steps: 16
   muted: no
   current latency: 0.00 ms
   max rewind: 0 KiB
   sample spec: s16le 1ch 8000Hz
   channel map: mono
                Mono
   used by: 0
   linked by: 0
   fixed latency: 28.00 ms
   card: 2 <bluez_card.00_1B_66_D2_1B_97>
   module: 25
   properties:
     bluetooth.protocol = "headset_head_unit"
     device.intended_roles = "phone"
     device.description = "HD 458BT"
     device.string = "00:1B:66:D2:1B:97"
     device.api = "bluez"
     device.class = "sound"
     device.bus = "bluetooth"
     device.form_factor = "headphone"
     bluez.path = "/org/bluez/hci0/dev_00_1B_66_D2_1B_97"
     bluez.class = "0x240418"
     bluez.alias = "HD 458BT"
     device.icon_name = "audio-headphones-bluetooth"
   ports:
     headphone-input: Bluetooth Input (priority 0, latency offset 0 usec, available: unknown)
        properties:

   active port: <headphone-input>

$ pacmd list-cards
3 card(s) available.
...
    index: 2
   name: <bluez_card.00_1B_66_D2_1B_97>
   driver: <module-bluez5-device.c>
   owner module: 25
   properties:
     device.description = "HD 458BT"
     device.string = "00:1B:66:D2:1B:97"
     device.api = "bluez"
     device.class = "sound"
     device.bus = "bluetooth"
     device.form_factor = "headphone"
     bluez.path = "/org/bluez/hci0/dev_00_1B_66_D2_1B_97"
     bluez.class = "0x240418"
     bluez.alias = "HD 458BT"
     device.icon_name = "audio-headphones-bluetooth"
   profiles:
     headset_head_unit: Headset Head Unit (HSP/HFP) (priority 30, available: unknown)
     a2dp_sink: High Fidelity Playback (A2DP Sink) (priority 40, available: unknown)
     off: Off (priority 0, available: yes)
   active profile: <headset_head_unit>
   sinks:
     bluez_sink.00_1B_66_D2_1B_97.headset_head_unit/#3: HD 458BT
   sources:
     bluez_sink.00_1B_66_D2_1B_97.headset_head_unit.monitor/#4: Monitor of HD 458BT
     bluez_source.00_1B_66_D2_1B_97.headset_head_unit/#5: HD 458BT
   ports:
     headphone-output: Headphone (priority 0, latency offset 0 usec, available: unknown)
        properties:

     headphone-input: Bluetooth Input (priority 0, latency offset 0 usec, available: unknown)
        properties:

UPD

Решение ASUS USB-BT400 - не воспроизводится звук по HSP/HFP (комментарий)

★★★

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

Ответ на: комментарий от d00fy

Заметил. Эта ошибка всегда была, но остальное (A2DP, передача файлов) работало, вот я и следовал принципу «работает - не трожь». А почему этого файла нет в пакете linux-firmware или другом пакете в официальных репозиториях?

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

Сделал чуть по-другому. Скачал дрова для маздая 10 (Версия 12.0.1.710) : DR_USB_BT400_1201710_Windows.zip

cp ./Win10_USB-BT400_Driver_Package/64/BCM20702A1_001.002.014.1443.1467.hex .
hex2hcd BCM20702A1_001.002.014.1443.1467.hex -o BCM20702A1-0b05-17cb.hcd
Создал файл Makefile такого содержания
install:
   cp BCM20702A1-0b05-17cb.hcd /lib/firmware/brcm/
Опакетил эту прошивку
sudo checkinstall
Перезапустил драйвер
sudo modprobe -r btusb
# достал-вставил адаптер
sudo modprobe btusb
sudo systemctl restart bluetooth
Звук появился.

damix9 ★★★
() автор топика

Мне еще потребовалось убрать autodetect_mtu=yes из default.pa и перезапустить пульсу, но этой настройки изначально не было, ее я добавил в процессе тыка.

Помогли инструкции:

https://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/Bluet...

https://wiki.debian.org/BCMHybridBTFirmware#Obtaining_Firmware

Broadcom Bluetooth

Спасибо, superuser.

Пакет bcm20702_1-1_amd64.deb у меня остался.

Оригинальный рабочий файл с прошивкой имеет такой хеш

$ md5sum /lib/firmware/brcm/BCM20702A1-0b05-17cb.hcd
1b03655aae46657cb9f3db56a7438619  /lib/firmware/brcm/BCM20702A1-0b05-17cb.hcd

Ошибка в dmesg больше не появляется.

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