Mauersegler: Difference between revisions
No edit summary |
m (Text replacement - "<source" to "<syntaxhighlight") |
||
Line 22: | Line 22: | ||
====Bluetooth Service dauerhaft anschalten==== | ====Bluetooth Service dauerhaft anschalten==== | ||
< | <syntaxhighlight lang=bash> | ||
pi@raspberrypi:~ $ sudo systemctl enable bluetooth.service | pi@raspberrypi:~ $ sudo systemctl enable bluetooth.service | ||
pi@raspberrypi:~ $ sudo systemctl start bluetooth.service | pi@raspberrypi:~ $ sudo systemctl start bluetooth.service | ||
Line 29: | Line 29: | ||
====Bluetooth Service Status prüfen==== | ====Bluetooth Service Status prüfen==== | ||
So sollte es aussehen: | So sollte es aussehen: | ||
< | <syntaxhighlight lang=bash> | ||
pi@raspberrypi:~ $ sudo systemctl status bluetooth.service | pi@raspberrypi:~ $ sudo systemctl status bluetooth.service | ||
* bluetooth.service - Bluetooth service | * bluetooth.service - Bluetooth service | ||
Line 43: | Line 43: | ||
</source> | </source> | ||
Sieht es hingegen so aus: | Sieht es hingegen so aus: | ||
< | <syntaxhighlight lang=bash> | ||
pi@raspberrypi:~ $ sudo systemctl status bluetooth.service | pi@raspberrypi:~ $ sudo systemctl status bluetooth.service | ||
* bluetooth.service - Bluetooth service | * bluetooth.service - Bluetooth service | ||
Line 60: | Line 60: | ||
Beispiel: | Beispiel: | ||
< | <syntaxhighlight lang=bash> | ||
pi@raspberrypi:~ $ egrep "(hci_uart|btbcm)" /etc/modprobe.d/*.conf | pi@raspberrypi:~ $ egrep "(hci_uart|btbcm)" /etc/modprobe.d/*.conf | ||
/etc/modprobe.d/blacklist-bluetooth.conf:blacklist hci_uart | /etc/modprobe.d/blacklist-bluetooth.conf:blacklist hci_uart | ||
Line 70: | Line 70: | ||
sudo perl -pi -e "s/(blacklist.*(hci_uart|btbcm))/#\1/g" <Datei> | sudo perl -pi -e "s/(blacklist.*(hci_uart|btbcm))/#\1/g" <Datei> | ||
kommentiert die <i>blacklist</i> Zeilen für die Beiden benötigten Module aus. | kommentiert die <i>blacklist</i> Zeilen für die Beiden benötigten Module aus. | ||
< | <syntaxhighlight lang=bash> | ||
pi@raspberrypi:~ $ sudo perl -pi -e "s/(blacklist.*(hci_uart|btbcm))/#\1/g" /etc/modprobe.d/blacklist-bluetooth.conf | pi@raspberrypi:~ $ sudo perl -pi -e "s/(blacklist.*(hci_uart|btbcm))/#\1/g" /etc/modprobe.d/blacklist-bluetooth.conf | ||
</source> | </source> | ||
Anschließend einen Neustart(reboot) durchführen | Anschließend einen Neustart(reboot) durchführen | ||
< | <syntaxhighlight lang=bash> | ||
pi@raspberrypi:~ $ sudo reboot | pi@raspberrypi:~ $ sudo reboot | ||
</source> | </source> | ||
Wenn die Module nach dem geladen sind, sieht es so aus: | Wenn die Module nach dem geladen sind, sieht es so aus: | ||
< | <syntaxhighlight lang=bash> | ||
pi@raspberrypi:~ $ sudo lsmod | grep bt | pi@raspberrypi:~ $ sudo lsmod | grep bt | ||
btbcm 16384 1 hci_uart | btbcm 16384 1 hci_uart | ||
Line 88: | Line 88: | ||
===Finden der Bluetooth-Boxen=== | ===Finden der Bluetooth-Boxen=== | ||
< | <syntaxhighlight lang=bash> | ||
pi@raspberrypi:~ $ sudo bluetoothctl | pi@raspberrypi:~ $ sudo bluetoothctl | ||
Agent registered | Agent registered | ||
Line 96: | Line 96: | ||
</source> | </source> | ||
Jetzt die Bluetooth-Boxen an | Jetzt die Bluetooth-Boxen an | ||
< | <syntaxhighlight lang=bash> | ||
[NEW] Device D6:53:25:BE:37:73 SPEAKER5.0 | [NEW] Device D6:53:25:BE:37:73 SPEAKER5.0 | ||
</source> | </source> | ||
Ah, da ist sie ja! | Ah, da ist sie ja! | ||
Jetzt noch verbinden und raus: | Jetzt noch verbinden und raus: | ||
< | <syntaxhighlight lang=bash> | ||
[bluetooth]# scan off | [bluetooth]# scan off | ||
[CHG] Controller B8:27:EB:E6:D3:79 Discovering: no | [CHG] Controller B8:27:EB:E6:D3:79 Discovering: no | ||
Line 125: | Line 125: | ||
Jetzt muß noch die Addresse der Boxen in die <i>/etc/asound.conf</i> eingetragen werden (die existiert normalerweise noch nicht, einfach neu anlegen). | Jetzt muß noch die Addresse der Boxen in die <i>/etc/asound.conf</i> eingetragen werden (die existiert normalerweise noch nicht, einfach neu anlegen). | ||
< | <syntaxhighlight> | ||
pcm.!default { | pcm.!default { | ||
type plug | type plug | ||
Line 146: | Line 146: | ||
Noch einmal reboot: | Noch einmal reboot: | ||
< | <syntaxhighlight lang=bash> | ||
pi@raspberrypi:~ $ sudo reboot | pi@raspberrypi:~ $ sudo reboot | ||
</source> | </source> | ||
Line 152: | Line 152: | ||
Jetzt kann man mal Testen: | Jetzt kann man mal Testen: | ||
< | <syntaxhighlight lang=bash> | ||
pi@raspberrypi:~ $ aplay -L | pi@raspberrypi:~ $ aplay -L | ||
... | ... |
Revision as of 15:22, 25 November 2021
Lockrufe mit einem RaspberryPi und Bluetooth-Boxen abspielen
Womit ich es realisiert habe
- RaspberryPi 3B.
- Micro-SD Karte (die Größe ist den aktuellen Anforderungen auf Raspian.org zu entnehmen).
- USB Netzteil mit Micro-USB Steckern (für den RaspberryPi).
- Bluetoothfähige, wasserfeste Lautprecher (in meinem Fall Wireless Bluetooth Lautsprecher, Sonkir Tragbarer Bluetooth 5.0 TWS Lautsprecher mit Dual-Treiber Bass, 3D-Stereo, FM Radio, Freisprechfunktion, integriertem 1500-mAh-Akku).
- USB Netzteil mit Micro-USB Steckern (für die Boxen, bei anderen Boxen evtl. anderes Netzteil!).
- An meinem Laptop ist ein SD Card Reader, um das Betriebssystem auf die SD-Karte zu bekommen. Ist dieser nicht vorhanden, braucht man noch einen USB SD Card Reader. Kostet aber auch nicht die Welt.
Gründe für diese Wahl
Dank der guten Reichweite von Bluetooth, kann der RaspberryPi im Haus bleiben und nur die Boxen und ein Netzteil müssen nach draußen.
Raspian auf dem Pi installieren
- Anleitungen etc. sind auf Raspian.org zu finden, das würde hier kein Sinn machen alles doppelt zu halten.
Bluetooth aktivieren
Mit ssh als Benutzer pi auf den RaspberryPi verbinden. Windows-Nutzer können dafür Putty nutzen.
Bluetooth Service dauerhaft anschalten
<syntaxhighlight lang=bash> pi@raspberrypi:~ $ sudo systemctl enable bluetooth.service pi@raspberrypi:~ $ sudo systemctl start bluetooth.service </source>
Bluetooth Service Status prüfen
So sollte es aussehen: <syntaxhighlight lang=bash> pi@raspberrypi:~ $ sudo systemctl status bluetooth.service
- bluetooth.service - Bluetooth service
Loaded: loaded (/lib/systemd/system/bluetooth.service; enabled; vendor preset: enabled) Active: active (running) since Wed 2021-02-03 09:18:58 CET; 32min ago Docs: man:bluetoothd(8) Main PID: 943 (bluetoothd) Status: "Running" Tasks: 1 (limit: 2062) CGroup: /system.slice/bluetooth.service `-943 /usr/lib/bluetooth/bluetoothd
... </source> Sieht es hingegen so aus: <syntaxhighlight lang=bash> pi@raspberrypi:~ $ sudo systemctl status bluetooth.service
- bluetooth.service - Bluetooth service
Loaded: loaded (/lib/systemd/system/bluetooth.service; enabled; vendor preset: enabled) Active: inactive (dead) Docs: man:bluetoothd(8) </source> Dann sind im Betriebssystem die entsprechenden Treiber(module) für Bluetooth nicht geladen.
Bluetooth Module aktivieren
Wenn die Module deaktiviert (blacklisted) sind, müssen wir das ändern.
Der Befehl
egrep "(hci_uart|btbcm)" /etc/modprobe.d/*.conf
zeigt einem die Datei, wo das passiert.
Beispiel: <syntaxhighlight lang=bash> pi@raspberrypi:~ $ egrep "(hci_uart|btbcm)" /etc/modprobe.d/*.conf /etc/modprobe.d/blacklist-bluetooth.conf:blacklist hci_uart /etc/modprobe.d/blacklist-bluetooth.conf:blacklist btbcm </source> In meinem Beispiel also in /etc/modprobe.d/blacklist-bluetooth.conf.
Der Befehl
sudo perl -pi -e "s/(blacklist.*(hci_uart|btbcm))/#\1/g" <Datei>
kommentiert die blacklist Zeilen für die Beiden benötigten Module aus. <syntaxhighlight lang=bash> pi@raspberrypi:~ $ sudo perl -pi -e "s/(blacklist.*(hci_uart|btbcm))/#\1/g" /etc/modprobe.d/blacklist-bluetooth.conf </source> Anschließend einen Neustart(reboot) durchführen <syntaxhighlight lang=bash> pi@raspberrypi:~ $ sudo reboot </source>
Wenn die Module nach dem geladen sind, sieht es so aus: <syntaxhighlight lang=bash> pi@raspberrypi:~ $ sudo lsmod | grep bt btbcm 16384 1 hci_uart bluetooth 393216 37 hci_uart,bnep,btbcm,rfcomm </source> Dann nochmal den Bluetooth Service Status prüfen. Jetzt sollte alles gut sein.
Finden der Bluetooth-Boxen
<syntaxhighlight lang=bash> pi@raspberrypi:~ $ sudo bluetoothctl Agent registered [bluetooth]# scan on Discovery started [CHG] Controller B8:27:EB:E6:D3:79 Discovering: yes </source> Jetzt die Bluetooth-Boxen an <syntaxhighlight lang=bash> [NEW] Device D6:53:25:BE:37:73 SPEAKER5.0 </source> Ah, da ist sie ja! Jetzt noch verbinden und raus: <syntaxhighlight lang=bash> [bluetooth]# scan off [CHG] Controller B8:27:EB:E6:D3:79 Discovering: no Discovery stopped [bluetooth]# [bluetooth]# connect D6:53:25:BE:37:73 Attempting to connect to D6:53:25:BE:37:73 [CHG] Device D6:53:25:BE:37:73 Connected: yes [CHG] Device D6:53:25:BE:37:73 UUIDs: 0000110b-0000-1000-8000-00805f9b34fb [CHG] Device D6:53:25:BE:37:73 UUIDs: 0000110c-0000-1000-8000-00805f9b34fb [CHG] Device D6:53:25:BE:37:73 UUIDs: 0000110e-0000-1000-8000-00805f9b34fb [CHG] Device D6:53:25:BE:37:73 UUIDs: 0000111e-0000-1000-8000-00805f9b34fb [CHG] Device D6:53:25:BE:37:73 ServicesResolved: yes [CHG] Device D6:53:25:BE:37:73 Paired: yes Connection successful [SPEAKER5.0]# trust D6:53:25:BE:37:73 [CHG] Device D6:53:25:BE:37:73 Trusted: yes Changing D6:53:25:BE:37:73 trust succeeded [SPEAKER5.0]# paired-devices Device D6:53:25:BE:37:73 SPEAKER5.0 [SPEAKER5.0]# quit </source>
Jetzt muß noch die Addresse der Boxen in die /etc/asound.conf eingetragen werden (die existiert normalerweise noch nicht, einfach neu anlegen). <syntaxhighlight> pcm.!default { type plug
slave { pcm { type bluealsa device D6:53:25:BE:37:73 profile "a2dp" } } hint { show on description "Bluetooth SPEAKER5.0" }
} ctl.!default {
type bluealsa
} </source>
Noch einmal reboot: <syntaxhighlight lang=bash> pi@raspberrypi:~ $ sudo reboot </source> Die Boxen sollten beim Starten des RaspberryPi jetzt auch ein kleines Signal abspielen, wenn das Pairing stattfindet.
Jetzt kann man mal Testen: <syntaxhighlight lang=bash> pi@raspberrypi:~ $ aplay -L ... default
Bluetooth SPEAKER5.0
... </source>