ubuntuusers.de

Du betrachtest eine alte Revision dieser Wikiseite.

Bluetooth Headset

 *  [1]: [:Pakete installieren: Installation von Programmen]
 *  [2]: [:Terminal: Ein Terminal öffnen]
 *  [3]: [:Programme compilieren: Pakete aus dem Quellcode erstellen]
 *  [4]: [:Editor: Einen Editor öffnen]

Bluetooth Headset einrichten

Allgemein

Gerade für Anwendungen wie ["Skype"] ist ein kabelloses Headset sehr komfortabel. Zur Übertragung der Audiodaten ist der aktuelle Stand der Technik Bluetooth. Diese universelle Funk-Standard ermöglicht es z.B. auch, dass Handys dieses Headset als Freisprecheinrichtung nutzen können.

Da diese ganze Technik relativ neu und nicht so weit verbreitet ist, verläuft die Einrichtung nicht ganz unproblematisch. Die benötigte Software befindet sich auch noch im Alpha-Stadium, trotzdem funktioniert sie bei mir gut.

Hardware

Das von mir benutzte Headset ist von Logitech und hört auf den Namen "Mobile Pro Headset". Eine Liste von weiteren erfolgreich getesteten Headsets ist hier zu finden.

Mehr Probleme kann meiner Meinung nach die Wahl des Bluetooth-Adapters machen. Mein erster Versuch mit "BlueFritz! USB 2.0" von AVM verlief erfolglos, da der Adapter das SCO-Mapping "HCI" nicht kann. Dazu aber später mehr. Empfehlenswert sind Adapter mit einem Chipsatz von CSR (Cambridge Silicon Radio), wie z.B. der Adapter "MDU-0005USB" von Level One.

Software

Ist die Entsprechende Hardware vorhanden, kann die Einrichtung der Software losgehen. Als erstes wir das Ubuntu-System für Bluetooth vorbereitet, woraufhin man schon mal dem Headset "Hallo" sagen kann.

In einem zweiten Schritt wir dann das Soundsystem angepasst und konfiguriert.

Bluetooth Vorbereitungen

Die Einrichtung von Bluetooth ist auch schon im Artikel ["/Bluetooth/Einrichtung"] beschrieben und beschränkt sich eigentlich auf die Installation[1] des Paketes:

  • bluez-utils

Ist das Paket installiert, kann man schon mit seinem Bluetooth-Dongle reden.

Der folgende Befehl in einem Terminal[2] verrät etwas über die Fähigkeiten des Adapters.

sudo hciconfig hci0 revision

Bei der Ausgabe sollte auch unbedingt die Zeile "SCO mapping: HCI" stehen. Ist dies nicht der Fall, raten die Autoren der Bluetooth-Audio Software zu einem anderen Adapter.

Jetzt kann man sich auf die Suche nach Bluetooth-Geräten machen. Der Befehl:

hcitool scan

listet alle gefundenen Geräte. Eventuell muss man dabei den Pairing-Modus einschalten, was bei Headsets oft durch langes drücken des Einschalt-Knopfes funktioniert. Die Ausgabe sieht dann so ähnlich aus:

Scanning ...
        00:0D:44:03:6B:8A       Logitech HS01-V16

Vor dem Namen des Gerätes befindet sich die Bluetooth Adresse, die später für den Sound-Treiber benötigt wird.

Soundsystem

Die Sound Ein-und Ausgabe basiert auf dem Bluetooth-alsa Projekt. Ziel dieses Abschnittes ist es, für das Headset ein eigenes Sounddevice bereitzustellen. Leider sind hier keine Ubuntu Pakete verfügbar, so dass das Paket selbst kompiliert[3] werden muss. Dafür werden allerdings vorher ein paar Pakete benötigt[1]:

  • cvs

  • automake1.7

  • libbluetooth-dev

  • libasound2-dev

  • linux-headers-uname -r

    Fehlendes Makro

    Das Makro „Anmerkung“ konnte nicht gefunden werden.

Sind alle Pakete installiert[1], geht es mit dem Runterladen und Übersetzen der Quellen weiter. Folgende Befehle in einem Root-Terminal[3] ausführen:

cd /usr/src
cvs -d:pserver:anonymous@cvs.sf.net:/cvsroot/bluetooth-alsa co btsco
cd btsco
./bootstrap
./configure
make
checkinstall
cd kernel
make
make install

Das fertige Modul landete bei mir in /lib/modules/2.6.10/extra, wo es allerdings nicht gefunden wird. Daher mit

mv /lib/modules/2.6.10/extra /lib/modules/2.6.10-5-386

in das richtige Verzeichnis verschieben. Bei anderen Kernelversionen die Verzeichnisse entsprechend ändern.

