Montag, 25. August 2008

Drahtloser Stereosound unter Ubuntu mit Bluetooth und A2DP

Mit dem A2DP (Advanced Audio Distribution Profile) von Bluetooth ist es möglich auch hochwertigen Stereosound via Bluetooth zu übertragen. Ein entsprechendes Headset vorrausgesetzt, kann man damit völlig kabellos Musik in guter Qualität hören. Ich habe mich für das MSI FS110 (siehe Bild) entschieden (Kostenpunkt: ca. 40 €). Es hat eine Klinkenbuchse, so dass man nicht auf Kopfhörer beschränkt ist, sondern es auch z.B. an eine Stereoanlage oder das Autoradio anschließen kann. Die mitgelieferten Kopfhörer sind im übrigen von ziemlich minderwertiger Qualität (=Schrott). Ich werde wohl noch meine Lieblingsstöpsel, die Sony MDR-ED31LP, nachkaufen.

Angeblich unterstützen M$ Windows und Mac OS (Tiger) (noch) kein A2DP, ich habe es aber selbst noch nicht getestet. Unter Ubuntu hingegen, klappt das ganze schon erstaunlich gut.

Einrichtung

Zunächst müssen die notwendigen Pakete libsbc und bluetooth-alsa installiert werden. Da diese sich nicht im Ubuntu-Repository befinden, werden sie aus dem Debian-Archiv geladen und von Hand installiert.

wget http://mirrors.redwoodvirtual.com/debian/pool/main/libs/libsbc/libsbc0_0.0cvs20070327-1_i386.deb
wget ftp://ftp.blackstar.co.uk/pub/debian/pool/main/b/bluetooth-alsa/bluetooth-alsa_0.5cvs20070714-1_i386.deb

sudo dpkg -i *.deb

Nun müssen die Konfigurationsdateien für das A2DP (~/.a2dprc) und ALSA (~/.asoundrc) erzeugt werden. Für A2DP wird die Beispielkonfiguration aus dem CVS-Repository verwendet.

wget http://bluetooth-alsa.cvs.sourceforge.net/*checkout*/bluetooth-alsa/plugz/alsa-plugins/a2dpd/sample.a2dprc -O ~/.a2dprc

In diese muss noch die Bluetooth-Adresse des Empfängers eingetragen werden, welche folgendermaßen ermittelt wird.

hcitool scan

# Your bluetooth headset address
address=00:13:D3:68:D4:6A


Die ALSA-Konfiguration wird von Hand angelegt. Dazu wird die Datei ~/.asoundrc mit folgendem Inhalt erzeugt.

pcm.a2dpd {
type a2dpd
}


Nun muss das Streaming gestartet werden (und im Hintergrund weiter laufen). Entgegen der Empfehlungen der Entwickler von bluetooh-alsa muss a2dpd als root gestartet werden, da es eine Bluetooth-Funktion zum Verbindungsaufbau benutzt die (unter Ubuntu) nur root ausführen darf.

sudo a2dpd

Letzterer Befehl muss immer ausgeführt werden, bevor der Empfänger verwendet wird.

Als Ausgabegerät verwenden

Leider ist es nicht möglich a2dpd als normales ALSA-Gerät auszuwählen. Deshalb muss es manuell als Gerät eingetragen werden. Einige Anwendungen (z.B. amaroK) unterstützen das. Mit den Konfigurationseditor von GNOME kann man es auch für GNOME-Anwendungen als Ausgabegerät festlegen.

gconf-editor

Im Konfigurationseditor müssen je nach Belieben folgende Schlüssel angepasst werden.

/system/gstreamer/0.10/default/audiosink (für Systemklänge, etc.)
/system/gstreamer/0.10/default/chataudiosink (für Chat, Konferenz, etc.)
/system/gstreamer/0.10/default/musicaudiosink (für Musik, Video, etc.)

Dazu trägt man für den jeweiligen Schlüssel folgendes ein.

alsasink device="a2dpd"

Nun kann man mit Totem, Rhythmbox, etc. Musik ohne Kabel genießen!

Quellen/Links

