[Hardware] Linux bluetooth audio gateway

Михаил Плужников mike.almateia на gmail.com
Чт Июн 23 15:14:20 UTC 2011


В сообщении от 22 июня 2011 08:57:16 автор Anton Farygin написал:
> Миша, есть такая ссылка, где собраны разные методы:
> http://ubuntuforums.org/showthread.php?t=1464189
> 
> Если вдруг получится, опиши пожалуйста как сделал - тоже интересно.
> 
> 21.06.2011 17:48, Михаил Плужников пишет:
> > Приветствую.
> > Имеется задачка, сделать из стационарного компьютера bluetooth-наушники,
> > что бы можно было транслировать на него аудио поток с плеера по
> > blutooth.
> > 
> > Пока, после экспериментов, не удалось продвинуться дальше эмуляции HSP на
> > PC, т.е. плеер видит компьютер как обычный комп, а не handset устройство
> > с пофилем a2dp.
> > 
> > Может у кого то была такая задача и её решил?
> > Помогие, советом или куда копать.
> > 
> > В аттаче конфиги из /etc/bluetooth
> > 
Сделал.
Твоя ссылка помогла, но для себя так и не прояснил, как это всё хозяйство работает.

Оказалось, что наше ядро/bluez "не понимает" некоторые bluetooth-usb донглы т.е. проброс 
audio на них не работает, а в 39-м ядре такие устройства вообще не работают.  
Следовательно, для начала надо найти "правильный" рабочий bluetooth донгл.

Сначала, я полагал, что необходимо эмулировать компьютер для других устройств как 
гарнитуру или мультимедиа устройство, игрался с DeviceID и DeviceClass,  прочитав как их 
необходимо генерировать. Использовал sdptool для регистрации профилей на устройстве. 
В результате компьютер начал видеться как наушники, но не работало всё равно.

После прочтения ссылки, решил попробовать их рецепт.
Вообще у нас много чего уже сделано, достаточно поставить pulseaudio, pulseaudio-bluez, 
bluez-alsa, прописать в /etc/bluetooth/audio.conf Enable=Source (с Enable=Sink не 
получилось) и перезапустить сервис bluetoothd. 

Теперь плеер должен видеть компьютер как мультимедиа устройство, с AudioGateway сервисом, 
можно спайрить устройства и подключить плеер. Однако, есть проблема, pilseaudio не 
пробрасывает новый audio source на стандартный audio sink (alsa-вывод на звуковую карту), 
что необходимо сделать руками:
1. Ищем наш bluetooth source: pacmd list source | grep bluez_source, затем находим и 
копируем строчку вида "bluez_source.XX_XX_XX_XX_XX_XX"
2. Тоже самое, только sink: pacmd list sink | grep sink, находим и скопируем строчку вида 
"alsa_output.pci-0000_00_05.0.analog-stereo", т.е. наш используемый для вывода audio sink.
3. Соединяем потоки: pacmd load module-loop source=bluez_source.XX_XX_XX_XX_XX_XX 
sink=alsa_output.pci-0000_00_05.0.analog-stereo
4. Можно слушать музыку

Если кто знает как заставить pulseaudio автоматом роутить новый source на выход - 
объясните.
Можно не использовать pulseaudio, только тогда придётся самому прописывать линки в 
asoundrc.





Подробная информация о списке рассылки Hardware