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