[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