Soundfile auf dem Raspberry im Loop abspielen für Telefonanlage

Ein Freund brauchte Hilfe bei einer älteren Telefonanlage. Diese spielt die Warteschleife über ein Signal an einer Klinkenbuchse ab und der bisherige Player der da den Audio Input geliefert hat, war defekt.

Ich habe daher einen Raspberry Pi 3 genommen den ich noch rumliegen hatte und das aktuelle Raspberry OS installiert. Das Soundfile habe ich nach /root/schleife.mp3 gelegt.
Für das Abspielen verwende ich mplayer und starte es über den rc.local Mechanismus. Dazu später mehr.

Damit mein Kumpel gegebenenfalls vor Ort die Lautstärke nachjustieren kann, habe ich eine Datei /boot/LAUTSTAERKE angelegt und dort mal eine 2 rein geschrieben (sollte +2dB bedeuten). Die boot Partition einer Raspberry OS SD-Karte ist ja vfat formatiert, daher kann er diese Datei dann ganz einfach mit einem Kartenleser unter Windows editieren und diese Ziffer je nach Bedarf verändern.

Ich habe daher meinen Befehl

/usr/bin/mplayer -af volume=`cat /boot/LAUTSTAERKE`  -loop 0 /root/schleife.mp3 &

in die /etc/rc.local aufgenommen. Der cat Befehl in den backticks sorgt eben dafür dass der Wert aus /boot/LAUTSTAERKE hier eingefügt wird.

Standardmäßig wird die /etc/rc.local auf Raspberry OS nicht aufgeführt. Man muss eine System Unit dafür erstellen. Dazu legt man eine neue Datei /etc/systemd/system/rc-local.service an wie folgt:

[Unit]
Description=/etc/rc.local Compatibility
ConditionPathExists=/etc/rc.local

[Service]
Type=forking
ExecStart=/etc/rc.local start
TimeoutSec=0
StandardOutput=tty
RemainAfterExit=yes
SysVStartPriority=99

[Install]
WantedBy=multi-user.target

Anschließend muss der Service mit systemctl enable rc-local.service aktiviert werden. (Danke hier für diesen Tipp an http://www.netzmafia.de/skripten/hardware/RasPi/RasPi_Auto.html )

Dann kann man mal testweise einen Reboot durchführen und zum Beispiel mit einem Kopfhörer schauen ob da etwas aus dem Kopfhöreranschluss raus kommt. Wenn ja, ist das Ding soweit einsatzbereit.