Почему звук, отправленный A2DP, может быть не слышен в Ubuntu 16.04?

Я пытаюсь заставить звук Bluetooth A2DP работать на автомобильной мультимедийной системе (W53850, марка Toyota, 2011) с Ubuntu 16.04.

Аудио работает из Windows или из Ubuntu 14.04, поэтому проблема должна быть связана с Ubuntu 16.04. И это не аппаратная проблема, потому что звук bluetooth работает на том же ноутбуке Ubuntu 16.04, когда я загружаюсь в Windows 10.

Вся процедура настройки выглядит и ощущается совершенно одинаково в Ubuntu 14.04 и Ubuntu 16.04, с той лишь очевидной разницей, что, когда я наконец-то проигрываю звук 16.04, я ничего не слышу от автомобильных динамиков.

Эту процедуру я использую в деталях:

  1. Удалить старые пары из автомобильной мультимедийной системы
  2. Удалить старые пары из Ubuntu

  3. Начните процедуру сопряжения в автомобильной мультимедийной системе.

  4. В Ubuntu в разделе «Настройки Bluetooth» нажмите «+», чтобы получить «Поиск устройства»
  5. Через несколько секунд появится устройство «CAR M_MMEDIA», щелкните по нему.
  6. В разделе «Параметры пинга» выберите правильный штырь (в любом случае это «0000», но просто будьте в безопасности). OK.
  7. Далее. Через секунду я получаю подтверждение «Успешная установка нового устройства« CAR M_MEDIA ». Выход.
  8. В системе автомобиля выйдите из меню« Настройка »(в противном случае звук будет заблокирован).
  9. В звуке Настройки Я выбираю "Handsfree CAR M_MEDIA" в списке "Воспроизвести звук через". Sound settings
  10. Воспроизвести музыку.
  11. Музыкальный проигрыватель показывает прогресс в время воспроизведения - это указывает на то, что проигрыватель эффективно выталкивает данные в импульсный приемник звука.
  12. Звук не слышен.

Диагностика, которую я смог сделать до сих пор

В Ubuntu 14.04 мне удалось обнаружить службы из командной строки:

$ bt-device -s "CAR M_MEDIA"
Discovering services...

[RECORD:65537]
SrvClassIDList: "AudioSink"
ProtocolDescList:
    "L2CAP", 0x19
    "AVDTP", 0x100
BTProfileDescList:
    "AdvAudio", 0x100
SrvName: "Audio Sink"
ProviderName: ""

[RECORD:65538]
SrvClassIDList: "AVRemote"
ProtocolDescList:
    "L2CAP", 0x17
    "AVCTP", 0x102
BTProfileDescList:
    "AVRemote", 0x103
SrvName: "A/V RemoteControl"
ProviderName: ""

Done

Я не могу сделать то же самое в 16.04, потому что все мои два компьютера 16.04 отображают ошибку

$ bt-device -s "CAR M_MEDIA"
Discovering services...
Failed to start SDP discovery. Please make sure you have bluez-utils installed on your system.

, даже если я запускаю bluetoothd в режиме --compat.

Может быть, Ubuntu 14.04 отправляет звук с другой частотой дискретизации (48 кГц, а не 44,1 кГц)? Но я не знаю, как чтобы проверить это.


Вот hcidump из последовательности: a) connect связь с аудиоприемником (автозвук) б) воспроизведение музыки, в) остановка музыки и г) отключение.

Ubuntu 14.04 hcidump (аудио работает)

Ubuntu 16.04 hcidump (аудио не работает)

2
задан 18 November 2017 в 11:29

1 ответ

bluez-utils в настоящее время указан как переходный пакет для trusty (14.04) и в настоящее время недоступен для Xenial (16.04). Исследования показывают, что вам нужен пакет для Xenial bluez-tools.

Одна хитрость заключается в том, что в выпуске bluez-tools v0.2 используется API bluez-5.20. Из-за удаления DiscoverServices в API устройства BlueZ 5 bt-device для обнаружения службы требуется `sdptool '(включен в bluez-utils для 14.04).

Быстрый поиск показывает, что sdptool теперь можно найти в пакете bluez. Похоже, что этот пакет требуется для sdptool на основании сообщения об ошибке:

Не удалось запустить обнаружение SDP. Убедитесь, что в вашей системе установлены bluez-utils.

Мой подход будет следующим:

1) Включить репозиторий юниверсов

2) установить необходимые пакеты

sudo apt install bluez bluez-tools

Примечание: bluez устанавливается по умолчанию, если я не ошибаюсь, поэтому вам может потребоваться

sudo apt-get install --reinstall bluez

3) Вполне возможно, что вам также может потребоваться служба D-Bus для функциональности клиента и сервера OBEX

sudo apt install obex-data-server

Источники:

Сообщение об ошибке в вашем вопросе

https://packages.ubuntu.com/

https://github.com/khvzak/bluez-tools

https://www.synopsys.com/software-integrity/ тестирование безопасности / фазз-тестирование / защита / протоколы / bt-obexs.html

https://en.wikipedia.org/wiki/OBject_EXchange

2
ответ дан 18 November 2017 в 11:29

Другие вопросы по тегам:

Похожие вопросы: