Moin moin allerseits,
habe schon viel bei euch mit gelesen, nun ist es aber so weit, dass ich ein paar Fragen habe und hoffe das mir jemand helfen kann.
Beim starten kann man ja durch "/etc/rc.local" eine bash-Datei mit ausführen lassen.
Dies wird auch für die GPIO's gemacht, damit ich diese über PHP ansteuern kann.
Da ich aber nun nicht mehr nur das Model B besitze, sonder auch B+ kommt es zu Problemen. Genutzt wird die selbe SD-Kart.
Hier der passende Code:
#!/bin/sh
#B+ P1-Header
echo "5" > /sys/class/gpio/export
echo "6" > /sys/class/gpio/export
echo "12" > /sys/class/gpio/export
echo "13" > /sys/class/gpio/export
echo "16" > /sys/class/gpio/export
echo "19" > /sys/class/gpio/export
echo "20" > /sys/class/gpio/export
echo "21" > /sys/class/gpio/export
echo "26" > /sys/class/gpio/export
#B/B+ P1-Header
echo "17" > /sys/class/gpio/export
echo "22" > /sys/class/gpio/export
echo "23" > /sys/class/gpio/export
echo "24" > /sys/class/gpio/export
echo "25" > /sys/class/gpio/export
echo "27" > /sys/class/gpio/export
#B P5 Header
echo "30" > /sys/class/gpio/export
echo "31" > /sys/class/gpio/export
#B+ P1-Header
echo "out" > /sys/class/gpio/gpio5/direction
echo "out" > /sys/class/gpio/gpio6/direction
echo "out" > /sys/class/gpio/gpio12/direction
echo "out" > /sys/class/gpio/gpio13/direction
echo "out" > /sys/class/gpio/gpio16/direction
echo "out" > /sys/class/gpio/gpio19/direction
echo "out" > /sys/class/gpio/gpio20/direction
echo "out" > /sys/class/gpio/gpio21/direction
echo "out" > /sys/class/gpio/gpio26/direction
#B/B+ P1-Header
echo "out" > /sys/class/gpio/gpio17/direction
echo "out" > /sys/class/gpio/gpio22/direction
echo "out" > /sys/class/gpio/gpio23/direction
echo "out" > /sys/class/gpio/gpio24/direction
echo "out" > /sys/class/gpio/gpio25/direction
echo "out" > /sys/class/gpio/gpio27/direction
#B P5-Header
echo "out" > /sys/class/gpio/gpio30/direction
echo "out" > /sys/class/gpio/gpio31/direction
#B+ P1-Header
chmod 666 /sys/class/gpio/gpio5/value
chmod 666 /sys/class/gpio/gpio6/value
chmod 666 /sys/class/gpio/gpio12/value
chmod 666 /sys/class/gpio/gpio13/value
chmod 666 /sys/class/gpio/gpio16/value
chmod 666 /sys/class/gpio/gpio19/value
chmod 666 /sys/class/gpio/gpio20/value
chmod 666 /sys/class/gpio/gpio21/value
chmod 666 /sys/class/gpio/gpio26/value
#B/B+ P1-Header
chmod 666 /sys/class/gpio/gpio17/value
chmod 666 /sys/class/gpio/gpio22/value
chmod 666 /sys/class/gpio/gpio23/value
chmod 666 /sys/class/gpio/gpio24/value
chmod 666 /sys/class/gpio/gpio25/value
chmod 666 /sys/class/gpio/gpio27/value
#B P5-Header
chmod 666 /sys/class/gpio/gpio30/value
chmod 666 /sys/class/gpio/gpio31/value
#B+ P1-Header
chmod 666 /sys/class/gpio/gpio5/direction
chmod 666 /sys/class/gpio/gpio6/direction
chmod 666 /sys/class/gpio/gpio12/direction
chmod 666 /sys/class/gpio/gpio13/direction
chmod 666 /sys/class/gpio/gpio16/direction
chmod 666 /sys/class/gpio/gpio19/direction
chmod 666 /sys/class/gpio/gpio20/direction
chmod 666 /sys/class/gpio/gpio21/direction
chmod 666 /sys/class/gpio/gpio26/direction
#B/B+ P1-Header
chmod 666 /sys/class/gpio/gpio17/direction
chmod 666 /sys/class/gpio/gpio22/direction
chmod 666 /sys/class/gpio/gpio23/direction
chmod 666 /sys/class/gpio/gpio24/direction
chmod 666 /sys/class/gpio/gpio25/direction
chmod 666 /sys/class/gpio/gpio27/direction
#B P5-Header
chmod 666 /sys/class/gpio/gpio30/direction
chmod 666 /sys/class/gpio/gpio31/direction
Alles anzeigen
Das Problem ist, dass beide PI's sich aufhängen sobald das Script geladen wird, da beide (unterschiedliche) GPIO's bereitstellen wollen, die es nicht gibt.
Version B+ dürfte z.B. nicht die P5 Header bereitstellen.
Version B dürfte alle neuen (vom B+) nicht aufsetzen.
Um zur Frage zurück zu kehren, ist es möglich eine Version abfrage des Boards zu machen, um dann nur die passenden GPIO's bereit zu stellen?
Man kann bestimmt über die "cpuinfo" eine Abfrage basteln. Kann mir dabei jemand helfen?
Danke für die Hilfe,
Fabian