[pulseaudio-discuss] Arduino Tian issue changing card profile to A2DP with bluetooth headset

Mimmo mimmo at linino.org
Wed Sep 30 02:52:55 PDT 2015



On 30/09/15 11:21, Tanu Kaskinen wrote:
> On Wed, 2015-09-30 at 10:20 +0200, Mimmo wrote:
>> Arduino Tian (an evolution of Arduino Yun) is a board that has a MIPS
>> processor where Linux is runinng. The distribution used is Linino,
>> derived from openWRT.
>>
>> On this board Wifi from Qualcomm and Bluetooth from CSR are embedded.
>>
>> Software version details:
>> - kernel 3.18.11
>> - bluez5 version 5.23
>> - pulseaudio 6.0
>> - dbus 1.9
>>
>> The Headset device is properly connected but using paplay:
>>
>> root at linino:~# paplay -v -d bluez_sink.5D_43_5A_03_31_EA /root/sample.wav
>> Opening a playback stream with sample specification 's16be 2ch 44100Hz'
>> and channel map 'front-left,front-right'.
>> Connection established.
>> Stream successfully created.
>> Buffer metrics: maxlength=4194304, tlength=352800, prebuf=349276,
>> minreq=3528
>> Using sample spec 's16be 2ch 44100Hz', channel map 'front-left,front-right'.
>> Connected to device bluez_sink.5D_43_5A_03_31_EA (index: 1, suspended: no).
>>
>> it start to play the music but without any sound. Trying to change the
>> card profile from HSP to A2DP with the command:
>>
>> pactl set-card-profile 0, a2dp_sink
>>
>> hangs the board and exit with connection failure: Timeout
> Hangs the board? What does that mean? If pactl prints something after
> the hang, apparently not the whole board gets hung (unless pactl runs
> on a different machine).
It means that pactl exit after 10 secs but the pulseaudio process runs 
at 90-99% of the cpu, and I need to restart the pulseaudio process to 
continue to use the board.
>
>> trying to trace the code, I noticed that it stops on the call
>> stop_thread on module-bluez5-device.c
> How did you trace the code? Can you check with gdb where it's stopping?
I used strace to understand what system call did, and then I put so log 
messages. I'll try using gdb and let you know.
>> Can you help me to understand why is hanging changing the profile?
>>
>> Is it possible to force the default to A2DP instead of HSP?
> "pactl set-card-profile" should save the chosen profile so that later
> on a2dp would get activated automatically. However, the code hangs
> before the new profile preference gets written to the disk... You could
> in theory hack the card-database file in ~/.config/pulse, but it's
> binary data, so not exactly easy.
>



More information about the pulseaudio-discuss mailing list