NEWS
Docker Container RPi Adpater GPIO ansteuern
-
@glasfaser Nein leider nicht. Die gehen ja von einer lokalen Installation aus. Das Problem bei mir ist ja das iobroker im Docker läuft und somit nich t auf die GPIOs zugreifen kann.
Gruß
-
@chesterb Hallo!
Ist zwar schon älter, aber konntest Du das Problem lösen? Ich stehe grade am gleichen Punkt, habe ein Raspberry 5 mit Docker installiert und möchte meine Gaszählung portieren... iobroker Konfiguration über GPIO22, derzeit bei normaler Installation auf dem Raspi 4 kein Problem.Danke
-
-
@dpcfan sagte in Docker Container RPi Adpater GPIO ansteuern:
Ist zwar schon älter, aber konntest Du das Problem lösen? Ich stehe grade am gleichen Punkt, habe ein Raspberry 5 mit Docker installiert und möchte meine Gaszählung portieren... iobroker Konfiguration über GPIO22, derzeit bei normaler Installation auf dem Raspi 4 kein Problem.
Es gibt zwei Voraussetzungen, um die GPIOs des Raspi direkt aus Docker heraus ansteuern zu können:
- Bind mount (/sys)
- Setzen der Umgebungsvariable "SETGID" auf die Gruppen-ID von "gpio" des Host
Beispiel:
version: "3.9" services: iobroker: container_name: iobroker image: buanet/iobroker:latest-v9 hostname: iobroker restart: unless-stopped networks: test: volumes: - /opt/docker/iobroker:/opt/iobroker - /sys:/sys ports: - "8081-8082:8081-8082" environment: - SETGID=993
-
@marc-berg
Hallo!
Vielen Dank, war etwas abgelenkt (3 Monate?)!
Was sol lder Bind SYS machen und wie wende ich ihn an?
Wie bekomme ich die Gruppen-ID des GPIO22? -
@dpcfan sagte in Docker Container RPi Adpater GPIO ansteuern:
Was sol lder Bind SYS machen und wie wende ich ihn an?
Der soll das Verzeichnis "/sys" in den Container mappen, damit die erforderlichen Befehle erreichbar sind.
https://dev-community.de/resources/docker-bind-mounts-eine-Übersicht.18/Wie bekomme ich die Gruppen-ID des GPIO22?
Es geht hierbei um die Linux-Usergruppen und hat nichts mit den GPIOs zu tun:
https://sysware.computer/linux/scripte_user_gruppen.html#gid -
@marc-berg
OK, Gruppen-ID ist bei mir in der etc/group Datei für gpio auch 993 (Zufall oder immer so, keine Ahnung).Hab die Änderungen in meiner Stack Datei gemacht und ihn neu geladen.
Im Container iobroker den rpi2.0 den GPIO 22 auf Eingang konfiguriert...
Brauche ich noch etwas?
-
@dpcfan bekomme jetzt beim Start des Containers eine Fehlermeldung:
Cannot setup port 22 as input: Error: EROFS: read-only file system, open '/sys/class/gpio/export'
-
@dpcfan sagte in Docker Container RPi Adpater GPIO ansteuern:
bekomme jetzt beim Start des Containers eine Fehlermeldung:
Habe ich leider keine Idee dazu. Die o.g. Vorgehensweise funktionierte bei mir mit einem Pi 4 unter Raspberry Pi OS Lite 12 (Bookworm).
-
Vielleicht hier:
https://pi-buch.info/gpio-reloaded-i-python/
Wo ist das Problem?
In der Vergangenheit gab es mehrere GPIO-Kommuniktionsmechanismen, z.B. das Lesen/Schreiben von sysfs-Dateien (sys/class/gpio) bzw. das direkte Verändern von Speicherbereichen. Diese Verfahren haben schon in der Vergangenheit oft Probleme bereitet.Es kann also nicht mehr wild in '/sys/class/gpio/export' herumgeschrieben werden.
-
@thomas-braun sagte in Docker Container RPi Adpater GPIO ansteuern:
Es kann also nicht mehr wild in '/sys/class/gpio/export' herumgeschrieben werden.
Hm, ich frag' mich nur, was bei mir anders war/ist. Leider kann ich es im Moment nicht nachstellen, weil der Raspi gerade einen anderen Einsatzzweck hat.
-
@dpcfan sagte in Docker Container RPi Adpater GPIO ansteuern:
EROFS: read-only file system, open '/sys/class/gpio/export'
Du könntest noch versuchen, den Container im "privileged" Mode zu starten.
--privileged
-
@marc-berg bin jetzt etwas weiter, mit :rw ist diese Meldung zwar weg, aber es kommt nun das:
Cannot setup port 22 as input: Error: EINVAL: invalid argument, write
Teste mit einem einfachen pulldown und einer Brücke...
-
@thomas-braun danke, werde mich mal einlesen :-(, könnte in die richtige Richtung gehen...