Управление GPIO через WEB/CGI (cgi на bash)

Тема в разделе "Raspberry Pi", создана пользователем parovoZZ, 14 ноя 2019.

Метки:
  1. parovoZZ

    parovoZZ Гуру

    Поставил на малину lighttpd сервак, разрешил CGI скрипты.
    Пишу:
    Код (Bash):

    #!/bin/bash
    #
    #
    echo "Content-type: text/html"
    echo ""
    echo "<!doctype html>"
    echo "<html lang='en-EN'>"
    echo "<head>"
    echo "<title>"
    echo "GPIO"
    echo "</title>"
    echo "<meta charset='utf-8'>"
    echo "</head>"
    echo "<body>"

    echo "2" > /tmp/temp.txt
    cat /tmp/temp.txt

    echo "</body>"
    echo "</html>"
     
    Набираю в браузере ip_малины/cgi-bin/myscrypt

    и вижу в браузере 2.

    Теперь пишу:

    Код (Bash):

    #!/bin/bash
    #
    #
    echo "Content-type: text/html"
    echo ""
    echo "<!doctype html>"
    echo "<html lang='en-EN'>"
    echo "<head>"
    echo "<title>"
    echo "GPIO"
    echo "</title>"
    echo "<meta charset='utf-8'>"
    echo "</head>"


    echo "<body>"
    GPIO=25

    #echo $GPIO

    cd /sys/class/gpio

    if ! [ -d gpio$GPIO/ ];
    then
      echo $GPIO > export
    fi

    #cd /sys/class/gpio/gpio$GPIO

    echo "out" > /sys/class/gpio/gpio$GPIO/direction
    echo "1" > /sys/class/gpio/gpio$GPIO/value

    cat /sys/class/gpio/gpio$GPIO/direction
    cat /sys/class/gpio/gpio$GPIO/value

    echo "</body>"
    echo "</html>"
     
    Предварительно занес пользователя www-data в группу gpio. Обновляю страницу в браузере и .... ничего. GPIO не дрыгает, в браузере whitelist. Вот что нужно этой скотине малине?

    При том, что не работает это:
    Код (C++):

    echo "`cat /sys/class/gpio/gpio$GPIO/direction`"
     
    и вот это:
    Код (C++):

    cat /sys/class/gpio/gpio$GPIO/value >&1
     
    Запускаю тот же скрипт из под pi - вуаля, всё работает.
     
  2. Вот тут обсуждение подобной проблемы
    Автор использовал апач, добавлял www-data в группу gpio но легче не стало.
    Там-же есть комментарий что вроде бы это баг на ядре linux 4.1.xx
    Я разблокировал аккаунт www-data чтоб можно было пользоваться шелом и в баш-е от этого аккаунта управлял gpio, ядро 4.19.75.