Bluetooth Headset

From Gentoo Wiki
Jump to: navigation, search

This article describes the configuration of a Bluetooth headset.

Prerequisites

This article assumes that Bluetooth and ALSA have been previously configured.

Configuration

ALSA

  • Add one of the following code snippets to /etc/asound.conf (system-wide) or ~/.asoundrc (user-level), and substitute the MAC address with the MAC address of your Bluetooth device.
File/etc/asound.conf or ~/.asoundrc

# First try autodetection:
@hooks [
	{
		func load
		files [
			"/usr/share/alsa/bluetooth.conf"
		]
		errors false
	}
]

# Specify your device if autodetection doesn't work for you:

## To redirect ALL output to the headset
#pcm.!default {
#type bluetooth
#device 00:16:44:FD:6B:A0
#profile "auto"
#}

## OR: to create a new, additional output channel
#pcm.bluetooth {
#type bluetooth
#device 00:16:44:FD:6B:A0
#profile "auto"
#}
  • Restart ALSA.

OpenRC

root # rc-service alsasound restart

systemd

root # systemctl restart alsasound

Testing

  • Play a sound file.
user $ mplayer -ao alsa:device=bluetooth filename

If it works, please add your device to the table of working devices.

Working devices

Note
The capabilities of the device are dependent on the Bluetooth controller being used.
Device Headphone Microphone BlueZ Version Comments
Cellular Innovations HFBLU-ST6 Yes No  ?
Dell BH200 Yes Not tested  ?
LG HBS730 Yes No  ?
Nokia BH-214 Yes No  ?
Nokia BH-604 Yes Yes  ?
Parrot Zik Yes Not tested  ?
Philips SBH6201 Yes Yes  ?
Philips SBH9100 Yes Not tested  ?
Plantronics BackBeat GO Yes Not tested  ?
Prestigio PBHS1 Yes Not tested  ?
Sony MDR-ZX750BN Yes No  ? The change track and volume buttons work.
Sony SBH52 Yes Yes  ? The buttons work and can be assigned actions in KDE. Supported rate 4800.
Sony SBH20 Yes Not tested  ?
Sony Ericsson HBH-DS200 Yes Not tested  ?
Sony Ericsson HBH-DS970 Yes Not tested  ? Requires Enable=Socket in /etc/bluetooth/audio.conf.

Troubleshooting

Audio socket

Some setups (non-PulseAudio) need Socket enabled, if there's no sound.

File/etc/bluetooth/audio.confEnable audio socket

[General]
Enable=Socket

BlueZ 5

Non-PulseAudio setups need to skip BlueZ 5 for now, as the ALSA plugin has been removed.

File/etc/portage/package.maskMask BlueZ 5 versions

>=net-wireless/bluez-5

Can't open input device

Compile and load the uinput kernel module, when things don't work, and the logs show this error:

CodeOutput of Syslog

bluetoothd: Can't open input device: No such file or directory (2)
bluetoothd: AVRCP: failed to init uinput for 00:16:44:FD:6B:A0
bluetoothd: Unable to select SEP
Kernel configuration

Device Drivers  --->
   Input device support  --->
      [*]   Miscellaneous devices  --->
         <M>   User level driver support

No audio service is available

After updating to net-wireless/bluez-5.xx it might happen, that a Bluetooth headset is connected, but ALSA / PulseAudio fails to pick up the connected device.

An error message like this might be shown in the output of PulseAudio:

CodeDebug output of PulseAudio

I: [pulseaudio] module-card-restore.c: Restoring profile for card bluez_card.00_16_94_0B_6F_DE.
I: [pulseaudio] card.c: Created 10 "bluez_card.00_16_94_0B_6F_DE"
bt_audio_service_open: connect() failed: Connection refused (111)
W: [pulseaudio] module-bluetooth-device.c: Bluetooth audio service not available
W: [pulseaudio] module-bluetooth-device.c: Service not connected
I: [pulseaudio] card.c: Freed 10 "bluez_card.00_16_94_0B_6F_DE"
E: [pulseaudio] module.c: Failed to load module "module-bluetooth-device" (argument: "address="00:16:94:0B:6F:DE" path="/org/bluez/31716/hci0/dev_00_16_94_0B_6F_DE""): initialization failed.

To fix this, the following needs to be done:

  1. Enable the audio socket of bluetoothd
File/etc/bluetooth/audio.confEnable audio socket

[General]
Enable=Socket
  1. Restart bluetoothd by doing one of the following things:
    • Turn the software wireless kill switch off and on again
root # rfkill block bluetooth
root #
rfkill unblock bluetooth
    • Turn the hardware wireless kill switch off and on again
    • Reboot the computer
  1. Reconnect the Bluetooth headset

See also