Listing 4
$ sudo cp -a /lib/systemd/system/bluetooth.service /etc/systemd/system
Listing 5
[Unit] Description=Bluetooth service Documentation=man:bluetoothd(8) [Service] Type=dbus BusName=org.bluez ExecStart=/usr/lib/bluetooth/bluetoothd -C ExecStartPost=/usr/bin/sdptool add SP NotifyAccess=main #WatchdogSec=10 #Restart=on-failure CapabilityBoundingSet=CAP_NET_ADMIN CAP_NET_BIND_SERVICE LimitNPROC=1 [Install] WantedBy=bluetooth.target Alias=dbus-org.bluez.service
Listing 6
[Unit] Description=RFCOMM service After=bluetooth.service Requires=bluetooth.service [Service] ExecStart=/usr/bin/rfcomm watch rfcomm0 1 /sbin/agetty -noclear rfcomm0 9600 vt100 [Install] WantedBy=multi-user.target
Nach einem Neustart läuft dann der Bluetooth-Daemon im Kompatibilitätsmodus, auch der Rfcomm-Service ist aktiv. Letzteres überprüfen Sie bei Bedarf mit dem Aufruf systemctl status rfcomm. Die Zeile 7 in Listing 6 enthält alle Magie, sie ruft Rfcomm auf. Das Programm überwacht den Kanal 1 und startet bei Bedarf das Programm Agetty auf dem seriellen Device /dev/rfcomm0. Die restlichen Parameter steuern Agetty: So setzt es im Beispiel die Baudrate 9600 und stellt die Terminalemulation auf vt100.
Wer schon einmal Netzwerkprobleme auf einem RasPi ohne Tastatur und Bildschirm hatte, der weiß diesen Noteingang zu schätzen. Alles, was Sie auf der Bluetooth-Tastatur eingeben, führt das System umgehend aus. Ansonsten bleibt nur der harte Abbruch per Stromstecker, was das Dateisystem auf der SD-Karte nicht auf Dauer verzeiht.
Auf der Gegenseite benötigen Sie noch eine Terminalemulation über Bluetooth (Abbildung 5). Für Android gibt es hier zum Beispiel die freie App Blueterm [6]. Als gute Ergänzung dazu erweist sich eine Tastatur, die auch die typischen Sondertasten wie [Strg] oder [Alt] erzeugt [7].

Abbildung 5: Mit der Android-App Blueterm lässt sich der RasPi kabellos, aber ohne Netzwerk bedienen.
Die serielle Verbindung können Sie auch für andere Zwecke nutzen, etwa zum Überspielen von Daten von einem Device auf das nächste. Für diese Aufgabe müssen Sie entweder die Service-Definition anpassen oder nach dem Verbindungsaufbau ein entsprechendes Programm manuell starten. So speichert etwa cat < /dev/rfcomm0 > ~/daten.txt die übertragenen Daten in der Datei daten.txt.
Musik per Bluetooth
Als letzter Anwendungsfall soll der RasPi Musik auf Bluetooth-Lautsprechern (oder Kopfhörern) abspielen. Eigentlich ganz einfach und laut Dokumentation fast ohne Aufwand machbar – trotzdem fällt die Umsetzung in der Praxis nicht so leicht.
Wie eingangs beschrieben, benötigt die Musikübertragung den Sound-Server PulseAudio. Er klinkt sich als virtuelle Soundkarte zwischen die Anwendungen (etwa VLC) und die physischen Ausgabegeräte. In der Theorie verbindet sich PulseAudio per Bluetooth mit den gefundenen (und früher bereits gepairten Geräten) und erzeugt ein neues Ausgabegerät. Der Mixer von PulseAudio kann dort dann den Sound ausgeben.
Zuerst gilt es daher, den kompletten PulseAudio-Stack zu installieren (Listing 7). Der Befehl richtet auch gleich den Mixer Pavucontrol sowie ein Abspielprogramm ein (eine Alternative wäre der erwähnte VLC). Sollte PulseAudio bereits auf dem Rechner vorhanden sein, dann starten Sie ihn (nicht als Root) einfach neu (Listing 8).
Listing 7
$ sudo apt-get install pulseaudio-module-bluetooth pavucontrol mplayer
Listing 8
$ pulseaudio -k $ pulseaudio -D
Nach der Installation koppeln Sie den Bluetooth-Lautsprecher oder das Headset wie oben beschrieben mit dem Bluetooth-RasPi. Danach passiert erst einmal gar nichts: PulseAudio meldet keine weiteren Ausgabegeräte. Es gilt, ein wenig abzuwarten. Es dauert ein paar Minuten, bis der Bluetooth-Stack das neue Gerät an PulseAudio weiterreicht, der Dienst die Verbindung aufbaut und dann ein neues Ausgabegerät bereitstellt.
Mittels des grafischen PulseAudio Mixers Pavucontrol entscheiden Sie dann, welche Ausgabegeräte tatsächlich den Sound erhalten und in welcher Lautstärke. Bei Headless-Systemen gibt es dafür das Kommandozeilenprogramm Pactl.
Fazit
Dank des integrierten Bluetooth-Chips eröffnet der Raspberry Pi 3 wieder viele neue Möglichkeiten. Doch selbst auf älteren Modellen müssen Sie nicht auf Bluetooth verzichten: Passende USB-Dongles gibt es für wenige Euro im einschlägigen Fachhandel. Die einfacheren Dongles unterstützen das Bluetooth-Protokoll zwar meist nur bis zur Version 2.1, das genügt für viele Anwendungsfälle jedoch vollauf.
Im Test erwies sich beispielsweise der Gembird BTD-MINI2 mini Bluetooth Dongle als gute Option. Einmal eingesteckt, funktionierten damit im Test die hier beschriebenen Anwendungen genauso wie mit dem integrierten Baustein des RasPi 3. Allerdings belegt der Dongle einen der vier USB-Ports des RasPi mit Beschlag und benötigt auch etwas mehr Strom als die eingebaute Variante.





