From: Tanu Kaskinen <tanuk@iki.fi>
To: "Tőkés Attila" <attitokes@gmail.com>, linux-bluetooth@vger.kernel.org
Subject: Re: Raspberry Pi 3 / BCM43438 + HSP profile + PulseAudio
Date: Sat, 20 Jan 2018 22:06:35 +0200 [thread overview]
Message-ID: <1516478795.11220.8.camel@iki.fi> (raw)
In-Reply-To: <CAMoM21GBuUJu=JDOyJc+dgNHccMw=ckwRYtMwJP-j0xuXE-pDQ@mail.gmail.com>
On Sat, 2018-01-20 at 10:35 +0200, Tőkés Attila wrote:
> Hi Everyone,
>
> I'm trying to use a Bluetooth speaker with Raspberry Pi 3 in HSP mode
> with PulseAudio.
>
> Based on the information I found on the web (blogs / forums / mailing
> list archives), apparently, HSP does not really works with the
> Rasberry Pi's built in BCM43438 chip. I didn't found the exact reason
> yet. Some people suggest it may be a problem with the BCM43438
> firmware or with the kernel driver. A2DP, and HSP with USB Bluetooth
> dongles are reported to be working fine. (The most complete
> description I found about the problem is:
> http://youness.net/raspberry-pi/bluetooth-headset-raspberry-pi-3-ad2p-hsp)
>
> I think it would be useful to get clear picture about the problem. And
> maybe we could try to fix it.
>
> Does anyone managed to figure out what exactly the problem is?
>
> I started investigating the issue, but didn't got any result yet. I
> didn't had too much experience with the Linux's Bluetooth stack, so
> some help with the further investigation would be useful.
>
> ----
>
> Bellow are some details of my investigation.
>
> Hardware: Raspberry Pi 3 + JBL GO! Bluetooth speaker
>
> Kernel: raspberrypi 4.14.14-v7
> BlueZ: 5.43
> PulseAudio: 11.1
>
> Summary:
> - BCM43438's driver is sucessfuly loaded, it's firmware is uploaded successfully
> - the Bluetooth speaker gets detected and the pairing / connection works fine
> - PulseAudio detects the speaker as a card
> - both the headset_head_unit and a2dp_sink profiles are shown by
> `pacmd list-cards` and can be set with `pacmd set-card-profile`
> - with the a2dp_sink profile, the audio playback works fine (tested
> with `paplay`)
> - with the headset_head_unit profile, `paplay` gets stuck at start a
> no audio is played (`parecord` does the same)
>
> I started booth BlueZ and PulseAudio in debug mode, but found nothing
> obviuosly wrong (at least for me :P) in the logs. Also did a HCI dump.
>
> Linking the following logs (uploaded to PasteBin; they are too long
> inline them):
> - the Blootoothd's log - https://pastebin.com/WC17Ze0r
> - the PlulseAudio's log - https://pastebin.com/jUjqjuhC
> - the output of the PA commands - https://pastebin.com/wvRzdTEx
> - the output of some BL Tools (sdptool / bluetoothctl / hciconfig) -
> https://pastebin.com/Ax7XYr94
> - the HCI dump -https://pastebin.com/zqhqKu57
>
> SCO dump did not managed to get.
>
> I executed the following steps:
> (the steps are marked in the log files too):
> - start Blootoothd
> - start PulseAudio
> - powered on the Bloothooth speaker
> - tried to play some audio
> $ pacmd list cards
> $ pacmd set-card-profile 1 headset_head_unit
> $ paplay -v -d bluez_sink.78_44_05_4B_4F_FF.headset_head_unit
> /tmp/h2g2.ogg (gets stuck)
> $ pacmd set-card-profile 1 a2dp_sink
> $ paplay -v -d bluez_sink.78_44_05_4B_4F_FF.a2dp_sink /tmp/h2g2.ogg (works)
HSP playback getting stuck is a fairly common problem (affecting
multiple bluetooth adapters from different vendors). Solutions for the
problem are known for a few adapters, but not this one. The issue is
documented here (the "HSP problem: the bluetooth sink and source are
created, but no audio is being transmitted" section):
https://www.freedesktop.org/wiki/Software/PulseAudio/Documentation/User/Bluetooth/#index8h3
As you can read there, the underlying problem in the known cases is
either that firmware is missing or the SCO audio routing is wrong in
the adapter. Changing the routing requires (at least in the known
cases) a vendor-specific magic command. I don't know how to figure out
the correct command. On one Broadcom chip this does the trick: "hcitool
cmd 0x3F 0x01C 0x01 0x02 0x00 0x01 0x01", but I don't know how likely
that is to work on a different chip.
--
Tanu
https://liberapay.com/tanuk
https://www.patreon.com/tanuk
next prev parent reply other threads:[~2018-01-20 20:06 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-01-20 8:35 Raspberry Pi 3 / BCM43438 + HSP profile + PulseAudio Tőkés Attila
2018-01-20 10:24 ` Barry Byford
2018-01-20 11:44 ` Tőkés Attila
2018-01-20 20:06 ` Tanu Kaskinen [this message]
2018-01-20 20:39 ` Tőkés Attila
2018-01-20 22:06 ` Tanu Kaskinen
2018-01-21 9:54 ` Tőkés Attila
2018-01-21 12:21 ` Marcel Holtmann
2018-01-21 19:22 ` Attila Tőkés
2018-06-05 19:28 ` Attila Tőkés
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1516478795.11220.8.camel@iki.fi \
--to=tanuk@iki.fi \
--cc=attitokes@gmail.com \
--cc=linux-bluetooth@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).