[[TableOfContents(3)]] = Bluetooth Headset einrichten = ''Dieser Artikel setzt die Kenntnis folgender Anleitungen voraus:'' * ''[1]: [:pakete:installation: Installation von Paketen]'' * ''[2]: [:lib:term: Ein Terminal öffnen]'' * ''[3]: [:pakete:selbst_kompilieren: Pakete aus dem Quellcode erstellen]'' * ''[4]: [:lib:editor: Einen Editor öffnen]'' == Allgemein == Gerade für Anwendungen wie [:internet:skype_unter_ubuntu_installieren: 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 [http://bluetooth-alsa.sourceforge.net/ 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 [:mobil:bluetooth_einrichten: Bluetooth einrichten] 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: {{{#!Text 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`''' [[Anmerkung(Dies sind die sogenannten "Headers" des linux-Kernels. ''`uname -r`'' bezeichnet die richtige Versionsnummer, die mit derjenigen des Paketes '''linux-image-...''' übereinstimmen muß: z.B. '''linux-headers-2.6.10-5'''. Wer die Pakete im Terminal installiert, kann die angegebene Bezeichnung direkt dort hineinkopieren, dann liefert ''`uname -r`'' automatisch die richtige Version.)]] 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: {{{#!Text #!/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: {{{#!Text ... 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: {{{#!Text 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: {{{#!Text $ 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: {{{#!Text 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"'' {{{#!Text 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!