Phoniebox OnOffShim killt Raspberry

  • Der OnOffShim hat bei mir zuerst auch Zicken gemacht. Die Lösung, die bei mir funzt, habe ich in meinem Pamphlet in den Kapiteln 2.2.2 (Hardware) und 3.2 (Software) beschrieben. Letztlich habe ich die vielen undurchsichtigen Skripte und Daemons von Pimoroni durch zwei vergleichsweise einfache Shellskripte ersetzt und damit bin ich zufrieden.


    Aber Achtung:

    Meine Anleitung (aka Pamphlet) ist mittlerweile etwas veraltet, d.h. es funktionieren nicht mehr alle Punkte so wie doert beschrieben! Die OnOffShim-Sache dürfte davon aber nicht betroffen sein.

  • danke dir, deine Lösung bedeutet aber noch mehr Bastelarbeit mit Zwischenschaltung etc, was ich - wenn immer möglich und so als absoluter Elektronik-Newbie - aus mangelnder Kenntnis der Elektronik am liebsten vermeiden würde, wenn sich eine einfachere Lösung fände.

  • Ich schaue mir das in den kommenden Tagen mal in Ruhe an. schlizbäda Idee ist eine Option, ich glaube allerdings, dass hier eine Änderung am Repo der Phoniebox der Übeltäter ist und das sollten wir erstmal ausschließen...

    Wenn Du vorher aktiv werden möchtest, dann hätte ich folgende Ideen und Fragen:


    1. Nutzt Du auch das OLED-Display?
    2. Meines Erachtens liegt es an Änderungen im Repo der Phoniebox, im idealen Fall in der neuen gpio setting Belegung der Box. Diese würde ich mal "aushebeln", kann ja jederzeit wieder aktiviert werden:
      1. Die /etc/cleanshutd.conf wie bei mir dokumentiert einstellen (hattest Du ja bereits schon)
      2. Führe folgenden Befehl aus, um sicherzustellen, dass der Service der Phoniebox für die Buttonbelegung nicht geladen wird:
        sudo service phoniebox-gpio-buttons stop
        sudo systemctl disable phoniebox-gpio-buttons
        sudo systemctl disable phoniebox-gpio-control.service
        sudo reboot
        ... und Daumen drücken, ob hier der Fehler liegt!
    3. Versuche einen anderen freien trigger_pin (Belegung lt. meinem Pinoff wird allerdings schwer, da sind nur noch die GPIOs 9, 10, 11, 14 und 15 frei, die aber vorbelegt sind)
    4. Scheitert 3: Installation Raspbian nur mit OnOffShim, keine weiteren Services einspielen. Funktioniert es so?
    5. Scheitert 4: bitte einen anderen PIN benutzen, jetzt darf nichts mehr von irgendwelchen Services belegt sein!


    GPIO-Belegung:

    Belegung für meine Anleitung/Box


    Die wichtigen Pins in der Config lt. Repo sind hier beschrieben, aber da hat es m.E. keine Änderungen gegeben, die dies verusachen können:


    trigger_pin

    Normally you'll set this up at install time and won't need to change it, but... as we do, next week you might buy a nice shiny (Pimoroni) HAT or pHAT and find that the pin you had your clean shutdown trigger wired to is required by your new friend. Just move the trigger button to another pin and reboot! The unit used for this parameter is the bcm number for the pin (4 or above recommended, 0-3 have particularities that make them slightly less straightforward to use, though the daemon will happily monitor them for you, so as long as you know what you're doing go right ahead).


    poweroff_pin

    For products that support it (eg: OnOff SHIM), the poweroff_pin determines which pin will be pulled low right at the end of your Pi's shutdown process. If supported, this will cause power to your Pi to be cut completely.




    Änderungen am Repo gab es, die aber keine Ursache sein sollte, da es auskommentiert ist:

    Änderungen vom Mai 2021

  • danke dir, deine Lösung bedeutet aber noch mehr Bastelarbeit mit Zwischenschaltung etc, was ich [...] am liebsten vermeiden würde

    Hi medicus,


    die Hardwareerweiterung mit dem Relais ist unabhängig von der Softwareänderung aus Kapitel 3.2!


    Das Relais habe ich eingebaut, weil bei mir der OnOffShim bei zu langem Betätigen des Ein-Aus-Tasters über den Zeitpunkt des Abschaltens hinaus die Stromversorgung nicht zuverlässig getrennt hat. Wenn dies bei Dir nicht auftritt (oder Dein Kind den Taster nie(!) so lange betätigt ;) ), kannst Du die gesamte Relaisschaltung weglassen.

    1. Nutzt Du auch das OLED-Display?

    Nein, darauf wollte ich verzichten.


    Ausprobiert. Bei den ersten 3 Befehlen folgt eine Fehlermeldung:

    Code
    pi@ghostbox:~ $ sudo service phoniebox-gpio-buttons stop
    Failed to stop phoniebox-gpio-buttons.service: Unit phoniebox-gpio-buttons.service not loaded.
    pi@ghostbox:~ $ sudo systemctl disable phoniebox-gpio-buttons
    Failed to disable unit: Unit file phoniebox-gpio-buttons.service does not exist.
    pi@ghostbox:~ $ sudo systemctl disable phoniebox-gpio-control.service
    Removed /etc/systemd/system/multi-user.target.wants/phoniebox-gpio-control.service.
    pi@ghostbox:~ $ sudo reboot

    Danach funktioniert es leider noch nicht.


    Ich habe dann mal trigger_pin = 19 gemacht und den Shim mit Jumperkabeln einzeln verknüpft.


    Normalerweise sieht er so aus:


    Mit den Jumperkabeln dann 1:1 verkabelt (als ob man ihn aufsteckt, jedoch statt GPIO 17 -> GPIO 19 (das rote Kabel, da kein Display ist GPIO 19 frei)):



    Ich habe dann auch versucht poweroff_pin von GPIO 4 auf das freie GPIO 26 zu ändern (incl Anpassung in cleanshutd.conf), aber dann blinkt er beim Hochfahren nur kurz auf und geht wieder aus.

    Quote

    3. Installation Raspbian nur mit OnOffShim, keine weiteren Services einspielen.

    Ich habe keine Services installiert ausser OnOffShim und das RaspbianOS (light-Version) - installieren sich da welche von selbst, die ich killen könnte?


    Ich weiss echt nicht weiter.... und bedanke mich herzlich, dass du dir die Mühe machst mit mir auf Fehlersuche zu gehen!!

  • Ich habe permanent das Gefühl, dass da irgendwo eine Lötbrücke ist.



    Bitte verbinde mal wie folgt:

    Pins 1, 2, 4, 6

    Lass die beiden Pins 7 (GPIO 4) und 11 (GPIO 17) ab.


    Die cleanshutd.conf bitte wie gehabt einstellen.


    Mit weiteren Services meine ich u.a. die Phoniebox. Da werden einige Dienste installiert... Also praktisch nackter Raspbian nur mit der OnOffShim-Software...

  • Erledigt - leider erfolglos. Booten kein Problem, Shutdown = keine Reaktion.


    Dann dachte ich, wir haben ja noch disable_cleanshutd=1, habe das mal aus der config.txt deaktiviert. Booten kein Problem, Shutdown = keine Reaktion.


    Danach SD Karte formatiert, neues RaspOS light drauf. Raspi nackt, nichts drangehängt. Direkt Shim ohne Phoniebox installiert. Zunächst noch ohne disable_cleanshutd=1 in confix.txt zu schreiben - stehe ich wieder am Anfang des Threads, dass beim Hochfahren der Saft ausgeht. Wieder die Zeile in config.txt rein --> er fährt hoch auf Tastendruck, aber nicht runter.


    Nochmals die obere Verschaltung unter Ausschluss GPIO 4 und 17 versucht: Raspi blinkt zwar kurz rot auf, startet aber nicht.


    Ich bestell mir einen neuen OnOff Shim. Jetzt haben wir ja echt alles versucht und es geht einfach nicht....

  • er fährt ja eben NICHT runter. Er fährt auf Knopfdruck schön hoch, aber wenn der Raspi dann mal läuft kann ich drücken bis ich schwarz werde und er fährt nicht mehr runter... ;)


    mal sehen ob mit dem neuen alles besser wird!

  • Ok, von vorn. Du hattest das System neu aufgesetzt und den Kram bis auf den Shim installiert, richtig?

    Dann hast Du den Eintrag in die /boot/config.txt wieder gemacht und die Software für den OnOff Shim installiert.


    Stimmt das soweit?

    genau, ich habe nachdem alle anderen Tricks nicht gingen, die SD Karte formatiert, nochmal das neue RaspbianOS light drauf. Alles vom Raspberry weg, was an USB dran hängen könnte (Audiobox und RFID-Reader).

    Dann versucht ohne Phoniebox zu installieren den OnOff Shim zu installieren und in config.txt eingefügt. Erfolglos. Dann mal ohne Modifikation der config.txt --> da startet er nicht mehr.

    Dann wieder die Konfiguration in config-txt angepasst und wie von splitti empfohlen mal mit Jumperkabeln verkabelt und auch einen Test ohne die gewünschten GPIOs.


    Aber er fährt nie runter. Hochfahren hat mit der Modifikation in config.txt immer geklappt, auch nach neuem Aufsetzen etc - aber Runterfahren geht einfach von Anfang an trotz aller Modifikationen, deaktivierter Dienste, Neuinstallation nicht. Er reagiert nicht auf den Tastendruck.

  • Dann mach mal jetzt ein

    Code
    sudo systemctl disable cleanshutd

    und danach

    Code
    sudo systemctl start cleanshutd


    entweder der RPi fährt von alleine wieder runter oder der Taster funktioniert damit. Hochfahren sollte der RPi danach auch wieder problemlos.


    Übrigens hättest Du nicht neu installieren müssen, denn den Eintrag in die /boot/config.txt kannst Du auch unter Windows mit einem Cardreader machen. Dort kann man auch auf die boot-Partition zugreifen und die config.txt bearbeiten.

  • ich habe inzwischen wieder Phoniebox drauf, die cleanshutdown.conf wie bei splitti79 beschrieben eingestellt, die Buttons laufen problemlos (yayy!), nur die LED des Powerbuttons noch nicht und auch nach deinen beiden Zeilen fährt er zwar wunderschön rauf, wenn ich auf den Button drücke, aber beim Druck für den Shutdown blinkt zwar die grüne LED einmal auf, aber dann wars das und er rennt fleissig weiter (und ich schreiend im Kreis)....

  • Den zweiten Befehl musst Du direkt vor dem Drücken des Tasters ausführen, denn der ist nicht persistent. D.h. wenn Du zwischen dem Befehl und dem Tastendruck neu gestartet hast, ist der Sinn des Befehls verloren gegangen.


    Du kannst auch mal die Ausgabe von

    Code
    sudo systemctl status cleanshutd

    zeigen, nachdem Du

    Code
    sudo systemctl start cleanshutd

    erledigt hast.

  • Hab ich nicht:

    Code
     pi@raspberrypi:~ $ sudo systemctl disable cleanshutd
    cleanshutd.service is not a native service, redirecting to systemd-sysv-install.
    Executing: /lib/systemd/systemd-sysv-install disable cleanshutd
    pi@raspberrypi:~ $ sudo systemctl start cleanshutd
    pi@raspberrypi:~ $ 

    ... eingegeben. Kein reboot oder ähnliches.


    Taster gedrückt: kurzes aufblinken der grünen LED, dann nix.

  • ich hab einen neuen OnOff Shim bestellt, vielleicht klappt es dann mit dem! Sollte Ende nächster Woche kommen :)