Я пытаюсь заставить звук 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, я ничего не слышу от автомобильных динамиков.
Эту процедуру я использую в деталях:
Удалить старые пары из Ubuntu
Начните процедуру сопряжения в автомобильной мультимедийной системе.
В 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 связь с аудиоприемником (автозвук) б) воспроизведение музыки, в) остановка музыки и г) отключение.
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
Источники:
Сообщение об ошибке в вашем вопросе