Dear all, One strange thing I noticed when debugging this issue is even "pactl list sinks|sources short" show Bluetooth's headset sinks|sources properly. However, "arecord -L" shows only my internal microphone (missing Bluetooth's headset). Am I missing something? Or the setup between Pulseaudio and ALSA is not up correctly. Regards, Hieu Le. On Mon, Aug 22, 2016 at 4:08 PM, Hieu Le <hieu.le at veriksystems.com> wrote: > Hello, > Sorry to bring this up again. However, I cannot use pulseaudio 8.0 + > bluez5.38 to record audio from my Bluetooth's microphone. > > - I followed the patch from link below to apply it on top of my embedded's > board which is running 3.14 Linux kernel: > https://lists.freedesktop.org/archives/pulseaudio-discuss/ > 2015-March/023305.html > > I can successfully switch to headset_head_unit (HSP) profile. Below is the > output of sinks|sources and how I choose Bluetooth's microphone as the > default audio source: > > # *pactl list sources short* > *0 alsa_output.0.analog-stereo.monitor module-alsa-sink.c > s16le 2ch 44100Hz IDLE* > *1 alsa_input.0.analog-stereo module-alsa-source.c s16le 2ch > 44100Hz IDLE* > *2 bluez_sink.00_1F_81_34_08_22.monitor module-bluez5-device.c > s16le 1ch 8000Hz IDLE* > *3 bluez_source.00_1F_81_34_08_22 module-bluez5-device.c s16le 1ch > 8000Hz IDLE* > > # *pactl list sinks short* > *0 alsa_output.0.analog-stereo module-alsa-sink.c s16le 2ch > 44100Hz IDLE* > *1 bluez_sink.00_1F_81_34_08_22 module-bluez5-device.c s16le 1ch > 8000Hz IDLE* > > > *# pacmd set-default-source 3* > > Using parecord to capture audio from Bluetooth's microphone: > # *parecord -v -r --channels=1 --file-format=wav > --device=bluez_source.00_1F_81_34_08_22 mm.wav* > > *Opening a recording stream with sample specification 's16le 1ch 44100Hz' > and channel map 'mono'.* > *Connection established.* > *Stream successfully created.* > *Buffer metrics: maxlength=4194304, fragsize=176400* > *Using sample spec 's16le 1ch 44100Hz', channel map 'mono'.* > *Connected to device bluez_source.00_1F_81_34_08_22 (index: 3, suspended: > no).* > *Time: 0.026 sec; Latency: 25844 usec.* > > => In my case, the result is a mm.wav of zero bytes no matter how long I > record. > > The output from pulseaudio's log is: > *I: [pulseaudio] client.c: Created 10 "Native client (UNIX socket client)"* > *D: [pulseaudio] protocol-native.c: Protocol version: remote 30, local 30 > I: [pulseaudio] protocol-native.c: Got credentials: uid=0 gid=0 success=1 > D: [pulseaudio] protocol-native.c: SHM possible: yes D: [pulseaudio] > protocol-native.c: Negotiated SHM: yes D: [pulseaudio] srbchannel.c: SHM > block is 4056 bytes, ringbuffer capacity is 2 * 2004 bytes D: [pulseaudio] > protocol-native.c: Enabling srbchannel... D: [pulseaudio] > module-augment-properties.c: Looking for .desktop file for parecord D: > [pulseaudio] protocol-native.c: Client enabled srbchannel. D: [pulseaudio] > module-stream-restore.c: Not restoring device for stream > source-output-by-application-name:parecord, because already set D: > [pulseaudio] module-intended-roles.c: Not setting device for stream mm.wav, > because already set. D: [pulseaudio] source-output.c: Negotiated format: > pcm, format.sample_format = "\"s16le\"" format.rate = "44100" > format.channels = "1" format.channel_map = "\"mono\"" I: [pulseaudio] > source-output.c: Trying to change sample rate I: [pulseaudio] resampler.c: > Speex appears to be compiled with --enable-fixed-point. Switching to a > fixed-point resampler because it should be faster. D: [pulseaudio] > resampler.c: Resampler: D: [pulseaudio] resampler.c: rate 8000 -> 44100 > (method speex-fixed-1) D: [pulseaudio] resampler.c: format s16le -> s16le > (intermediate s16le) D: [pulseaudio] resampler.c: channels 1 -> 1 > (resampling 1) I: [pulseaudio] speex.c: Choosing speex quality setting 1. > D: [pulseaudio] memblockq.c: memblockq requested: maxlength=33554432, > tlength=0, base=2, prebuf=0, minreq=1 maxrewind=0 D: [pulseaudio] > memblockq.c: memblockq sanitized: maxlength=33554432, tlength=33554432, > base=2, prebuf=0, minreq=2 maxrewind=0 I: [pulseaudio] source-output.c: > Created output 3 "mm.wav" on bluez_source.00_1F_81_34_08_22 with sample > spec s16le 1ch 44100Hz and channel map mono I: [pulseaudio] > source-output.c: media.format = "WAV (Microsoft)" I: [pulseaudio] > source-output.c: application.name <http://application.name> = "parecord" I: > [pulseaudio] source-output.c: media.name <http://media.name> = "mm.wav" I: > [pulseaudio] source-output.c: native-protocol.peer = "UNIX socket client" > I: [pulseaudio] source-output.c: native-protocol.version = "30" I: > [pulseaudio] source-output.c: application.process.id > <http://application.process.id> = "1930" I: [pulseaudio] source-output.c: > application.process.user = "root" I: [pulseaudio] source-output.c: > application.process.host = "OpenWrt" I: [pulseaudio] source-output.c: > application.process.binary = "parecord" I: [pulseaudio] source-output.c: > application.language = "C" I: [pulseaudio] source-output.c: > application.process.machine_id = "fbf61ebdc6bd1c95cd6a1de257baaee6" I: > [pulseaudio] source-output.c: module-stream-restore.id > <http://module-stream-restore.id> = > "source-output-by-application-name:parecord" D: [pulseaudio] memblockq.c: > memblockq requested: maxlength=4194304, tlength=0, base=2, prebuf=1, > minreq=0 maxrewind=0 D: [pulseaudio] memblockq.c: memblockq sanitized: > maxlength=4194304, tlength=4194304, base=2, prebuf=2, minreq=2 maxrewind=0 > I: [pulseaudio] protocol-native.c: Final latency 2000.00 ms = 2000.00 ms + > 0.00 ms D: [pulseaudio] core.c: Hmm, no streams around, trying to vacuum. > I: [pulseaudio] source-output.c: Freeing output 3 "mm.wav" I: [pulseaudio] > client.c: Freed 10 "parecord" I: [pulseaudio] protocol-native.c: Connection > died.* > > It would be great if you can give my any advice or suggestion. > > Regards, > Hieu Le. > > > On Mon, Aug 22, 2016 at 10:14 AM, Hieu Le <hieu.le at veriksystems.com> > wrote: > >> Thanks for your information. Let me try to backport from 3.18. >> >> Regards, >> Hieu Le. >> >> On Sat, Aug 20, 2016 at 7:32 PM, Tanu Kaskinen <tanuk at iki.fi> wrote: >> >>> On Sat, 2016-08-20 at 14:14 +0200, Georg Chini wrote: >>> > On 20.08.2016 13:40, Tanu Kaskinen wrote: >>> > > >>> > > On Fri, 2016-08-19 at 13:57 +0700, Hieu Le wrote: >>> > > > >>> > > > I'm trying to get a SPK-ProHT Bluetooth speaker and headset >>> working on an >>> > > > embedded Linux board but when I failed to use pacmd >>> set-card-profile to >>> > > > choose headset_head_unit profile. Checking pulseaudio lof file, it >>> seems >>> > > > backend-native cannot connect to SCO socket. Sorry this is a very >>> long mail >>> > > > due to debug logs attached >>> > > The problem seems to be that connect() fails with "Protocol not >>> > > supported". This problem has been reported a few times, but I don't >>> > > know how to fix it. It seems like missing functionality in the >>> kernel, >>> > > so my guess is that you're missing some bluetooth related driver. If >>> > > you get it working somehow, please report back how you did it. >>> > > >>> > > The bluez mailing list might be able to help better. >>> > > >>> > Hi, >>> > >>> > I remember there was a kernel problem which prevented some >>> > headsets from working. The bug was introduced in 3.12 and was >>> > fixed in 3.18. >>> > See also >>> > https://lists.freedesktop.org/archives/pulseaudio-discuss/20 >>> 15-March/023298.html >>> >>> Thanks! I added this bit of information here: >>> https://www.freedesktop.org/wiki/Software/PulseAudio/Documen >>> tation/User/Bluetooth/ >>> >>> -- >>> Tanu >>> _______________________________________________ >>> pulseaudio-discuss mailing list >>> pulseaudio-discuss at lists.freedesktop.org >>> https://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss >>> >> >> >> >> -- >> ---- Hieu Le --- >> > > > > -- > ---- Hieu Le --- > -- ---- Hieu Le --- -------------- next part -------------- An HTML attachment was scrubbed... URL: <https://lists.freedesktop.org/archives/pulseaudio-discuss/attachments/20160823/66a3b585/attachment-0001.html>