NewTron-Radio: Auflösungsunabhängiges Tron-Radio

  • veloci

    das Skript habe ich auf

    • dem RPi 3B+ mit 2019-06-20-raspbian-buster-lite.img auf einem USB-Stick
    • (aktualisiert mit sudo apt-get update --allow-releaseinfo-change und sudo apt-get upgrade) und
    • dem NewTron-Radio installiert mit newtron-radio-setup-v3.0.sh

    gestartet.

    was will mir das sagen?

    Irgend ein input von stdin wird erwartet, aber was.

    Kann ich alles rückgängig machen?

    Edited 3 times, last by kle ().

  • -i used with no filenames on the command line, reading from STDIN.

    Danach kommt nichts mehr?


    '-i' kommt im Setupskript gar nicht vor. Woher das kommt kann ich also nicht sagen.


    Rückgängig machen? Komme ich gleich zu!


    Füge mal im Setupskript in die Zweite Zeile set -x ein und starte das Skript erneut und zeige mir die Ausgabe.


    Nun zum Rückgängig machen:

    Ich muß erstmal wissen, wie weit das Skript überhaupt gekommen ist und welches Raspbian du verwendet hast.


    Wenn es komplett durchgelaufen ist (Raspbian stretch oder buster):

    sudo apt purge exfat-fuse exfat-utils fuse libfuse2 lockfile-progs liblockfile-bin liblockfile1 pmount

    sudo rm /etc/systemd/system/systemd-udevd.service

    sudo systemctl daemon-reload

    sudo rm -rf /etc/usbmount

    Bei jessie oder wheezy fallen die beiden mittleren Kommandos weg.


    Dann müsstest du noch mal in deine mpd.conf schauen ob da irgendwo etwas verändert ist (das Skript soll dort follow_outside_symlinks "yes" setzen).


    Danach rebooten.



    Gruß,

    veloci

  • veloci

    Code: usbmount-setup-for-mpd.sh-2.log
    1. pi@raspberrypi:~ $ cat usbmount-setup-for-mpd.sh-2.log
    2. perl ist bereits installiert!
    3. mpd ist bereits installiert!
    4. usbmount ist bereits installiert!
    5. exfat-fuse ist bereits installiert!
    6. exfat-utils ist bereits installiert!

    Edit:

    raspbian? siehe #1761

    skript nicht komplett durchgelaufen

    pi@raspberrypi:~ $ grep -n follow_outside_symlinks /etc/mpd.conf

    139:#follow_outside_symlinks "yes"

    Zeile 139 ist Kommentar

    Edit2:

    Zeile 50: "perl -pi" habe ich im man perl nicht gesehen

    Edited 3 times, last by kle ().

  • Ah, fehler entdeckt... Danke!


    Das Skript ist fast vollständig durchgelaufen nur der letzte Punkt fehlt noch:

    follow_outside_symlinks "yes" in /etc/mpd.conf setzen


    Dann sollte usbmount eigentlich funktionieren (spätestens nach einem reboot).


    Zeile 50: "perl -pi" habe ich im man perl nicht gesehen

    perl -pi -e ... steht für "in Place Edit"


    Hier die korrigierte Version die jetzt auch im Originalbeitrag #1760 steht: usbmount-setup-for-mpd.sh

    Edited 3 times, last by veloci ().

  • funktioniert.

    in meinem Fall zeigt er zusätzlich die 2 Partitionen des USB-Sticks an auf dem das System ist als USB0 und USB1. USB2 ist der 2. USB-Stick mit den Alben.

    +-Symbol hat auch funktioniert.

    Man muß wieder daran denken, evtl. mit dem Mülleimer-symbol die Playlist zu leeren.


    Edit veloci denke mal darüber nach, ob es sinnvoller ist den Stick (defaultmäßig) "ro" zu mounten, damit das Filesystem integer bleibt, wenn man den Stick abzieht.

    Edited once, last by kle ().

  • Wer das will, kann in /etc/usbmount/usbmount.conf einfach zu den MOUNTOPTIONS ein 'ro' hinzufügen.

    in meinem Fall zeigt er zusätzlich die 2 Partitionen des USB-Sticks an auf dem das System ist als USB0 und USB1.

    In so einem Fall weiß ich allerdings nicht, welche Auswirkungen das 'ro'-Flag auf das System hat. Deshalb lasse ich es erstmal so und überlasse es dem Benutzer entsprechende Änderungen vorzunehmen.

    Vielleicht testest du das mal aus...

  • In so einem Fall weiß ich allerdings nicht, welche Auswirkungen das 'ro'-Flag auf das System hat.

    naja, beim System-Boot werden die System-Partitionen automatisch gemounted, entweder von SD-Karte oder vom USB-Stick.

    Mir geht es um die zusätzlichen USB-Sticks. Die sollen vom usb-mount readonly gemountet werden. Das konnte man doch in der (usb-mount) conf-Datei einstellen, oder erinnere ich mich falsch?

  • reden wir aneinander vorbei?

    Der USB-Stick mit dem System wird doch nicht von usb-mount gemountet?


    Jetzt weiß ich worauf Du hinaus willst.

    Ich wollte alle weiteren USB-Sticks "ro" mounten.

    Du hast beabsichtigtes Schreiben auf den Stick im Kopf, das damit verhindert würde.

  • Der USB-Stick mit dem System wird doch nicht von usb-mount gemountet?

    Vermutlich doch. Zusätzlich zum mount mit UUID beim Systemstart. Aber da könnte mount erhellendes beitragen.

    Du hast beabsichtigtes Schreiben auf den Stick im Kopf, das damit verhindert würde.

    Ja, möglicherweise. Deswegen bat ich dich in #1.766 das mal zu testen ob es so ist.



    Hier eine modifizierte Version des Setup-Skripts die alles ReadOnly einhängt (MOUNTOPTIONS="ro") und die Dateisysteme ext2, ext3 sowie ext4 vom automatischen mounten ausschließt: usbmount-setup-for-mpd-ro.sh

    Edited 4 times, last by veloci ().

  • hier die infos:

    mit MOUNTOPTIONS "ro":

    Code
    1. You are in emergency mode. After logging in, type "journalctl -xb" to view system logs, "systemctl reboot", "systemctl default" or "exit" to boot into default mode.
    2. Cannot open access to console, the root account is locked.
    3. See sulogin(8) man page for more details.
    4. Press Enter to continue.

    das hatte ich erwartet.

    Morgen setze ich das System mit dem 2019-07-10-raspbian-buster-lite.img auf, und verwende das neue usbmount-setup-for-mpd.sh-Skript aus Beitrag #1770.

    Schönen Gruß, kle

  • Wo hast du das ro gesetzt?

    Das Setup-Skript in Beitrag #1770 macht auch nichts anderes als MOUNTOPTIONS in /etc/usbmount/usbmount.conf auf 'ro' zu setzen.


    Übrigens kann man auch den jetzigen Zustand wieder korrigieren - auch ohne das System neu aufzusetzen.

    Am einfachsten, man hängt die USB-Systemplatte an einen Linux-Rechner und macht dort die Änderung rückgängig.

    Alternativ kann man am pi nach dem emergency-login mittels mount -o remount,rw /dev/sda2 die root-Partition beschreibbar einhängen und dann die Änderung rückgängig machen.

    Edited once, last by veloci ().

  • Wo hast du das ro gesetzt?

    Das Setup-Skript in Beitrag #1770 macht auch nichts anderes als MOUNTOPTIONS in /etc/usbmount/usbmount.conf auf 'ro' zu setzen.

    ich habe in der Datei das ro, vor die anderen Mountoptions eingefügt: MOUNTOPTIONS="ro,sync,noexec,nodev,noatime,nodiratime"

    Am einfachsten, man hängt die USB-Systemplatte an einen Linux-Rechner und macht dort die Änderung rückgängig.

    das ist möglich. Für mein Notebook habe ich eine 2. ssd mit Arch-Linux.


    Aber das mache ich morgen. ich stecke den USB-Stick in einen Raspi und mounte von hand.

    So sudo mount -t ext4 /dev/sda2 /mnt

    veloci Edit: danach bootete der Raspi wieder von USB-Stick. (rest morgen)

    Alternativ kann man am pi nach dem emergency-login

    das geht nicht, weil ich keine Tastatur für den Raspi habe.

    Edited 3 times, last by kle ().

  • veloci

    Testscenario

    Model: RPi 3B+

    Display: Waveshare 3.2" touchscreen

    Sound:

    (a) Bluetooth Lautsprecher (Fehler im Zusammenhang buster und mpd, s. #1757 und #1758)

    (b) 3.5mm Klinkenbuchse

    Internet: builtin 5GHz-WLAN

    Boot: ohne SD-Karte nur vom USB-Stick

    OS: 2019-06-20-raspbian-buster-lite.img aktualisiert mit:- sudo apt-get update --allow-releaseinfo-change und - sudo apt-get upgrade

    NewTron-Radio: installiert mit newtron-radio-setup-v3.0.shJ

    usb-mount: installiert mit usbmount-setup-for-mpd-ro.sh

    Test

    booten von USB-Stick und

    Zeile MOUNTOPTIONS="ro" in Datei /etc/usbmount/usbmount.conf führt zu:

    Code
    1. You are in emergency mode. After logging in, type "journalctl -xb" to view system logs, "systemctl reboot", "systemctl default" or "exit" to boot into default mode.
    2. Cannot open access to console, the root account is locked.
    3. See sulogin(8) man page for more details.
    4. Press Enter to continue.

    Schönen Gruß, kle


    Wie soll man damit verfahren?

    Der Fall ist sehr speziell. Fehlerursache ist, daß der USB-Stick mit dem System 2mal gemountet wird

    Code
    1. pi@raspberrypi:~ $ lsblk
    2. NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
    3. sda 8:0 1 29.4G 0 disk
    4. ├─sda1 8:1 1 256M 0 part /boot
    5. └─sda2 8:2 1 29.2G 0 part /media/usb0
    6. pi@raspberrypi:~ $ mount | grep "/dev/sda"
    7. /dev/sda2 on / type ext4 (rw,noatime)
    8. /dev/sda2 on /media/usb0 type ext4 (rw,nodev,noexec,noatime,nodiratime)
    9. /dev/sda1 on /media/usb1 type vfat (rw,nodev,noexec,noatime,nodiratime,sync,gid=25,fmask=0002,dmask=0002,allow_utime=0020,codepage=437,iocharset=ascii,shortname=mixed,errors=remount-ro)
    10. /dev/sda1 on /boot type vfat (rw,relatime,sync,gid=25,fmask=0002,dmask=0002,allow_utime=0020,codepage=437,iocharset=ascii,shortname=mixed,errors=remount-ro)

    Meine Schlußfolgerung: usb-mount-Automatik sollte nicht im Zusammenhang mit Boot vom USB-Stick verwendet werden.

  • Was du mal probieren könntest:


    entferne mal in /etc/usbmount/usbmount.conf die Einträge ext2, ext3, ext4 in FILESYSTEMS=


    oder


    stelle den Ursprünglichen Wert von MOUNTOPTIONS= wieder her ("sync,noexec,nodev,noatime,nodiratime") und füge für jedes Dateisystem in FS_MOUNTOPTIONS= das 'ro'-Flag hinzu.


    Beide Varianten müssten dafür sorgen, dass /dev/sda2 weiterhin 'rw' gemountet wird, wobei die erste Variante zusätzlich verhindert, dass zumindest /dev/sda2 als usb1 in der Musikauswahl auftaucht (usb0 (/dev/sda1) taucht weiterhin auf, da vfat).

  • die 1. Alternative

    entferne mal in /etc/usbmount/usbmount.conf die Einträge ext2, ext3, ext4 in FILESYSTEMS=

    hat nicht funktioniert (emergency mode, s.o.).

    Code: usbmount.conf
    1. # ohne Kommentar und ohne Leerzeilen
    2. pi@pipaos7:/mnt$ egrep -v "^#|^$" /mnt/etc/usbmount/usbmount.conf
    3. ENABLED=1
    4. MOUNTPOINTS="/media/usb0 /media/usb1 /media/usb2 /media/usb3
    5. /media/usb4 /media/usb5 /media/usb6 /media/usb7"
    6. FILESYSTEMS="vfat exfat hfsplus ntfs fuseblk"
    7. MOUNTOPTIONS="ro"
    8. FS_MOUNTOPTIONS="-fstype=vfat,gid=floppy,umask=002 -fstype=exfat,gid=floppy,umask=002 -fstype=ntfs,gid=floppy,umask=002"
    9. VERBOSE=no

    ich habe den System-USB-Stick gemountet

    die 2. Alternative

    stelle den Ursprünglichen Wert von MOUNTOPTIONS= wieder her ("sync,noexec,nodev,noatime,nodiratime") und füge für jedes Dateisystem in FS_MOUNTOPTIONS= das 'ro'-Flag hinzu.

    ich habe 'ro' für vfat hinzugefügt:

    Code
    1. pi@pipaos:~$ egrep -v "^#|^$" /mnt/etc/usbmount/usbmount.conf
    2. ENABLED=1
    3. MOUNTPOINTS="/media/usb0 /media/usb1 /media/usb2 /media/usb3
    4. /media/usb4 /media/usb5 /media/usb6 /media/usb7"
    5. FILESYSTEMS="vfat ext2 ext3 ext4 exfat hfsplus ntfs fuseblk"
    6. MOUNTOPTIONS="sync,noexec,nodev,noatime,nodiratime"
    7. FS_MOUNTOPTIONS="-fstype=vfat,ro,gid=floppy,umask=002 -fstype=exfat,gid=floppy,umask=002 -fstype=ntfs,gid=floppy,umask=002"
    8. VERBOSE=no

    hat auch nicht funktioniert (emergency mode, s.o.).


    veloci meine Schußfolgerung: das Skript usbmount-setup-for-mpd-ro.sh ist mit Booten von USB-Stick unverträglich.

    veloci Edit: nicht nur USB-Stick, sondern alle USB-Geräte

    Schönen Gruß, kle

    Edited once, last by kle ().

  • Touchdisplays im Konsolenmodus

    Wenn man sich so umschaut, liefern die Hersteller von Touchdisplays meistens nur Installationsskripte für den grafischen Desktop. Wer mit Raspbian Lite arbeitet und trotzdem ein Touchdisplay nutzen will kommt daher mit den Herstellereigenen Installationsskripten oft nicht weit, da bei Raspbian Lite keine Desktopumgebung installiert wird. Die Aufgabe, das Touchdisplay auf der Konsole funktionsfähig zu bekommen obliegt daher meistens dem Benutzer. Oft scheitert dieses Vorhaben jedoch an Kleinigkeiten, wie dieser Thread zeigt.


    Ich habe mir daher die Mühe gemacht, zumindest für einige Waveshare Touchdisplays, ein Installationsskript für den Konsolenmodus zu entwickeln. Mit diesem Skript und einem dazu passenden Display wird die Einrichtung von NewTron-Radio so einfach wie nie zuvor.


    Folgende Waveshare-Displays werden vom Skript bisher unterstützt:

    • 2.8inch RPi LCD (A)
    • 3.2inch RPi LCD (B)
    • 3.2inch RPi LCD (C)
    • 3.5inch RPi LCD (A)
    • 3.5inch RPi LCD (B)
    • 3.5inch RPi LCD (B) v2
    • 3.5inch RPi LCD (C)
    • 4inch RPi LCD (A)
    • 4inch RPi LCD (C)

    Das sind alles Displays, die direkt auf die 40-polige Stiftleiste des Pi aufgesteckt werden und keine weiteren Kabel oder Steckadapter benötigen.


    Download: waveshare-spi-console-setup.sh

    Installation als user 'pi' mit sh waveshare-spi-console-setup.sh


    Damit vereinfacht sich die Neueinrichtung von NewTron-Radio zu

    • Raspbian Lite installieren / konfigurieren / aktualisieren
    • sh waveshare-spi-console-setup.sh , rebooten und sudo ts_calibrate ausführen
    • sh newtron-radio-setup-v3.1.sh
    • Radio starten mit sudo newtron-radio oder
    • für Autostart einfach /usr/local/bin/newtron-radio& in /etc/rc.local vor dem exit 0 eintragen.


    Weiter gehts mit "Touchdisplays im Konsolenmodus (Teil 2)" in Beitrag #1824


    Gruß,

    veloci

    Edited 10 times, last by veloci: (Tipp-)Fehlerkorrektur, Skript aktualisiert ().

  • veloci


    Hallo


    Ich habe mir heute auf dem Pi4 Dein Newtron-Radio-v3 über das bash-script installiert.


    Anfangs lief alles bestens. Als ich jedoch meine Playlists aus der alten Version in "/var/lib/mpd/playlists" reimportiert habe, startet nur noch kurz der Splash-Screen und verschwindet wieder. MDP läuft aber und spielt den zuletzt gewählten Sender ab.


    Beim Konsolenstart erhalte ich folgende Meldungen:



    Kannst Du mir sagen, wie ich das fixen kann, um wieder ins GUI zu kommen?:conf:


    Grüße

    Mark

  • Da bin ich leider etwas ratlos.


    Bei mir sieht es so aus (remote, ssh -X):

    Code
    1. pi@raspberrypi:~ $ newtron-radio
    2. pygame 1.9.4.post1
    3. Hello from the pygame community. https://www.pygame.org/contribute.html
    4. using X-Display localhost:10.0
    5. Display area size: 320 x 200
    6. connected using unix socket...

    Benutzt du irgendeinen besonderen Font für die Darstellung?

    Irgendeinen selbstgebauten Skin?


    Ich hatte kurzzeitig eine ältere Version des Radios Online gestellt, die ich dann schnellstmöglich stillschweigend ausgetauscht habe. Diese hatte einen vergleichbaren Fehler - allerdings beim _artist_label in Zeile 1565 - da stimmte dann der vorgegebene Fensterausschnitt nicht mit dem tatsächlich benutzten Fensterausschnitt überein.


    Deshalb die Frage: Wann hattest du das Radio heruntergeladen? Wenn das schon ein paar Tage her ist, dann könntest du evtl. mal nur die newtron-radio.py aus #1.752 herunterladen und die vorhandene in /usr/local/lib/newtron-v3 damit ersetzen.


    BTW: Die Meldung could not set volume - continuing anyway... in deiner Ausgabe deutet möglicherweise auf einen fehlenden Eintrag in deiner /etc/mpd.conf hin. Nämlich mixer_type  "software" in der audio_output-Sektion.


    Und nochwas: Mit dem Pi4 hab ich noch keinerlei Erfahrung - Ich denke aber auch, das der 4er etwas oversized für das Radio ist - hab das Radio selbst auf Pi1B, Pi2B, Pi3B und Pi3B+ mit verschiedenen Displays am laufen (alle aber ohne Desktop und nur im Konsolenmodus).




    Gruß,

    veloci

    Edited 4 times, last by veloci ().