Nach dem Verschieben müssen noch die Abhängigkeiten aktualisiert werden

depmod -e

Für das Laden des Moduls und eine kleine Initialisierung habe ich in ein SKript geschrieben, dass automatisch beim Einstecken des Bluetooth-Adapters ausgeführt wird. Dazu die Datei /etc/hotplug/usb/hci_usb mit einem Editor[4] mit Root-Rechten anlegen der Inhalt is folgender:

#!/bin/sh
modprobe snd_bt_sco
hciconfig hci0 voice 0x0060

Und noch als ausführbar setzen:

$ sudo chmod +x /etc/hotplug/usb/hci_usb

Verbindet man nun den Bluetooth Adapter (wieder) mit dem PC, sollte man per

$ dmesg

in etwa diese Ausgabe erhalten:

...
usb 3-1: new full speed USB device using uhci_hcd and address 2
Bluetooth: HCI USB driver ver 2.7
usbcore: registered new driver hci_usb
snd-bt-sco revision 1.6 $
snd-bt-sco: snd-bt-scod thread starting

Und ein neues Sound-Device sollte existieren:

$ cat /proc/asound/cards

Die Ausgabe sollte etwa so aussehen:

0 [Live           ]: EMU10K1 - Sound Blaster Live!
                     Sound Blaster Live! (rev.4) at 0xe000, irq 12
1 [Headset        ]: Bluetooth SCO - BT Headset
                     BT Headset 1

Bei mir hat es sich bewährt, dass die eingebaute Soundkarte die ID 0 hat. Sonst verschieben sich nämlich die IDs, je nach dem ob beim Booten das Dongel im Rechner steckt oder nicht. Dazu trät man das Modul der Soundkarte in /etc/modules ein.

Kennt man das Soundkartenmodul nicht, hilft ein

$ lsmod

weiter. Bei mir habe ich das Modul in Zeile "snd_pcm" gefunden.

Beim Starten von KDE hat mein aRts Soundserver sich darüber beschwert, dass er nichts ausgeben kann (weil das Headset eben noch nicht per Bluetooth verbunden ist). Sobald man ihm im KDE-Kontrollzentrum unter "Sound System → Hardware → Hardware-Gerätedatei" oder per Parameter (-D) hw:1,0 angibt, funktioniert er wieder ohne Probleme.

Kleine Legende: hw:x,y mit x = Nummer (ab 0) des Ausgabegerätes, y = Unternummer (ebenfalls ab 0). Bei hw:1,0 also das 2. Gerät mit Unternummer 1.

Nun aber endlich zur ersten Soundausgabe vom Headset. Bei der ersten Verbindung muss sich das Headset im Pairing-Modus befinden. Bei der ersten Verbindung muss man dann eine Pin eingeben. Funktioniert das wie bei mir nicht auf Anhieb, ist dafür meist der "PIN helper" verantwortlich. Das ist ein kleines Progrämmchen, das zur PIN-Eingabe beim Pairing ausgeführt wird. Da es eh nur ein einziges mal aufgerufen wird, habe ich es durch ein kleines Script ersetzt, bei dem die PIN "0000" ist:

$ echo '#!/bin/sh' > /tmp/bluepin.sh
$ echo 'echo "PIN:0000"' >> /tmp/bluepin.sh
$ chmod +x /tmp/bluepin.sh

Und in der Konfigurationsdatei /etc/bluetooth/hcid.conf den Eintrag "pin_helper" entsprechend auf /tmp/bluepin.sh geändert.

Nun kann man eine Verbindung mit dem Headset herstellen. Der Parameter ist die Adresse, die man mit "hcitool scan" (s.o.) erhält.

btsco -v 00:0D:44:03:6B:8A

Ausgabe ist:

btsco v0.4c
Device is 1:0
Voice setting: 0x0060
RFCOMM channel 1 connected

In einem zweiten Terminal[2] kann man nun eine Soundausgabe starten:

aplay -B 1000000 -D plughw:Headset sound.wav

In Skype stellt man einfach das Audio Device auf /dev/dsp1 um und es kann losgehen.

In xmms geht man über "O → Einstellungen (alternativ STRG+p) → Ausgabe I/O Plugin → Ausgabe Plugin: z.B. OSS Treiber → Konfigurieren → Geräte"

Audiogerät: BT SCO PCM (Duplex)
Mixer: BT Headset Mixer

Mit 2 mal OK bestätigen. Dann play. Klappt jetzt alles (soll heissen: spielt die Hardware mit) sollte auch Musik zu hören sein.

Viel Erfolg!


["Kategorie/Hardware"]

Diese Revision wurde am 12. Oktober 2005 15:06 von p50925076.dip.t-dialin.net erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Hardware