Inhaltsverzeichnis
Bluetooth Box
noch nicht geprüft und getestet
https://www.voss.earth/2018/04/07/volumio-auf-dem-raspberry-pi-als-bluetooth-lautsprecher-verwenden/ http://www.knight-of-pi.org/finally-raspberry-pi-3b-buster-as-bluetooth-audio-sink/
ähnlich wie getestet aber noch ungetestet:
https://gist.github.com/mill1000/74c7473ee3b4a5b13f6325e9994ff84c https://github.com/guillaumezin/bluez-alsa/tree/master
vorherige Versuche
cat /boot/cmdline.txt console=serial0,115200 console=tty1 root=PARTUUID=d9b3f436-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait bluetooth.disable_ertm=1
vorherige Ausgabe:
cat /sys/module/bluetooth/parameters/disable_ertm N
nun nach hinzufügen von bluetooth.disable_ertm=1
cat /sys/module/bluetooth/parameters/disable_ertm Y
sudo vi /etc/bluetooth/network.conf
auf true gesetzt, bzw. # davor entfernt:
DisableSecurity=true
Privacy = off Cache = always MinEncKeySize = 0 ReconnectAttempts=7
getestet:
https://github.com/Arkq/bluez-alsa https://github.com/Arkq/bluez-alsa/wiki/Installation-from-source https://github.com/nicokaiser/rpi-audio-receiver
Im Original Raspbian erscheinen zunächst die folgenden Meldungen wenn journalctl -u bluealsa.service
aufgerufen wird wärend man ein älteres Smartphone mit der BlueBox verbunden hat.
bluealsa: Unsupported RTP payload type: 1 bluealsa: Unsupported RTP payload type: 1 bluealsa: Unsupported RTP payload type: 1
Die Bluetooth Box oder kurz BlueBox, besteht aus einem Raspberry Pi 3 oder jeden anderen Linux Computer mit Bluetooths, welcher Musik-Dateien von entfernten Geräten wie z.B. Smartphones über seine angeschlossenen Musik-Boxen wiedergibt.
Installation von libfdk-aac
sudo apt-get install autoconf libtool -y mkdir ffmpeg cd ffmpeg wget -O fdk-aac.zip https://github.com/mstorsjo/fdk-aac/zipball/master unzip fdk-aac.zip cd mstorsjo-fdk-aac* autoreconf -fiv ./configure --prefix="$HOME/ffmpeg_build" --disable-shared sudo make sudo make install export PKG_CONFIG_PATH=/home/pi/ffmpeg_build/lib/pkgconfig
Installation von blue-alsa
Eine neuere Version von blue-alsa wird unter Raspbian Buster kompiliert, damit auch von älteren Geräten mit pulseaudio < Version 13 Musik über der BlueBox abgespielt werden können. Wichtig ist hier beim kompilieren die Option –disable-payloadcheck
.
https://github.com/Arkq/bluez-alsa
Auf dieser Webseite steht noch mal ausdrücklich warum, in meinem Fall, beim Kompilieren die Option –disable-payloadcheck
verwendet wird:
disable RTP payload type check (workaround for a bug in PulseAudio versions before 13.0) Earlier releases of pulseaudio set a non-compliant value in the payload type field of RTP packets, meaning that bluetooth standard compliant devices and applications (such as bluealsa) would reject those packets. This option disables that check in bluealsa, permitting a computer running PulseAudio to use another computer running bluealsa as an audio sink. This bug in PulseAudio was fixed in release 13.0.
Benötigt?
sudo apt-get install libdbus-1-dev libglib2.0-dev libudev-dev libical-dev libreadline-dev -y wget http://www.kernel.org/pub/linux/bluetooth/bluez-5.52.tar.xz tar xvf bluez-5.52.tar.xz && cd bluez-5.52 ./configure --prefix=/usr --mandir=/usr/share/man --sysconfdir=/etc --localstatedir=/var --enable-experimental make -j4 sudo make install sudo reboot
../configure --enable-aac --enable-ofono --enable-debug --disable-payloadcheck export LIBASOUND_THREAD_SAFE=0
sudo make install
Nach dem Kompilieren von bluealsa wird die bestehende Binär-Datei unter /usr/bin/bluealsa
mit der neuen Version überschrieben:
/usr/bin/bluealsa -V
2.1.0
Nach einem reboot sollten die folgenden Dienste für die BlueBox laufen:
~ $ ps aux|grep -i blue root 322 3.6 0.4 37064 3908 ? Ssl 20:27 0:23 /usr/bin/bluealsa -i hci0 -p a2dp-sink root 411 1.3 0.1 15424 1896 ? Ssl 20:27 0:08 /usr/bin/bluealsa-aplay --pcm-buffer-time=250000 00:00:00:00:00:00 root 435 0.0 0.3 7064 3504 ? Ss 20:27 0:00 /usr/libexec/bluetooth/bluetoothd pi 1372 0.0 0.0 7680 516 pts/0 S+ 20:38 0:00 grep --color=auto -i blue
Übersicht aufgerufene Kommandos
sudo raspi-config sudo nano /lib/systemd/system/bluealsa.service sudo apt update ip a sudo ip link set wlan0 down apt list "*bluealsa*" sudo apt install bluealsa sudo nano /lib/systemd/system/bluealsa.service sudo systemctl restart bluealsa.service bluetoothctl sudo systemctl restart bluetooth.service systemctl status bluetooth.service sudo bluetoothctl bluealsa-aplay 00:00:00:00:00:00 sudo halt https://scribles.net/streaming-bluetooth-audio-from-phone-to-raspberry-pi-using-alsa/ systemctl status bluetooth.service systemctl status bluealsa.service bluetoothctl sudo bluetoothctl bluealsa-aplay --pcm-buffer-time=170000 --profile-a2dp 00:00:00:00:00:00 bluealsa-aplay 00:00:00:00:00:00 sudo nano /lib/systemd/system/bluealsa.service sudo systemctl status bluealsa.service sudo systemctl restart bluealsa.service sudo systemctl stop bluealsa.service sudo nano /lib/systemd/system/bluealsa.service sudo systemctl restart bluealsa.service /lib/systemd/system/bluealsa.service systemctl daemon-reload sudo systemctl daemon-reload sudo systemctl restart bluealsa.service sudo systemctl status bluealsa.service bluealsa-aplay 00:00:00:00:00:00 sudo journalctl -u alsa-state.service sudo journalctl -u bluealsa.service sudo journalctl -u bluealsa.service sudo nano /lib/systemd/system/bluealsa.service sudo apt install bluealsa python-dbus sudo apt list "*bluealsa*" wget https://github.com/guillaumezin/bluez-alsa/releases/download/v1.2.0c/bluezalsa_20171106-1_armhf.deb sudo apt list "*bluealsa*" sudo apt list "*bluez*" sudo apt show bluealsa sudo apt purge bluealsa apt list "*bluez*" sudo dpkg -i bluezalsa_20171106-1_armhf.deb apt list "*bluez*" bluealsa-aplay 00:00:00:00:00:00 sudo systemctl status bluealsa.service /usr/bin/bluealsa -p a2dp-sink sudo apt install autoconf libtool -y mkdir ffmpeg cd ffmpeg/ wget -O fdk-aac.zip https://github.com/mstorsjo/fdk-aac/zipball/master unzip fdk-aac.zip cd mstorsjo-fdk-aac-e7d8591/ autoreconf -fiv ./configure --prefix="$HOME/ffmpeg_build" --disable-shared sudo make echo $? sudo make install echo $? export PKG_CONFIG_PATH=/home/pi/ffmpeg_build/lib/pkgconfig sudo apt list "*bluez*" bluetoothctl -v sudo nano /etc/bluetooth/main.conf sudo bluetoothctl sudo chmod +x /usr/local/bin/a2dp-agent /usr/bin/bluealsa -p a2dp-sink sudo apt purge bluezalsa wget -O fdk-aac.zip https://github.com/mstorsjo/fdk-aac/zipball/master wget -O bluez-alsa_arkq.zip https://github.com/Arkq/bluez-alsa/archive/master.zip unzip bluez-alsa_arkq.zip cd bluez-alsa-master/ autoreconf --install echo $? mkdir build cd build/ ../configure --enable-aac --enable-ofono --enable-debug --disable-payloadcheck echo $? apt list "*alsa*" sudo apt install alsa sudo apt install alsa-base ../configure --enable-aac --enable-ofono --enable-debug --disable-payloadcheck rm -r bluez-alsa-master apt list "*alsa*" apt list "*libasound2*" sudo apt install libasound2-dev unzip bluez-alsa_arkq.zip cd bluez-alsa-master/ autoreconf --install mkdir build && cd build sudo apt install libkf5bluezqt-dev sudo apt install bluez-tools ../configure --enable-aac --enable-ofono --enable-debug --disable-payloadcheck sudo apt install bluez-utils bluez-compat bluez-hcidump checkinstall libusb-dev libbluetooth-dev sudo apt install bluez-compat bluez-hcidump checkinstall libusb-dev libbluetooth-dev sudo apt install bluez-hcidump checkinstall libusb-dev libbluetooth-dev sudo apt install libdbus-1-dev sudo apt install libglib2.0-dev ../configure --enable-aac --enable-ofono --enable-debug --disable-payloadcheck apt list "*sbc*" sudo apt install libsbc-dev ../configure --enable-aac --enable-ofono --enable-debug --disable-payloadcheck echo $? sudo bluetoothctl wget http://www.kernel.org/pub/linux/bluetooth/bluez-5.52.tar.xz tar xvf bluez-5.52.tar.xz && cd bluez-5.52 find . -type f -iname "*a2dp*" ./configure --prefix=/usr --mandir=/usr/share/man --sysconfdir=/etc --localstatedir=/var --enable -experimental echo $? apt list "*libudev*" sudo apt install libudev-dev ./configure --prefix=/usr --mandir=/usr/share/man --sysconfdir=/etc --localstatedir=/var --enable -experimental sudo apt install libical-dev sudo apt install libreadline-dev ./configure --prefix=/usr --mandir=/usr/share/man --sysconfdir=/etc --localstatedir=/var --enable -experimental echo $? make -j4 echo $? sudo make install echo $? bluetoothctl -v sudo bluetoothctl ls -la /usr/local/bin/ find . -type f -iname "*a2dp-agent*" cd bluez-5.52 # a2dp war auf der Git Projektseite Datei im Code aufgelistet und konnte per copy & paste geladen werden. sudo find . -type f -iname "*a2dp*" sudo find . -type f -iname "*a2dp.service*" cd bluez-alsa-master/ sudo find . -type f -iname "*a2dp.service*" find /usr/ -type f -iname "*.wav" aplay /usr/share/sounds/alsa/Front_Center.wav aplay /usr/share/sounds/alsa/Rear_Center.wav alsamixer aplay /usr/share/sounds/alsa/Rear_Center.wav aplay -l aplay /usr/share/sounds/alsa/Front_Center.wav sudo nano /usr/local/bin/a2dp sudo chmod +x /usr/local/bin/a2dp ls -la /usr/local/bin/ sudo mv /usr/local/bin/a2dp /usr/local/bin/a2dp-agent /usr/local/bin/a2dp-agent sudo bluetoothctl /usr/local/bin/a2dp-agent sudo systemctl status bluetooth.service sudo systemctl daemon-reload sudo systemctl status bluetooth.service /usr/local/bin/a2dp-agent sudo systemctl restart bluetooth.service sudo systemctl status bluetooth.service sudo systemctl status bluealsa.service sudo systemctl stop bluealsa.service /usr/local/bin/a2dp-agent nano /usr/local/bin/a2dp-agent bluealsa-aplay -vv 00:00:00:00:00:00 sudo reboot sudo systemctl status bluealsa.service sudo systemctl status bluetooth.service sudo journalctl -u bluetooth.service bluealsa-aplay 00:00:00:00:00:00 apt list "blue*" bluealsa-aplay 00:00:00:00:00:00 ls -la /usr/local/bin/ ls -la /usr/local/sbin/ sudo apt install bluealsa nano ~/.asoundrc bluealsa-aplay 00:00:00:00:00:00 sudo apt purge bluezalsa sudo nano /etc/bluetooth/main.conf rm bluezalsa_20171106-1_armhf.deb ls -la bluez-5.52/client/ ls -la bluez-5.52/tools
Hab hier Installation von NicoKaiser GitRepo
mkdir nicokaiser cd nicokaiser/ wget https://github.com/nicokaiser/rpi-audio-receiver/archive/master.zip ls -la unzip master.zip cd rpi-audio-receiver-master/ cat ~/.asoundrc rm ~/.asoundrc ./install.sh sudo reboot cd nicokaiser/ cd rpi-audio-receiver-master/ ps aux|grep -i blue sudo journalctl -u bluetooth.service sudo journalctl -u bluealsa-aplay.service cat /boot/config.txt aplay /usr/share/sounds/alsa/Rear_Center.wav ps aux|grep -i blue sudo journalctl -u bluealsa.service apt list "*bluez*" cd bluez-alsa-master/ ls -la
Neukompelieren vom bluealsa
Es wird eine neuere Version von Bluealsa benötigt, daher wird die bestehende mit dem payload Error durch diese ersetzt, überschrieben. Eine Deinstallation der bestehenden wurde nicht durchgeführt.
Die alte Version zeigt zunächst noch eine niedrigere Versions-Nr. an:
/usr/bin/bluealsa -V
autoreconf --install cd build/ rm -r build/ mkdir build && cd build ../configure --enable-aac --enable-ofono --enable-debug --disable-payloadcheck 449 echo $? apt list "*fdk*" ls -la ../../ffmpeg_build/ history |grep PKG export PKG_CONFIG_PATH=/home/pi/ffmpeg_build/lib/pkgconfig ../configure --enable-aac --enable-ofono --enable-debug --disable-payloadcheck echo $? export LIBASOUND_THREAD_SAFE=0 make echo $? /usr/bin/bluealsa -V make install echo $? sudo make install echo $? /usr/bin/bluealsa -V sudo reboot /usr/bin/bluealsa -V ps aux|grep -i blue sudo journalctl -u bluealsa.service
Fehler Errors
Ist es nicht möglich sich mit der BlueBox zu verbinden?
Dann muss sichergestellt sein das der bluealsa-aplay Service läuft.
sudo systemctl status bluealsa-aplay.service
Dieser wird nicht automatisch mitgestartet wenn man den bluetooth Service startet. Es reicht aber aus nur bluealsa-aplay Service zu starten, denn dieser startet alle anderen benötigten bluetooth Services.