## page was renamed from Bluetooth/Headset [[Getestet(breezy,dapper)]] {{{#!Wissen * [1]: [:Pakete installieren: Installation von Programmen] * [2]: [:Paketquellen freischalten: Bearbeiten von Paketquellen] * [3]: [:Terminal: Ein Terminal öffnen] * [4]: [:Editor: Einen Editor öffnen] * [5]: [:Programme compilieren: Pakete aus dem Quellcode erstellen] (Nur bei Breezy nötig) * [6]: [:Metapakete: Restricted-Modules, Linux-Headers: welche Version?] }}} [[TableOfContents(3)]] = 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. Dieser 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 im allgemeinen gut. == Hardware == Im Prinzip sollten alle Bluetooth Headsets unterstützt werden. Eine Liste von erfolgreich getesteten Headsets ist auf der [http://bluetooth-alsa.sourceforge.net/ bluetooth-alsa] Homepage zu finden. Mehr Probleme kann die Wahl des Bluetooth-Adapters machen. 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 wird das Ubuntu-System für Bluetooth vorbereitet, woraufhin man schon mal dem Headset "Hallo" sagen kann. In einem zweiten Schritt wird 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] der Pakete: * '''bluez-utils''' * '''bluez-btsco''' (''universe'', [2]) (Ist nur bei Dapper in den Quellen vorhanden) Sind die Paket installiert, kann man schon mit seinem Bluetooth-Dongle reden. Der folgende Befehl in einem Terminal [3] verrät etwas über die Fähigkeiten des Adapters: {{{#!Befehl 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 {{{#!Befehl hcitool scan }}} listet alle gefundenen Geräte auf. 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. === btsco Paket erstellen (nur für Breezy nötig) === {{{#!Experten Dieser Abschnitt des Artikels ist nicht trivial. Es geht um das Compilieren und Installieren der entsprechenden Kernelmodule. Leider gibt es keinen anderen Weg diese zu Erzeugen. Linux-Anfänger sollten eventuell Hilfe im Forum suchen. }}} 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 das entsprechenden Programm-Paket erst ab Ubuntu Dapper Drake verfügbar, so dass das Paket selbst kompiliert [5] werden muss. Dafür werden allerdings vorher ein paar Pakete benötigt [1]: * '''build-essential''' * '''cvs''' * '''checkinstall''' (''universe'', [2]) * '''automake1.7''' * '''gcc-3.4''' * '''libbluetooth1-dev''' * '''libasound2-dev''' * '''linux-headers-386''' [6] * '''libtool''' Sind alle Pakete installiert, geht es mit dem Runter laden und Übersetzen der Quellen weiter. Folgende Befehle dazu bitte in einem Terminal [3] ausführen: {{{#!Befehl sudo -i cd /usr/src cvs -d:pserver:anonymous@bluetooth-alsa.cvs.sourceforge.net:/cvsroot/bluetooth-alsa login cvs -d:pserver:anonymous@bluetooth-alsa.cvs.sourceforge.net:/cvsroot/bluetooth-alsa co btsco cd btsco ./bootstrap ./configure make checkinstall cd kernel make make install }}} {{{#!Hinweis Checkinstall verlangt unter Breezy, dass eine Versionsnummer - Punkt 3 - für btsco vergeben wird. Hier wurde testweise 1.0 eingetragen. }}} {{{#!Text This package will be built according to these values: 0 - Maintainer: [ deinname@localhost.localdomain ] 1 - Summary: [ Package created with checkinstall 1.5.3 ] 2 - Name: [ btsco ] 3 - Version: [ 1.0 ] <--- hier (zuvor [ btsco]) 4 - Release: [ 1 ] 5 - License: [ GPL ] 6 - Group: [ checkinstall ] 7 - Architecture: [ i386 ] 8 - Source location: [ btsco ] 9 - Alternate source location: [ ] }}} Das fertige Modul landet dann normalerweise in '''/usr/src/btsco/kernel''', wo es allerdings nicht gefunden wird. Daher muß man mit {{{#!Befehl mv /usr/src/btsco/kernel /lib/modules/2.6.12-9-686/ }}} den Inhalt in das richtige Verzeichnis verschieben. Bei anderen Kernelversionen muß das Zielverzeichnis entsprechend angepasst werden. Nach dem Verschieben müssen noch die Abhängigkeiten aktualisiert werden: {{{#!Befehl 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 ist folgender: {{{#!Text #!/bin/sh modprobe snd_bt_sco hciconfig hci0 voice 0x0060 }}} Und noch als ausführbar setzen: {{{#!Befehl sudo chmod +x /etc/hotplug/usb/hci_usb }}} === Kernel Modul snd-bt-sco laden (nur bei Dapper) === Damit der Kernel den Bluetooth-Stick auch als Soundkarte nutzen kann, muss ein Kernelmodul geladen werden. Damit dies automatisch beim Booten geschieht, muss das Modul zur Datei '''/etc/modules''' hinzugefügt werden. Es muss nur die Zeile {{{#!Text snd_bt_sco }}} mit einem Editor [4] angefügt werden. Um das Kernel-Modul nun auch ohne einen Rechner-Neustart zu laden, führt man einmalig den Befehl {{{#!Befehl sudo modprobe snd-bt-sco }}} aus. Verbindet man anschliessend den Bluetooth Adapter (wieder) mit dem PC, sollte man mit dem Befehl {{{#!Befehl dmesg | grep snd-bt-sco }}} in etwa diese Ausgabe erhalten: {{{#!Text ... Bluetooth: L2CAP ver 2.7 Bluetooth: L2CAP socket layer initialized Bluetooth: RFCOMM ver 1.5 Bluetooth: RFCOMM socket layer initialized Bluetooth: RFCOMM TTY layer initialized usb 1-1.2: new full speed USB device using ohci_hcd and address 6 snd-bt-sco revision 1.8 $ snd-bt-sco: snd-bt-scod thread starting }}} Und ein neues Sound-Device sollte existieren: {{{#!Befehl 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 }}} Oftmals 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 der Bluetooth Dongle im Rechner steckt oder nicht. Dazu trägt man das Modul der Soundkarte vor snd_bt_sco in die '''/etc/modules''' ein. Kennt man das Soundkartenmodul nicht, hilft ein {{{#!Befehl lsmod | grep snd }}} weiter. Die Module, die für den Sound zuständig sind, nennen sich immer snd_xyz. Also zum Beispiel ''snd_intel8x0'' für den Intel i810 Chipsatz. === Zum Headset verbinden === Nun muss man dem System sagen, das Headset zu nutzen. Bei der ersten Verbindung muss sich das Headset im Pairing-Modus befinden und man wird aufgefordert eine eine Pin-Nummer einzugeben. Meist ist das bei Headsets die '''0000''', klappt dies nicht sollte man einen Blick in das Handbuch des Headsets werfen. {{{#!Befehl btsco -v xx:xx:xx:xx:xx:xx }}} Wobei die xx-Werte gegen die Bluetooth-Adresse des Headsets (siehe oben) ausgetauscht werden muss. Die Ausgabe sieht dann so aus: {{{#!Text btsco v0.42 Device is 1:0 Voice setting: 0x0060 RFCOMM channel 1 connected }}} Sollte hier ein Fehler, wie z.B. '''Failed to connect to SDP server on xx:xx:xx:xx:xx:xx: Permission denied''' kommen, dann hilft es den bluez-Dienst neu zu starten {{{#!Befehl sudo /etc/init.d/bluez-utils restart }}} und dann den Verbindungsversuch neu zu starten. === Sounds ausgeben === In einem zweiten Terminal [3] kann man jetzt eine Soundausgabe starten {{{#!Befehl aplay -B 1000000 -D plughw:Headset /usr/share/sounds/alsa/Noise.wav }}} Das Headset bzw. der Bluetooth Audio Adapter sollte nun auch in anderen Anwendungen zur Verfügung stehen. Wählt man diesen aus und hat die Verbindung aktiviert, so sollte man Sounds über das Headset beklommen. = Problemlösungen = Es kommt vor, dass die Zuordnung Bluetooth Mac Nummer und Authorisations-Schlüssel verloren geht. Mit dem Ergebnis, dass man sich nicht mehr zum Headset verbinden kann. Versucht man es mit {{{#!Befehl btsco -v }}} sieht man als Ausgabe etwas in dieser Art {{{#!Text btsco v0.4 Device is 1:0 Error: Failed to connect to SDP server: Permission denied Assuming channel 2 Voice setting: 0x0060 Can't connect RFCOMM channel: Too many levels of symbolic links }}} Man kann dies recht einfach lösen, indem man das Pairing des Bluetooth Headsets mit dem Adapter wiederholt. Dazu muss man in das Verzeichnis '''/var/lib/bluetooth''' wechseln. Dort sind die Gerätedaten in nach den MAC Adressen benannten Verzeichnissen abgelegt. Hier muss dann das Verzeichnis mit dem Namen der MAC Nummer der Headset gelöscht werden. Beim nächsten Verbindungsversuch, wird man wie oben beschrieben nach dem Bluetooth Schlüssel des Gerätes gefragt und man kann das Headset wieder benutzen. ---- ["Kategorie/Hardware"]