A2DP

From Openmoko

(Difference between revisions)
Jump to: navigation, search
(Move troubleshooting to section below)
(Describe error for missing libasound-module-bluez)
 
Line 100: Line 100:
 
== 5. Potential troubles ==
 
== 5. Potential troubles ==
 
* If you experience problems with choppiness, try changing your hcid.conf to include "lm accept,master;" and "lp hold,sniff,park;"  You may also have to bond (commonly known as 'pairing') your phone and your headset.  See http://wiki.bluez.org/wiki/HOWTO/Bonding for details. [[User:Mercury|Mercury]] 17:36, 5 September 2008 (UTC). On bluez4, use on commandline 'hciconfig hci0 lm master; hciconfig hci0 lp hold,sniff,park' as hcid.conf doesn't exist
 
* If you experience problems with choppiness, try changing your hcid.conf to include "lm accept,master;" and "lp hold,sniff,park;"  You may also have to bond (commonly known as 'pairing') your phone and your headset.  See http://wiki.bluez.org/wiki/HOWTO/Bonding for details. [[User:Mercury|Mercury]] 17:36, 5 September 2008 (UTC). On bluez4, use on commandline 'hciconfig hci0 lm master; hciconfig hci0 lp hold,sniff,park' as hcid.conf doesn't exist
 +
 +
* If you don't install all required packages (see above) namely libasound-module-bluez you will get:
 +
Cannot open shared library /usr/lib/alsa-lib/libasound_module_pcm_bluetooth.so
  
 
== 6. Devices that work==
 
== 6. Devices that work==

Latest revision as of 01:00, 3 March 2010

The A2DP bluetooth profile allows high quality audio to be transferred from the phone.

This page describes how to setup A2DP on the Freerunner.

Contents

[edit] How to setup A2DP manually

This information is mostly taken from this mail thread. It has been tested on FDOM and FSO milestone 5, but should also work on 2008.12.

[edit] 1. Check installed packages

First check that you have the correct package versions installed with grep blue. The versions should be these:

bluez-audio - 3.33-r3
bluez-utils - 3.33-r3
bluez-utils-alsa - 3.33-r3
bluez-utils-compat - 3.33-r3
libbluetooth2 - 3.33-r0

[edit] 1.1 Check installed packages (Bluez4)

For user with bluez4 (SHR-unstable ecc.) bluez-audio 3.33 and bluez-utils-alsa 3.33 are not compatible with bluez4

bluez4 - 4.30-r1 
connman-plugin-bluetooth - 0.10-r0 - 
kernel-module-bluetooth - 2.6.28-oe1+xxxxx 
libasound-module-bluez - 4.30-r0 
libbluetooth2 - 3.33-r0

If you are willing to risk your installationand want to stay on bluez3, you can remove bluez4 to resolve this issue by doing

opkg remove -recursive bluez4

(will also remove connman-plugin-bluetooth). After that you need to edit /etc/init.d/bluetooth and replace DAEMON_NAME=bluetoothd with DAEMON_NAME=hcid. This has been tested and works on FSO MS5.

[edit] 2. Add bluetooth device to /etc/asound.conf

Your /etc/asound.conf should contain these:

pcm.!default {
   type plug
   slave.pcm "dmix"
}

ctl.mixer0 {
   type hw
   card 0
}

pcm.bluetooth {
       type bluetooth
       device "XX:XX:XX:XX:XX:XX"
       profile "auto"
}

XX:XX:XX should be replaced with your device ID.

[edit] 3. Connect to the device

Turn on bluetooth in the GUI and then do

export DEVICE=XX: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 --print-reply --dest=org.bluez \
  /org/bluez org.bluez.Manager.ActivateService string:audio

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

dbus-send --system --type=method_call --print-reply --dest=org.bluez \
  "/org/bluez/audio/device0" org.bluez.audio.Sink.Connect

If the last step fails, see to it that the device returned in the step before is device0 - otherwise use the other number.

[edit] 3.1 Connect to the device (Bluez4)

Turn on bluetooth in the GUI and then pair with simple-agent (passkey-agent from bluez-utils 3.33 won't work) simple-agent is included in bluez4 source package (src folder) or you can find it there : http://shr-project.org/trac/wiki/Using

/etc/init.d/bluetooth stop
/etc/init.d/bluetooth start

python simple-agent hci0 XX:XX:XX:XX:XX:XX

Response is something like this :

RequestPinCode (/org/bluez/XXXX/hci0/dev_XX_XX_XX_XX_XX_XX)
Enter PIN Code: XXXX
Release
New device (/org/bluez/XXXX/hci0/dev_XX_XX_XX_XX_XX_XX)

Now you can start playing, no need to connect manualy.

[edit] 4. Start playing

To play a file with mplayer use the following command:

mplayer -ao alsa:device=bluetooth /path/to/file.ogg

[edit] 5. Potential troubles

  • If you experience problems with choppiness, try changing your hcid.conf to include "lm accept,master;" and "lp hold,sniff,park;" You may also have to bond (commonly known as 'pairing') your phone and your headset. See http://wiki.bluez.org/wiki/HOWTO/Bonding for details. Mercury 17:36, 5 September 2008 (UTC). On bluez4, use on commandline 'hciconfig hci0 lm master; hciconfig hci0 lp hold,sniff,park' as hcid.conf doesn't exist
  • If you don't install all required packages (see above) namely libasound-module-bluez you will get:
Cannot open shared library /usr/lib/alsa-lib/libasound_module_pcm_bluetooth.so

[edit] 6. Devices that work

Moved to List_of_bluetooth_headsets

Personal tools