Ich habe immer wieder Schwierigkeiten mit meinen WLA-Zugang zum Raspi, wenn der Raspi weiter weg von der Fritzbox steht.
Meine Vermutung ist, dass sich das WLAN nach einiger Zeit abschaltet.
$ iw wlan0 get power_save
Power save: on
In der crontab für jedes reboot powersave ausschalten
$ sudo crontab -e
@reboot /usr/sbin/iw wlan0 set power_save off > /home/wnf/power_save_log.txt 2>&1
$ iw wlan0 get power_save
Power save: off
Make "iw wlan0 set power_save off" permanent
Leider hat das nicht geholfen, nach zwei Tagen wurde die WLAN-Verbindung wieder getrennt:
May 08 16:43:38 sonoro wpa_supplicant[427]: wlan0: CTRL-EVENT-DISCONNECTED bssid=1c:ed:6f:60:9d:0b reason=0 locally_generated=1
May 08 16:43:38 sonoro wpa_supplicant[427]: wlan0: CTRL-EVENT-REGDOM-CHANGE init=CORE type=WORLD
May 08 16:43:38 sonoro wpa_supplicant[427]: wlan0: CTRL-EVENT-REGDOM-CHANGE init=USER type=COUNTRY alpha2=DE
May 08 16:43:39 sonoro wpa_supplicant[427]: wlan0: Trying to associate with SSID 'FRITZ!Box 7490'
May 08 16:43:39 sonoro wpa_supplicant[427]: wlan0: Associated with 0c:72:74:e3:c8:5f
May 08 16:43:39 sonoro wpa_supplicant[427]: wlan0: CTRL-EVENT-CONNECTED - Connection to 0c:72:74:e3:c8:5f completed [id=0 id_str=]
May 08 16:43:39 sonoro wpa_supplicant[427]: wlan0: CTRL-EVENT-SUBNET-STATUS-UPDATE status=0
May 08 16:43:39 sonoro wpa_supplicant[427]: wlan0: CTRL-EVENT-REGDOM-CHANGE init=COUNTRY_IE type=COUNTRY alpha2=DE
May 08 16:47:43 sonoro wpa_supplicant[427]: wlan0: Associated with 1c:ed:6f:60:9d:0b
May 08 16:47:43 sonoro wpa_supplicant[427]: wlan0: CTRL-EVENT-CONNECTED - Connection to 1c:ed:6f:60:9d:0b completed [id=0 id_str=]
May 08 16:47:43 sonoro wpa_supplicant[427]: wlan0: CTRL-EVENT-SUBNET-STATUS-UPDATE status=0
May 08 16:54:03 sonoro wpa_supplicant[427]: wlan0: CTRL-EVENT-DISCONNECTED bssid=1c:ed:6f:60:9d:0b reason=2
May 08 16:54:03 sonoro wpa_supplicant[427]: wlan0: CTRL-EVENT-REGDOM-CHANGE init=CORE type=WORLD
May 08 16:54:03 sonoro wpa_supplicant[427]: wlan0: CTRL-EVENT-REGDOM-CHANGE init=USER type=COUNTRY alpha2=DE
May 08 16:54:04 sonoro wpa_supplicant[427]: wlan0: Trying to associate with SSID 'FRITZ!Box 7490'
May 08 16:54:04 sonoro wpa_supplicant[427]: wlan0: CTRL-EVENT-DISCONNECTED bssid=0c:72:74:e3:c8:5f reason=3 locally_generated=1
May 08 16:54:05 sonoro wpa_supplicant[427]: p2p-dev-wlan0: CTRL-EVENT-DSCP-POLICY clear_all
May 08 16:54:05 sonoro wpa_supplicant[427]: p2p-dev-wlan0: CTRL-EVENT-DSCP-POLICY clear_all
May 08 16:54:05 sonoro wpa_supplicant[427]: nl80211: deinit ifname=p2p-dev-wlan0 disabled_11b_rates=0
May 08 16:54:05 sonoro wpa_supplicant[427]: Could not read interface p2p-dev-wlan0 flags: No such device
May 08 16:54:05 sonoro wpa_supplicant[427]: wlan0: CTRL-EVENT-DSCP-POLICY clear_all
May 08 16:54:05 sonoro wpa_supplicant[427]: wlan0: CTRL-EVENT-DSCP-POLICY clear_all
May 08 16:54:05 sonoro wpa_supplicant[427]: nl80211: deinit ifname=wlan0 disabled_11b_rates=0
Zweiter Versuch Bluetooth deaktivieren:
sudo nano /boot/firmware/config.txt
[all]
dtoverlay=disable-bt
Tags: raspi wlan
$ sudo nano /boot/config.txt
(Rotate 270)
dtoverlay=waveshare35a -> dtoverlay=waveshare35a:rotate=0
Operation geglückt. Patient tot.
Leider ist der Bildschirm stark blickwinkelabhängig, so dass ich die Anzeige wieder zurück gedreht habe.
Tags: raspiLiteratur
Den Autostart Ordner anlegen, falls er nicht existiert. Danach eine Startdatei anlegen.
mkdir ~/.config/autostart
nano .config/autostart/wnfjukebox.desktop
Das Programm im Terminal starten, damit man eventuelle Fehlermeldungen sehen kann.
[Desktop Entry]
Type=Application
Name=wnfJukebox-Anzeige
Exec=xterm -hold -e '/home/bernd/bin/wnfjukenbox'
Das Programm arbeitet als Anzeige für MQTT. Da das Netzwerk beim Autostart noch nicht hochgefahren ist, muss auf das Netzwerk gewartet werden
from time import sleep
import paho.mqtt.client as mqtt
cMQTT_HOST = '192.168.80.107'
cMQTT_TOPIC = '/c2023/wnfPlay'
aMusikAnzeige = None
def on_connect(client, userdata, flags, rc):
print("Connected with result code " + str(rc))
client.subscribe(cMQTT_TOPIC)
def on_message(client, userdata, msg):
global aMusikAnzeige
# print(client)
# print(userdata)
# aJetzt = datetime.datetime.now().strftime("%H:%M")
# print(aJetzt + " " + msg.topic + " " + str(msg.payload))
if aMusikAnzeige:
aMusikAnzeige.anzeige(msg)
def starteAnzeige(aAnzeige):
global aMusikAnzeige
aMusikAnzeige = aAnzeige
client = mqtt.Client()
client.on_connect = on_connect
client.on_message = on_message
# auf dem Raspi mit LXQT wird das Programm von Autostart gestartet
# es kann sein, dass das Netzwerk noch nicht hochgefahren wurde.
# Deshalb wir hier auf das Netzwerk gewartet.
aConnected = False
aAnz = 0
while not aConnected and (aAnz < 10):
try:
client.connect(cMQTT_HOST, 1883, 60)
aConnected = True
client.loop_start()
except Exception as E:
print(E)
sleep(5)
aAnz += 1
Tags: LQXT raspi Autostart
Auch unter Raspberry Pi OS Lite läuft der Music Player Daemon (mpd).
zur Beachtung:
Nachdem auf dem Raspi Zero das Soundsystem funktioniert, kann ich den mpd installieren.
sudo apt install mpd
Der User mpd muss zur Gruppe audio hinzugefügt werden
sudo usermod -aG audio mpd
Anzeige der vorhandenen Soundkarten
aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: vc4hdmi [vc4-hdmi], device 0: MAI PCM i2s-hifi-0 [MAI PCM i2s-hifi-0]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: sndrpihifiberry [snd_rpi_hifiberry_dac], device 0: HifiBerry DAC HiFi pcm5102a-hifi-0 [HifiBerry DAC HiFi pcm5102a-hifi-0]
Subdevices: 0/1
Subdevice #0: subdevice #0
Die Datei /etc/mpd.conf anpassen:
sudo nano /etc/mpd.conf
Die Zeile kommentieren, damit der Zugriff über das Handy funktioniert:
# bind_to_address "localhost"
audio_output {
type "alsa"
name "Hifi Berry DAC"
device "hw:1,0" # optional
mixer_type "software" # optional
## mixer_device "default" # optional
## mixer_control "PCM" # optional
## mixer_index "0" # optional
}
sudo systemctl enable mpd
sudo service mpd restart
sudo service mpd status
music_directory "/var/lib/mpd/music"
playlist_directory "/var/lib/mpd/playlists"
Bei Problemen das journalctl anzeigen:
journalctl -f -u mpd
Meine Fehlermeldungen:
Tags: raspi mpdRaspberry Pi Zero 2 W Rev 1.0 mit Soundkarte hifiberry-dac
Da das Soundsystem unter Linux nicht trivial zu installieren ist, installiere ich ein komplettes Raspbian.
Auf dem Raspi die Soundkarte eintragen:
$ sudo nano /boot/firmware/config.txt
dtoverlay=hifiberry-dac
Nicht benötigte Programme deinstallieren
$ sudo apt purge firefox
mkdir bin
nano bin/wls_update
#!/bin/bash
sudo apt update && sudo apt dist-upgrade
sudo apt-get autoremove --purge
sudo apt-get autoclean
sudo chmod +x bin/wls_update
Das Soundsystem aktivieren
sudo raspi-config
6 - Advanced Options
A7 - Audio Config
1 - Pulse Audio
Den Raspi neustarten.
Die Soundausgabe testen:
aplay /usr/share/sounds/alsa/Front_Center.wav
aplay /usr/share/sounds/alsa/Front_Left.wav
aplay /usr/share/sounds/alsa/Front_Right.wav
aplay /usr/share/sounds/alsa/Front_Center.wav
oder mit
speaker-test -t wav -c 2
Tags: raspi hifiberry-dac alsa sound