Bluetooth headset

From Openmoko

Jump to: navigation, search

This is mostly based on Neo 1973 audio subsystem and this thread on the kernel mailing list.


Known to work headsets

Please see A2DP#Devices_that_work for complete list and comparison table.


Get the bluetooth alsa state and DAC setup script

Download GSMBLUETOOTH.txt and bluetooth_pcm

Edit /etc/bluetooth/audio.conf

# Configuration file for the audio service

# This section contains options which are not specific to any
# particular interface

# If we want to disable support for specific services
# Defaults to supporting all implemented services

# SCO routing. Either PCM or HCI (in which case audio is routed to/from ALSA)
# Defaults to HCI

# Headset interface specific options (i.e. options which affect how the audio
# service interacts with remote headset devices)

# Set to true to only support HSP
# Defaults to false

# Just an example of potential config options for the other interfaces

The important part is the SCORouting.

Connect and setup the headset

export DEVICE=xx:xx:xx:xx:xx
/etc/init.d/bluetooth stop
/etc/init.d/bluetooth start

passkey-agent --default 0000 &

dbus-send --system --type=method_call --print-reply --dest=org.bluez \
 /org/bluez/hci0 org.bluez.Adapter.CreateBonding string:$DEVICE

dbus-send --system --type=method_call --print-reply --dest=org.bluez \
 /org/bluez/audio string:$DEVICE

dbus-send --system --type=method_call --print-reply --dest=org.bluez \

dbus-send --system --type=method_call --print-reply --dest=org.bluez \

During the call

After having answered / placed the call, switch the audio to the bluetooth headset. You need a small workaround to get audio in, which is included below.

alsactl -f GSMBLUETOOTH.txt restore
./bluetooth_pcm &

the workaround is to switch Capture Left Mixer first to Analogue Mix Right and then back to Analogue Mix Right. This can be done with alsamixer:


(lookup Capture Left Mixer in the "gui" and toggle the value).

Personal tools