GPIO: libgpiod-Unterstützung geplant (z.B. RPI_GPIO)?

Begonnen von Punkt, 06 Juni 2025, 12:19:02

Vorheriges Thema - Nächstes Thema

Punkt

Hallo zusammen,

vorab: ich hoffe das hier ist das richtige Unterforum - ansonsten bitte Info, dann ziehe ich das um. Die Frage betrifft nicht nur Anwender mit Raspberry - vielmehr geht es um alle die das RPI_GPIO-Modul auch auf Linux-Servern oder ähnlichem mit z.B. USB-Adaptern nutzen.

für alle TL/DR: Besteht die Aussicht, dass RPI_GPIO (oder ein ähnliches Modul) libgpiod unterstützt?

Langfassung:

Ich habe FHEM auf einem Linux-Server (mittlerweile Ubuntu 24.04) installiert und das lief bisher auch alles soweit reibungslos.
Genauer gesagt läuft FHEM sogar in einem LXD-Container (Ubuntu 24.04) auf einem Ubuntu 24.04 Host (dieser wurde gerade von 20.04 upgedatet).

Soweit funktioniert das alles auch sehr gut.

Es gibt aktuell nur ein Problem:
Ich nutze zum Anbinden von I2C und GPIOs einen USB-Adapter mit CH341A-Chip.
Hierfür habe ich bisher auch einen entsprechenden Treiber verwendet (https://github.com/gschorcht/i2c-ch341-usb).

Bisher nutzte ich RPI_GPIO um einen GPIO via Interrupt auszuwerten und beim Auslösen einen MCP23017 Port-Expander auszulesen.
Klappte auch top.

Jetzt mit dem Update auf 24.04 habe ich aber das Problem, dass sysfs nicht mehr unterstützt wird.
Es gibt zwar diesen Workaround mit dem Umweg über die neuen GPIO-Nummern duch /sys/kernel/debug/gpio - jetzt kommt aber das Aber:

Damit meine USB-CH341A-Adapter wieder auf 24.04 funktionierten musste ich einen neuen Kernel-Treiber verwenden (https://github.com/frank-zago/ch341-i2c-spi-gpio).

Dieser funktioniert zwar mit libgpiod einwandfrei - aber mit sysfs eben nicht.
Ich kann zwar die GPIOs definieren und auslesen - aber beim Thema Interrupt gibts nen Fehler und das System friert mir ein.
(Fehlermeldung: genirq: Setting trigger mode 1 for irq failed (ch341_gpio_irq_set_type+0x0/0x30 [gpio_ch341]))

Lange Rede - kurzer Sinn:
Ist es geplant - oder gibt es eine Möglichkeit - das RPI_GPIO-Modul auf die Verwendung mit libgpiod anzupassen?
Oder - falls das gar nicht gewollt ist: Besteht die Möglichkeit ein GPIO-Modul zu erstellen, welches per libgpiod arbeitet?
Wenn ich das richtig verstanden habe ist der Umweg mit den neuen GPIO-Nummern ja nur ein Notnagel, oder?
Parallel überlege ich einen Issue bei dem neuen Kernel-Treiber aufzumachen - aber die Frage ist, ob das Sinn macht wenn die Verwendung von sysfs sowieso deprecated ist.

Ich bin zwar selbst Softwareentwickler - auf der Ebene habe ich allerdings bisher keine Kenntnisse, könnte also nur unterstützend Supporten.

Falls es eine andere Möglichkeit gibt einen Interrupt-GPIO in FHEM zu verwenden wäre das auch interessant zu wissen.


Vielen Dank im Voraus schonmal für eure Antworten

Michael
FHEM auf LXD-Container (Ubuntu 24.04) mit 1wire-Bus und I2C-Extensions
Datenbank: influxdb
verschiedene "Satellitensysteme" mit ESP-8266