Portál AbcLinuxu, 4. května 2025 16:14
#/bin/sh
nohup /storage/pi/./rpi4chtc.sh &
)&
A soubor rpi4chtc.sh obsahuje:
#!/bin/bash
echo "17" > /sys/class/gpio/export # aktivuje GPIO17
echo "out" > /sys/class/gpio/gpio17/direction #nastavi GPIO17 jako vystup
echo "18" > /sys/class/gpio/export # aktivuje GPIO18
echo "out" > /sys/class/gpio/gpio18/direction #nastavi GPIO18 jako vystup
while [ "1" = "1" ] #nekonecna smycka
do
TEPLOTA=`vcgencmd measure_temp | cut -c 6-7` #zjisti teplotu procesoru
VETRAK=`cat /sys/class/gpio/gpio17/value`
if [ $TEPLOTA -lt 45 ]; then #vypne chlazeni pokud je teplota mensi nez 45
echo 0 > /sys/class/gpio/gpio17/value
fi
if [ $TEPLOTA -gt 50 ]; then #zapne ventilator pokud je teplota vyssi nez 50
echo 1 > /sys/class/gpio/gpio17/value
fi
if [ $VETRAK == 1 ] || [ $VETRAK == 0 ]; then #rozsviti LED pri startu
echo 1 > /sys/class/gpio/gpio18/value
fi
sleep 60s # ceka 60s
done
Předpokládám, že skript samotný funguje stále stejně, problém bude s jeho spuštěním. Ale nevím, jakou provést úpravu, zda autostart musí být někde jinde, nebo je třeba spustit skript jinak...
Poradíte prosím?
Předem děkuji.
Zdravím, Předpokládám, že skript samotný funguje stále stejně, problém bude s jeho spuštěním. Ale nevím, jakou provést úpravu, zda autostart musí být někde jinde, nebo je třeba spustit skript jinak...
Začal bych ověřením, že skript funguje i s novou verzí Libreelec 12. Pokud samotný skript spustíš z příkazové řádky, funguje? Možná bude něco tady: "The root cause of your script is that the usage of sysfs-gpio is deprecated. Now with kernels > 6.5 it was changed. You should first inspect which gpiochips are presented in your case." https://forum.libreelec.tv/thread/28407-problem-with-autostart-sh-on-rpi-4-libreelec-11-95-1-omega/
Zdravím, jak jsem psal, čistota kódu je nulová. Nerozumím tomu moc a dělal jsem to před lety, takže jsem vycházel z nějakých hotových skriptů na netu a přiohnul je svým potřebám. Jak říkám, fungovalo to přesně jak jsem potřeboval, takže jsem to již nechal ve fázi jak to bylo a roky používal. K bodům:
a) Z někoho jsem vycházel, práva mohu snadno změnit.
b) To není bordel při vkládání, skutečně to tam mám. Vycházel jsem z nějakého kódu na webu. Dávno nevím kde.
c) až f) Opět jsem vycházel ze vzoru.
g) Tento paskvil je můj výtvor, nevím proč mi tenkrát nešlo nastavit, aby se prostě zapnul GPIO do 1. S tímto patvarem to roky fungovalo...
h) To znamená co?
#/bin/sh nohup /storage/pi/rpi4chtc.sh & exit 0Druhy:
#!/bin/bash echo "17" > /sys/class/gpio/export echo "out" > /sys/class/gpio/gpio17/direction echo "18" > /sys/class/gpio/export echo "out" > /sys/class/gpio/gpio18/direction echo 1 > /sys/class/gpio/gpio18/value while true do TEPLOTA="$(vcgencmd measure_temp | cut -c 6-7)" if [ "$TEPLOTA" -lt 45 ]; then echo 0 > /sys/class/gpio/gpio17/value fi if [ "$TEPLOTA" -gt 50 ]; then echo 1 > /sys/class/gpio/gpio17/value fi sleep 60 doneMisto prikazu vcgencmd bych pouzil hodnotu z /sys/class/thermal/thermal_zone0/temp.
Pánové, rád bych Vám oběma chtěl poděkovat. Vše je již zase funkční i v nové verzi Libreelec. Využil jsem oba poznatky, tj. nastavil nová správná čísla GPIO pinů (v mém případě u RPi4 bylo třeba přičíst koeficient 512), a poté jsem použil uhlazený vzhled skriptu.
Funguje to na jedničku, tedy ještě jednou, moc děkuji za pomoc.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.