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.

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!