YKRUD2 von YEPKIT

  • Hallo,


    ich habe mir für ein Projekt ein YKRUD2 von YEPKIT gekauft (https://www.yepkit.com/product/300113/YKRUD2), um ein Raspberry Pi Zero W auf welchem Raspbian läuft besser starten und herunterfahren zu können. Dazu gehören zwei Skripts:


    #!/bin/sh

    #GPIO17 will be the YKRUD IN
    sudo echo "17" > /sys/class/gpio/export
    sudo echo "out" > /sys/class/gpio/gpio17/direction

    #GPIO18 will be the YKRUD OUT
    sudo echo "18" > /sys/class/gpio/export
    sudo echo "in" > /sys/class/gpio/gpio18/direction

    #Tell YKRUD raspi is OFF
    sudo echo "0" > /sys/class/gpio/gpio17/value



    und:


    while true
    do
    # checks if YKRUD OUT is set
    ykrud_out=$(sudo cat /sys/class/gpio/gpio18/value)
    if [ "$ykrud_out" = "1" ]; then
    # put YKRUD IN Low
    sudo echo "0" > /sys/class/gpio/gpio17/value
    sleep 1
    ykrud_out=$(sudo cat /sys/class/gpio/gpio18/value)
    if [ "$ykrud_out" = "0" ]; then
    sudo echo "1" > /sys/class/gpio/gpio17/value
    sleep 1
    ykrud_out=$(sudo cat /sys/class/gpio/gpio18/value)
    if [ "$ykrud_out" = "1" ]; then
    sudo echo "0" > /sys/class/gpio/gpio17/value
    sleep 1
    sudo poweroff
    fi
    fi
    fi
    sleep 5
    done


    Die beiden Skripts sollen über die Datei rc.local automatisch ausgeführt werden.


    Wenn ich nun den Pi neu starte, wird folgende Meldung angezeigt:


    cat /sys/class/gpio/gpio18/value Datei oder Verzeichnis nicht gefunden



    Woran kann das liegen? Der Pfad stimmt und die Datei ist vorhanden.

  • sudo echo "17" > /sys/class/gpio/export

    Man möchte keine Scripte von irgendwem ausführen, der sowas verbreitet.

    Wenn obiges funktioniert, hätte es dafür kein sudo benötigt.

    Ausgabeumlenkung mit sudo geht anders (tee, sh -c).

    Rechte falsch gesetzt? Probier's mit chmod a+x /sys/class/gpio/gpio18/value

    Abgesehen davon, dass wildes Ändern von Zugriffsrechten selten sinnvoll ist:

    Wie soll ein gesetztes Execute-Bit auf einer Datei helfen diese zu lesen/schreiben?

    Bitte ein paar Basics über das Unix-Rechtesystem verinnerlichen.

    Wenn du nichts zu sagen hast, sag einfach nichts.

  • Du setzt das execute-Bit aber auf eine sysfs-Datei, die ein Script lesen/schreiben will und nicht auf das Script.

    Wenn du nichts zu sagen hast, sag einfach nichts.