Posts by veloci

    Hab für mpd gerade diesen Workaround ausprobiert: keine Abbrüche.

    Bei mir sieht das dann so aus:

    Code: /etc/mpd.conf
    [...]
    audio_output {
            type            "pipe"
            name            "Mi Speaker (pipe)"
            command         "aplay -D bluealsa -f cd"
            format          "44100:16:2"
            mixer_type      "software"
    }
    [...]
    Code: /etc/asound.conf
    defaults.bluealsa.service "org.bluealsa"
    defaults.bluealsa.device "00:9E:C8:61:C5:D5"
    defaults.bluealsa.profile "a2dp"

    Der automatische reconnect bei mpd geht aber weiterhin nicht.

    Beim Umschalten gibts im mpd-log aber ab und zu dann folgende Meldungen: Unterlauf!!! (mindestens 11610,661 ms)

    Ausserdem steigt die CPU-Last durch mpd auf 105% auf meinem pi3b+...

    EDIT: Nach einem reboot hatte mpd ca. 15% CPU-Last, nach einem 'mpc next' steigt sie dann auf o.g. 105%...

    auch mit hw:0,0 und bluealsa ais audio_output, hängt sich bluealsa auf wenn ich zwischen Sendern unterschiedlicher BitRate wechsele. (bbc scotland mit 128kbps und bbc world service mit 56kbps)

    Haben beide die gleiche Kodierung aac/mp3?

    Ich habs nur mit 128kbps und 192kbps als mp3 getestet - hatte keine anderen Streams

    Ach was ich noch festgestellt habe, alsa erwartet unter Buster bei aplay -D nicht mehr bluealsa:HCI=hci0,DEV=XX:XX... wie noch unter Stretch sondern bluealsa:SRV=org.bluealsa,DEV=XX:XX... . Sind diese Änderungen irgendwo dokumentiert?

    Diese Änderung spiegelt sich auch in der bluealsa-Konfiguration wieder: Vergleiche /etc/alsa/conf.d/20-bluealsa.conf (Buster) mit /usr/share/alsa/alsa.conf.d/20-bluealsa.conf (Stretch). Aber ob es daran liegt?

    So, hab mal buster lite vom 2019-09-26 aufgesetzt:

    mpd.conf enthält mehrere Audio-Outputs. Alle gleichzeitig aktiv (Klinke, Supstronics X400 DAC, Mi Bluetooth Speaker).

    Keine Abbrüche bei wechselnden Bitraten auf der BT-Box.

    Dafür aber schlechtere Audioausgabe via Bluetooth (häufigere "glitches") gegenüber Stretch.

    MPD setzt die laufende Wiedergabe (über die anderen Outputs) auf der BT-Box nicht mehr automatisch fort, wenn die Box eingeschaltet wird (manchmal klappt auch der BT-Autoconnect nicht). Aber selbst wenn der Autoconnect funktioniert, lässt erst ein mpc pause; mpc play die BT-Box erklingen. Unter Stretch funktioniert das alles problemlos.

    Leider keine konkreten Meldungen dazu in den Logfiles:

    Code: /var/log/mpd.log
    ---> Box ausgeschaltet
    ALSA lib bluealsa-pcm.c:219:(io_thread) PCM FIFO write error: Broken pipe
    Oct 29 15:44 : exception: Failed to play on "Mi Speaker" (alsa): snd_pcm_poll_descriptors_revents() failed: No such device
    
    ---> keine weiteren Meldungen

    Das ist also noch einiges im Argen...

    Gruß,

    veloci

    Danke erstmal für die Info.

    Beim Wetterscreensaver muß ich noch nachbessern (da fehlt die initiale Wetterabfrage/-anzeige - spätestens 10 min nach Start des Screensavers ist das Wetter aber da...).

    Die Korrektur kommt dann in Beitrag #1833 als rev. 01 - also ab und zu mal nachschauen (heute aber nicht mehr)...

    Die Konfigurationsdatei '.newtron-radio.conf' wird immer im Verzeichnis des aufrufenden Benutzers erzeugt:

    Wenn ich das Radio über rc.local oder direkt via sudo newtron-radio starte (beides nicht empfohlen), dann wird sie unter /root/ erzeugt.

    Wenn das Radio dagegen direkt an der Touchscreen-Kommandozeile (als user pi), vom Desktop aus (als user pi) oder via systemd-service gestartet wird, dann wird sie unter /home/pi/ erzeugt.

    Gruß,

    veloci

    EDIT: Die korrigierte Version v3.2 Rev. 01 ist ab sofort in Beitrag #1833 zu finden.

    Unter Windows ist es ja etwas einfacher…

    Darf ich mal ganz laut lachen! Einfach ist anders - Die Rechteverwaltung unter Win ist ein gaaanz großes Chaos... Beschäftige dich mal damit. Dagegen sind Rechte und ACLs unter Linux Kindergarten.

    Auch unter Windows kannst du als normaler Benutzer nicht einfach im /Windows-Verzeichnis herumpfuschen. Auch da musst du Admin-Rechte haben um etwas zu ändern. Und selbst als Administrator kannst du unter Windows (ohne Verrenkungen) nicht alles machen.

    Überlege dir bitte gut, was du tust wenn du in Systemdateien herumpfuschst. Der User 'pi' ist auf dem Raspi eh schon privilegiert, da er sudo ohne Passwort verwenden kann (entspricht unter Windows etwa dem Hauptbenutzer mit "als Administrator ausführen"). Zudem ist 'pi' Mitglied einiger privilegierter Gruppen.

    Einfach die Rechte in /etc oder so zu Ändern kann weite Sicherheitslücken aufreißen...

    Hast du bei deinem Windows etwa die Rechte des Hauptbenutzers so geändert, dass er direkt Administrator ist? Oder Arbeitest du direkt als Administrator? Wenn ja, tut es mir echt leid...

    So, rev. 00 von Newtron-Radio v3.2 ist soweit fertig. Und wieder einmal hat sich jede Menge gegenüber der Vorversion geändert. Der größte Teil davon intern - ich bin endlich die 'global'-Deklarationen in den Funktionen und Klassen los. Zwar bin ich mit der Umstellung noch lange nicht soweit wie ich eigentlich wollte, aber in letzter Zeit hab ich einfach mal wieder zu wenig Zeit...

    Die nach außen sichtbaren Änderungen hier nun im einzelnen.

    • Die von kle vorgeschlagenen Änderungen bezüglich der Playlistenauswahl wurden implementiert.
    • Der Autostart im Konsolenmodus kann jetzt via systemd-Unit realisiert werden (mehr dazu weiter unten)
    • Ort und Name der Radio-Konfigurationsdatei wurde geändert. Diese befindet sich jetzt im Homeverzeichnis des jeweiligen Benutzers und heißt jetzt .newtron-radio.conf. Hier kann nun auch der Openweathermap API-Key und der Ort für die Wetteranzeige eingetragen werden (diese Änderung war nötig, damit der Autostart via systemd - als user pi - funktioniert).
    • Die Backlightsteuerung wurde vorerst entfernt, da RPi.gpio root-Rechte benötigte, was dem Autostart via systemd im Weg stand. Ein Umstieg auf gpiozero ist aber in Planung.
    • Die Skin-Konfig-Dateien akzeptieren keine symbolischen Farbnamen mehr sondern nur noch RGB-Tupel. Änderungen der Fontgröße können nur noch im Skript selbst vorgenommen werden.
    • Es gibt ein paar neue Button-Symbole. Damit sollen die Symbole eindeutiger und verständlicher werden.
    • Beim Clock-Screensaver wird nun auch der Name der Radiostation angezeigt.
    • ...

    Wie immer muß mindestens Raspbian Lite installiert sein. Netzwerk und Touchdisplay müssen vollständig funktionieren (vor allem der Touch). Bei Raspbian Lite letzteres auch auf der Konsole.

    Wer Probleme hat sein Touchdisplay für die Konsole einzurichten kann sich Beitrag #1778 (für Waveshare SPI LCD Touchdisplays) oder Beitrag #1824 (USB-Touchdisplays mit der USB-ID 0eef:0005 (D-Wav) u.A. für das Waveshare 5inch HDMI LCD (B) Display mal ansehen.

    Installer: newtron-radio-setup-v3.2.sh (rev. 01 vom 25.10.19)

    Installiert NewTron-Radio und alle nötigen weiteren Pakete

    Installation mit sh newtron-radio-setup-v3.2.sh

    Danach kann das Radio mit der Eingabe von newtron-radio direkt an der Touchscreen-Konsole (bzw. via ssh mit X11-Forwarding) oder mit sudo newtron-radio an der Kommandozeile (via putty/ssh ohne X11-Forwarding) gestartet werden.

    Autostart ist nun via systemd möglich.

    Hierzu wird eine entsprechende Unit vom Installationsskript nach /etc/systemd/system/ kopiert.

    Um zu überprüfen, ob der Autostart über systemd funktionieren würde gibt man als user pi an der (putty/ssh-)Kommandozeile einfach sudo systemctl start newtron-radio ein. Wenn alles Korrekt eingerichtet wurde sollte das Radio nun auf dem Touchdisplay zu sehen und zu bedienen sein. Sollte das nicht der Fall sein, kann man sich mit journalctl -u newtron-radio die Fehlermeldungen anzeigen lassen.

    Sollte alles wie erwartet funktionieren, kann man den Autostart mittels sudo systemctl enable newtron-radio aktivieren.

    Entsprechend kann man den Autostart mit sudo systemctl disable newtron-radio wieder deaktivieren oder das Radio mit sudo systemctl stop newtron-radio beenden. Ist der Autostart aktiv läuft die 'newtron-radio'-Instanz immer als User 'pi' und benutzt dessen Konfiguration.

    Display Spoiler

    Sollte der Autostart nicht funktionieren, kann das vor allem an fehlenden oder falschen Umgebungsvariablen (SDL_FBDEV, SDL_MOUSEDEV usw.) liegen, da systemd die Umgebung vom User 'pi' nicht berücksichtigt. Diese Variablen können daher direkt im Radio-Skript (newtron_radio.py) angepasst werden oder als eigene config-Unit z.B. in /etc/systemd/system.conf.d/10-SDL-TSLIB-env.conf eingetragen werden:

    Code: /etc/systemd/system.conf.d/10-SDL-TSLIB-env.conf
    [Manager]
    DefaultEnvironment="SDL_VIDEODRIVER=fbcon" "SDL_FBDEV=/dev/fb1" "SDL_MOUSEDRV=TSLIB" "SDL_MOUSEDEV=/dev/input/touchscreen" "TSLIB_TSDEVICE=/dev/input/touchscreen" "TSLIB_FBDEVICE=/dev/fb1"

    Hat man die Datei neu erstellt, muss sie von systemd noch eingelesen werden. Dies erfolgt mit sudo systemctl daemon-reload

    Das passende usbmount-Skript (Automatisches einhängen von USB-Datenträgern in den Zugriffsbereich von mpd) gibts in Beitrag #1760.

    Falls etwas nicht funktioniert, bitte ich darum, das Problem hier zu posten. Aber bitte nur mit möglichst genauen Fehlermeldungen und einer Beschreibung dessen was zum Fehler geführt hat.

    Gruß,

    veloci

    PS: Wie immer wurden einige Fehler beseitigt und wahrscheinlich einige neu eingefügt...


    Achtung!


    Bitte beachtet auch folgende ergänzende Hinweise, die kle hier NewTron-Radio Korrekturen freundlicherweise schrieb!


    (Editiert von hyle)


    Darüber hatte ich mir auch schon Gedanken gemacht.

    Wie soll sowas dann im "consume"-Modus von mpd aussehen, wo jeder gespielte Titel aus der Playliste gelöscht wird. Irgendwann ist die leer. Oder mit einer tatsächlich leeren Playlist (z.B. durch fehlerhaftes kopieren entstanden - Dateilänge 0)? Oder du löschst über das Radio nach und nach einzelne Einträge aus der aktuellen Playliste - auch die kann irgendwann leer sein.

    In allen Fällen wird z.Zt. die leere Playliste mit entsprechender Meldung "no playlist entries.." angezeigt. Also Immer dann, wenn die Playliste leer ist.

    Gruß,

    veloci

    Nochmal zum Ursprünglichen Fall:

    Eigentlich ist das kein Fehler. Wenn er "Radio BOB!" nicht findet startet das Radio mit einer leeren Playliste.

    Dann muß man halt in der Playlistenauswahl erst eine auswählen (der rechte Pfeil nach oben). Das Radio weiß ja beim (erst)Start nicht, welche deiner Playlisten du hören willst wenn die Defaultliste oder das state-file von mpd nicht existieren.

    Die Meldung "no playlistentries ..." (könnte man noch umbenennen zu "no entries in playlist...") heisst nur, dass in der aktuellen Playliste vom mpd keine Einträge vorhanden sind und das ist ja nicht gelogen. Wenn das Radio keine Playlisten oder Dateien findet meldet es "no playlists or files found..."

    Deinen zweiten Fehler konnte ich bisher allerdings noch nicht nachvollziehen bzw. ich konnte bisher immer eine neue Playliste auswählen.

    Übrigens, autostart via systemd funktioniert mit v3.2 auch schon (newtron-radio wird als user pi gestartet, Fehlerabfrage über journalctl -u newtron-radio, usw.)...

    Gruß,

    veloci

    In der bereits vorhandenen aber noch nicht veröffentlichten Version 3.2 ist das schon korrigiert.

    Das passiert übrigens, wenn im state-file von mpd noch nichts drin ist (also wenn mpd noch nie ein stück gespielt hat) aber eigene Playlisten bereits vorhanden sind - ein Fall, den ich bisher nie berücksichtigt hatte...

    Gruß,

    veloci