Archiv > Raspberry PI
Test MLD-4 RPI tgz
clausmuus:
Hi,
die rc Script (init Scripte) liegen unter /etc/init.d die auf anderen Systemen üblichen /etc/rcN.d Scripte sind lediglich Links nach /etc/init.d. Da die MLD kein System5 init System verwendet, gibt's keine rcN.d Ordner.
Schau Dir einfach mal nen paar Scripte unter /etc/init.d an. Dann sollte DIr recht schnell klaar werden wie die aufgebaut sind.
In der Section "init)" gibt's einige für Dich interessante Werte.
- start=1 legt fest, dass das init script beim booten ausgeführt werden soll.
- before=... sagt, welche anderen init Scripte erst nach diesem ausgeführt werden dürfen
- after=... sagt, welche Scripte bereits ausgeführt sein müssen
- priority legt fest wie früh ein Script gestartet werden soll. Je größer die Zahl, desto früher. Größer als 6 sollte man nur eintragen, wenn man weiß was man tut.
Claus
gkd-berlin:
Hallo Claus,
ich habe mich an der /etc/init.d/rpi-rtc orientiert.
Mein Script heist "luefter".
--- Code: ---#!/bin/sh
#
#.
case "$1" in
<------>start)
<------><------>. /etc/init.d/rc.functions
<------><------>echo "Activate GPIO 22+27, Lüfter"
<------><------>echo "22" > /sys/class/gpio/export
<------><------>echo "out" > /sys/class/gpio/gpio22/direction
<------><------>echo "0" > /sys/class/gpio/gpio22/value
<------><------>echo "27" > /sys/class/gpio/export
<------><------>echo "out" > /sys/class/gpio/gpio27/direction
<------><------>echo "1" > /sys/class/gpio/gpio27/value
<------><------>check_status
<------><------>;;
<------>stop)
<------><------>>. /etc/init.d/rc.functions
<------><------>echo "22" > /sys/class/gpio/export
<------><------>echo "27" > /sys/class/gpio/export
<------><------>check_status
<------><------>;;
<------>init)
<------><------>start=1
<------><------>;;
<------>*)
<------><------>echo "Usage $0 {start | stop}" >&2
<------><------>exit 1
esac
--- End code ---
Während des Bootens kommt in der 2. Zeile eine Fehlermeldung:
--- Code: ---/etc/init.d/rc.init: /etc/init.d/luefter: line 6: syntax error: unexpected word (expecting ")")
--- End code ---
In der Konsole kommt:
--- Code: ---MLD> start luefter
/etc/init.d/rc.init: /etc/init.d/luefter: line 6: syntax error: unexpected word (expecting ")")
/etc/init.d/luefter: line 6: syntax error: unexpected word (expecting ")")
MLD> stop luefter
/etc/init.d/rc.init: /etc/init.d/luefter: line 6: syntax error: unexpected word (expecting ")")
/etc/init.d/luefter: line 6: syntax error: unexpected word (expecting ")")
MLD>
--- End code ---
Nun weiß ich wieder einmal nicht weiter. Hilfe!
Gruß Gerhard
MegaX:
Hi Gerhard
Probiers mal so:
--- Code: ---#!/bin/sh
. /etc/init.d/rc.functions
case "$1" in
start)
echo "Activate GPIO 22+27, Lüfter"
echo "22" > /sys/class/gpio/export
echo "out" > /sys/class/gpio/gpio22/direction
echo "0" > /sys/class/gpio/gpio22/value
echo "27" > /sys/class/gpio/export
echo "out" > /sys/class/gpio/gpio27/direction
echo "1" > /sys/class/gpio/gpio27/value
check_status
;;
stop)
echo "22" > /sys/class/gpio/export
echo "27" > /sys/class/gpio/export
check_status
;;
init)
start=1
;;
*)
echo "Usage $0 {start | stop}" >&2
exit 1
esac
--- End code ---
clausmuus:
Hi Gerhard,
Du hast aber nicht zufällig die "<------>" mit kopiert, und die sind wirklich in der Datei enthalten? Das sind nämlich in Wirklichkeit Tabulatoren die lediglich vom mc so angezeigt werden.
Du solltest im mc editor im Menü unter "Optionen / Allgemein" die Punkte "Sichtbare Leerräume" und "Sichtbare Tabs" abstellen, um solche Fehler zu vermeiden.
Claus
gkd-berlin:
Hallo,
@Claus:
ja, ja die "<------>" wurden mitkopiert.
Im mc Editor finde ich unter "Optionen" kein "Allgemein".
Ich habe deshalb die Tabs von Hand gelöscht und neu gesetzt. Nun kommen keine Fehler mehr.
@MegaX:
Auch Deine Variante funktioniert. Danke.
Im Moment verwende ich:
--- Code: ---#!/bin/sh
#
#
<------><------>. /etc/init.d/rc.functions
case "$1" in
<------>start)
<------><------>echo "Aktiviere GPIO 22+27"
<------><------>echo "22" > /sys/class/gpio/export
<------><------>echo "out" > /sys/class/gpio/gpio22/direction
<------><------>echo "0" > /sys/class/gpio/gpio22/value
<------><------>echo "27" > /sys/class/gpio/export
<------><------>echo "out" > /sys/class/gpio/gpio27/direction
<------><------>echo "1" > /sys/class/gpio/gpio27/value
<------><------>echo "Starte Lüfter"
<------><------>. /usr/bin/luefter.sh &
<------><------>check_status
<------><------>;;
<------>stop)
<------><------>echo "22" > /sys/class/gpio/unexport
<------><------>check_status
<------><------>;;
<------>init)
<------><------>start=1
<------><------>;;
<------>*)
<------><------>echo "Usage $0 {start | stop}" >&2
<------><------>exit 1
esac
--- End code ---
Das Script läuft ohne Probleme. Der Lüfter wird je nach CPU-Temperatur automatisch ein- oder ausgeschaltet.
In der Sysinit erscheint das:
--- Code: ---luefterinst seems to hang! continue now...
--- End code ---
Schönheitsfehler? Oder liegt am . /usr/bin/luefter.sh &. Das wird ja im Hintergrund gestartet.
Wie kann ich das abstellen.
Gruß Gerhard
Navigation
[0] Message Index
[#] Next page
[*] Previous page
Go to full version