frosch03.de/posts/2016-11-06-Bluetooth-Headset-and-Pulseaudio
Bluetooth headset and pulseaudio
Ok, so this Sunday I had a problem. I was going to make some cake and while I was baking, I wanted to listen to some music via my wireless headset. But turns out, I never did the set up with my new laptop. So before I need to surf the web for this topic again, I write the steps down this time. :)
Setup the basics
Ok, so first of all you need to install the bluetooth libraries bluez
and bluez-utils
. This is done with pacman via
{% highlight bash %} sudo pacman -Suy bluez bluez-utils {% endhighlight %}
After that, the btusb
module must be loaded into the kernel by:
{% highlight bash %} modprobe btusb {% endhighlight %}
Last but not least the bluetooth service must be loaded. So lets do that via:
{% highlight bash %} sudo systemctl start bluetooth {% endhighlight %}
If yoeveningke to permanently enable the service you can do this with
systemctl enable
{% highlight bash %} sudo systemctl enable bluetooth {% endhighlight %}
Next lets actually talk to the bluetooth headset.
Bluetooth Connection
For the connection to the headset we use the tool bluetoothctl
. As
this is an interactive tool, start it up via:
{% highlight bash %} bluetoothctl {% endhighlight %}
Within this tool we are able to communicate with the bluetooth stack. So first of all, lets power on the bluetooth stack:
power on
After that, we need to turn the bluetooth agent on. The agent allows us to handle the pairing of devices. For this purpose a default agent is sufficient, so we set this parameter.
agent on default-agent
Now bring your headset into discoverable mode and then start scanning for that device by:
scan on
You should see some output like this:
[NEW] Device 00:11:22:33:44:55 Philips SHB7000
With this information you are now able to pair with that device by:
pair 00:11:22:33:44:55
And after a successful pairing one is able to connect to that device:
connect 00:11:22:33:44:55
Once the connection is established, we can clean up and end
bluetoothctl
:
scan off exit
We have now a connection to the bluetooth headset and are able to stream audio to that device.
A2DP
My headset supports the A2DP profile and therefore is able to playback my music with a much higher quality. But I must switch my bluetooth card into a a2dp sink. This is done by this simple command.
{% highlight bash %} pacmd set-card-profile 2 a2dp\_sink {% endhighlight %}
After that switch, I'm now able to listen to my music in great quality, cordless and could now concentrate on baking that fine cake :)
Have a nice day