Kommentare:

  1. Das MSI FS-110 ist ziemlicher Schrott! Ich hatte es mir eigentlich gekauft, weil MSI für die eigenen Headsets eine A2DP-Streaming-Software (Blue Player) für's Handy mitliefert, die auch auf Handys läuft, die von Haus aus kein A2DP-Profil haben. Allerdings sind sowohl die Software als auch das Headset so unausgereift, dass es nicht wirklich Spaß macht damit Musik zu hören. Mein nächstes Handy wird wohl A2DP unterstützen und dann kaufe ich mir nochmal ein anständiges Headset. Das HOWTO funktioniert natürlich trotzdem! ;-)

    AntwortenLöschen
  2. Schöner Post, hat mir sehr geholfen. Ich habe hier noch eine Anleitung geschrieben, wie sich bluetooth-alsa auf Ubuntu 9.04 selbst kompilieren lässt.

    AntwortenLöschen
  3. Dieser Kommentar wurde vom Autor entfernt.

    AntwortenLöschen
  4. Wenn jemand einen anständigen Bluetooth-Kopfhörer sucht, kann ich den Philips SHB9000 wärmstens empfehlen. Habe ihn seit einiger Zeit und bin hellauf begeistert!

    AntwortenLöschen
  5. Hallo,

    ich habe leider das hier:

    {{{
    Als Ausgabegerät verwenden

    Leider ist es nicht möglich a2dpd als normales ALSA-Gerät auszuwählen. Deshalb muss es manuell als Gerät eingetragen werden. Einige Anwendungen (z.B. amaroK) unterstützen das. Mit den Konfigurationseditor von GNOME kann man es auch für GNOME-Anwendungen als Ausgabegerät festlegen.

    gconf-editor

    Im Konfigurationseditor müssen je nach Belieben folgende Schlüssel angepasst werden.

    /system/gstreamer/0.10/default/audiosink (für Systemklänge, etc.)
    /system/gstreamer/0.10/default/chataudiosink (für Chat, Konferenz, etc.)
    /system/gstreamer/0.10/default/musicaudiosink (für Musik, Video, etc.)

    Dazu trägt man für den jeweiligen Schlüssel folgendes ein.

    alsasink device="a2dpd"

    Nun kann man mit Totem, Rhythmbox, etc. Musik ohne Kabel genießen!
    }}}

    nicht so ganz verstanden.
    Muss ich jeweils unter Wert a2dpd eintragen?

    Würde das auch mit VLC Player funktionieren?

    AntwortenLöschen
  6. Du musst jeweils die komplette Zeile eintragen, also alsasink device="a2dpd". Damit wird als Ausgabemixer ALSA verwendet und per device das ALSA-Ausgabegrät gesetzt, das oben in der .asoundrc eingerichtet wurde.

    Ich bin nicht sicher ob VLC auf die Gnome-Konfiguration zugreift. Eventuell kann man im VLC auch auf andere Art das Audiodevice festlegen.

    AntwortenLöschen
  7. Hi, ich habe den Samsung HT-Z320 jetzt gekauft und bei mir und angeschlossen. Über Handy kann ich ohne Probleme Musik abspielen. Der Sound von Videos ist auch zu hören. Mehr kann ich nicht sagen, da ich kein TV angeschlossen habe.

    Jetzt wollte ich über mein Notebook auf Kubuntu es probieren. Mit dem Bluetooth Dongle findet der den Samsung HT-Z320 aber der Meldet dann folgendes:

    Sorry your Bluetooth Device doesnt support input Service.

    //s3.directupload.net/images/091204/temp/akoldfeb.jpg[/IMG[/URL]

    Unter Vista klappt es ohne Probleme! Unter Kubuntu müsste es doch auch gehen.

    Hat das was mit A2DP zu tun?

    Grüße

    AntwortenLöschen
  8. ich kann jetzt mit dongle und samsung ht-z320 eine verbindung herstellen, aber die Musik wird nicht an die Anlage übertragen. Benutze VLC und amarok. Muss ich noch was einstellen?

    AntwortenLöschen
  9. Danke für den Post!
    Ich hatte mich ja insgeheim schon auf etwas Frickelei eingestellt, aber zum Glück zuerst über Blueman versucht eine Verbindung herzustellen. Also mit Ubuntu 10.04 ist sowohl Audiosink und Headset sofort einsatzbereit. Nach der Verbindung muss nur noch in den Gnome-Audiosettings das Headset ausgewählt werden. Audacious und Skype laufen wunderbar, Sound große Klasse (A2DP), weiteres bisher noch nicht probiert.

    Hardware:
    Samsung NC-10 Netbook
    Nokia BH-905 BT Headset

    AntwortenLöschen