Variscite führt Unterstützung für libgpiod ein, den neuen und empfohlenen Weg für den Zugriff auf GPIO aus dem Userspace. libgpiod wurde in Linux 4.8 eingeführt und bietet sowohl Kommandozeilen-Dienstprogramme als auch Bibliotheksbindungen für C/C++ und Python. Variscite hat libgpiod-Unterstützung zu allen Software-Releases ab Yocto Dunfell, Boot2Qt Dunfell und Debian Bullseye hinzugefügt.

Bisher war der empfohlene Weg für den Zugriff auf GPIOs aus dem Linux-Userspace die Verwendung der GPIO sysfs-Schnittstelle, die begrenzt ist und benutzerdefinierte Userspace-Bibliotheken für höhere Programmiersprachen wie C, C++, Python usw. erfordert.

In Zukunft wird die sysfs-Schnittstelle veraltet sein. Vorerst wird sie weiter gewartet, aber es werden keine neuen Funktionen hinzugefügt. Bitte beachten Sie die Kernel-Dokumentation  für die neuesten Informationen.

Stattdessen wird nun empfohlen, libgpiod zu verwenden.
libgpiod hat mehrere wesentliche Verbesserungen gegenüber der GPIO sysfs-Schnittstelle:

  • Userspace-Bibliotheken für C/C++ und Python bieten eine standardisierte API
  • Jeder GPIO-Controller ist als Zeichengerät in /dev registriert, so dass die GPIO-Zuweisung an den Prozess gebunden ist, der ihn verwendet
  • Mehrere GPIO-Pins können auf einmal gelesen werden
  • GPIO-Controller und Pins können über den Namen gefunden werden
  • GPIO-Pin-Einstellungen können zur Laufzeit konfiguriert werden (Pull-Up, Pull-Down, etc.)
  • Überwachung von unterbrechungsgesteuerten Ereignissen (steigend, fallend, etc.)

 

DART-MX8M-PLUS System on Module (SoM)

DART-MX8M-PLUS System on Module

 

Weitere Informationen zur Verwendung von libgpiod finden Sie im Sample Guide von  DART-MX8M-PLUS GPIO  oder besuchen Sie den Abschnitt „Anleitung“ auf der gewählten SoM- und Yocto-Release-Seite im Variscite- Wiki.