Low-Level-GPIO-Zugriff geändert mit Kernel 6.6

Mit der Auslieferung des Raspberry Pi 5 im Herbst 2024 hat sich bei einigen Low-Level-Tools der GPIO-Zugriff geändert: Für die Modelle bis einschließlich Raspberry Pi 4 erfolgt der GPIO-Zugriff über chip0 bzw. /dev/gpiochip0. Beim Raspberry Pi musste dagegen chip4 bzw. /dev/gpiochip4 verwendet werden. Scripts, die universell auf alten und neuen Geräten laufen sollten, brauchten eine entsprechende Fallunterscheidung.

Mit Kernel 6.6.47, der mittlerweile standardmäßig als Update unter Raspberry Pi OS installiert wird, ändert sich wieder alles! Auch beim Raspberry Pi 5 muss nun /dev/gpiochip0 verwendet werden. Eine Referenz aller internen GPIO-Nummern gibt cat /sys/kernel/debug/gpio.

Die Änderung betrifft unter anderem:

  • Python: gpiozero, lgpio, gpiod
  • Bash: gpioset, gpioget
  • C: lgpio, libgpiod, wiringpi

Scripts, die mit diesen Modulen bzw. Bibliotheken verfasst wurden, müssen geändert werden (Umstellung von GPIO-Chip 4 auf GPIO-Chip 0). Im Folgenden habe ich diesbezüglich Anleitungen für diverse Fälle zusammengefasst.

13.9.2024: Mit dem neuesten Update von Raspberry Pi OS wird ein Link von /dev/gpiochip4 auf /dev/gpiochip0 eingerichtet, wodurch die Auswirkungen des veränderten Kernels in den meisten Fällen nicht mehr spürbar sind.

ls -l /dev/gpiochip*

crw-rw---- 1 root gpio 254,  0 13. Sep 08:39 /dev/gpiochip0
crw-rw---- 1 root gpio 254, 10 13. Sep 08:39 /dev/gpiochip10
crw-rw---- 1 root gpio 254, 11 13. Sep 08:39 /dev/gpiochip11
crw-rw---- 1 root gpio 254, 12 13. Sep 08:39 /dev/gpiochip12
crw-rw---- 1 root gpio 254, 13 13. Sep 08:39 /dev/gpiochip13
lrwxrwxrwx 1 root root       9 13. Sep 08:39 /dev/gpiochip4 -> gpiochip0

Von gpiozero gibt es mittlerweile eine aktualisierte Version, die das richtige Chip-Device erkennt.

Low-Level-GPIO-Zugriff geändert mit Kernel 6.6 weiterlesen

Screen Sharing mit Raspberry Pi Connect

Screen Sharing mit dem Raspberry Pi war schon immer ein fehleranfälliges Vergnügen. In der Vergangenheit hat die Raspberry Pi Foundation auf die proprietäre RealVNC-Software gesetzt. Zuletzt war RealVNC aber nicht Wayland-kompatibel. Die Alternative ist wayvnc, ein Wayland-kompatible VNC-Variante: Wie ich unter Remote Desktop und Raspberry Pi OS Bookworm schon berichtet habe, ist wayvnc aber nicht mit allen Remote-Clients kompatibel, insbesondere nicht mit Remotedesktopverbindung von Microsoft.

Anfang Mai 2024 hat die Raspberry Pi Foundation mit Raspberry Pi Connect eine eigene Lösung präsentiert. Ich habe das System ausprobiert. Um das Ergebnis gleich vorwegzunehmen: Bei meinen Tests hat alles bestens funktioniert, selbst dann, wenn auf beiden Seiten private Netzwerke mit Network Address Translation (NAT) im Spiel sind. Das Setup ist sehr einfach, als Client reicht ein Webbrowser. Geschwindigkeitswunder sind aber nicht zu erwarten, selbst im lokalen Netzwerk treten spürbare Verzögerungen auf.

Der Zugriff auf den Raspberry-Pi-Client erfolgt hier in einem Fenster des Webbrowsers Google Chrome unter macOS

Screen Sharing mit Raspberry Pi Connect weiterlesen

8. Auflage erschienen

Anfang Mai 2024 ist die achte Auflage unseres Buchs erschienen!

pi-cover

Umfang: 1045 Seiten
Ausstattung: Farbdruck, Hard-Cover, Fadenbindung
ISBN: 978-3-8362-9666-3
Preis: Euro 44,90 (in D inkl. MWSt.)
Autoren:  Michael Kofler, Christoph Scherbeck und Charly Kühnast

Bestellen beim Rheinwerk Verlag

E-Book: Nur auf der Rheinwerk-Webseite können Sie wahlweise nur das E-Book (EUR 44,90) oder die Kombination aus Buch und E-Book bestellen (EUR 49,90).

Kurzbeschreibung

Raspberry Pi-Wissen in seiner umfassendsten Form:

  • Linux mit dem Raspberry Pi.
  • Der Raspberry Pi als Multimedia-Center und Spiele-Konsole
  • Programmierung: Einführung, Grundlagen und fortgeschrittene Techniken, Schwerpunkt Python, außerdem bash, PHP, C, Wolfram Language.
  • Elektronik und Komponenten: von LEDs zu Schrittmotoren, jede Art von Sensoren (Ultraschall, Wasserstand etc.), Bussysteme, Erweiterungen (Gertboard & Co.).
  • Projekte: Home Automation, RFID-Reader, Stromzähler auslesen, WLAN- und TOR-Router, Luftraumüberwachung, NAS etc.
  • Raspberry Pi Pico: MicroPython-Programmiertechniken, CO2-Ampel, Ultraschall-Entfernungsmessung
  • Mit Geleitwort von Eben Upton

Highlights der 8. Auflage

  • aktualisiert im Hinblick auf die neuen Modelle Raspberry Pi 5, Raspberry Pi Zero 2 und Raspberry Pico W
  • berücksichtigt Raspberry Pi OS »Bookworm«
  • PCIe-SSD statt SD-Karte
  • PXE-Boot
  • GPIO Reloaded: Neue Bibliotheken zur GPIO-Programmierung in der Bash, in Python und in C
  • Webserver auf dem Pico W realisieren
  • Home Assistant
  • RaspAP

Leseproben, Beispieldateien, Errata

Leseprobe

Beispieldateien

Es gibt noch keine Errata.

RasAP – Der perfekte Ad-Blocker zuhause

Es gibt unzählige Möglichkeiten, die Web-Werbung zu minimieren. Die c’t hat kürzlich ausführlich zum Thema berichtet, aber die entsprechenden Artikel befinden sich auf heise.de hinter einer Paywall. Und heise.de ist ja mittlerweile auch eine Seite, die gefühlt mindestens so viel Werbung in ihre Texte einbaut wie spiegel.de. Das ist schon eine Leistung … Entsprechend lahm ist der Seitenaufbau im Webbrowser.

Egal, alles, was Sie wissen müssen, um zuhause einigermaßen werbefrei zu surfen, erfahren Sie auch hier — kostenlos und werbefrei :-)

Raspberry Pi 3B+ mit USB-WLAN-Adapter

Anmerkung: Dieser Artikel ist zuerst auf kofler.info erschienen.

RasAP – Der perfekte Ad-Blocker zuhause weiterlesen

Raspberry Pi 5 mit PCIe-SSD

Der neue Raspberry Pi 5 verfügt erstmals über eine PCIe-Schnittstelle. Leider hat man sich bei der Raspberry Pi Foundation nicht dazu aufraffen können, gleich auch einen Slot für eine PCIe-SSD vorzusehen. Gut möglich, dass es auch einfach an Platzgründen gescheitert ist. Oder wird dieser Slot das Kaufargument für den Raspberry Pi 6 sein? Egal.

Mittlerweile gibt es diverse Aufsteckplatinen für den Raspberry Pi, die den Anschluss einer PCIe-SSD ermöglichen. Sie unterscheiden sich darin, ob sie überhalb oder unterhalb der Hauptplatine des Raspberry Pis montiert werden, ob sie kompatibel zum Lüfter sind und in welchen Größen sie SSDs aufnehmen können. (Kleinere Aufsteckplatinen sind mit den langen 2280-er SSDs überfordert.)

Raspberry Pi 5 mit PCIe-SSD weiterlesen

Strom sparen mit dem Raspberry Pi 5

Der Raspberry Pi 5 verbraucht auch im ausgeschaltenen Zustand fast 1,5 Watt Leistung — anscheinend, um Probleme bei der Stromversorgung von Erweiterungsplatinen (Hardware attached on top = HATs) zu vermeiden. Wenn Sie aber ohnedies kein HAT verwenden, können Sie die HAT-Stromversorgung im Power-off-Zustand komplett deaktivieren.

Dazu führen Sie im Terminal sudo rpi-eeprom-config -e. Es erscheint ein Editor, in dem Sie die folgenden Einstellungen vornehmen. (Eventuell weitere Parameter belassen Sie unverändert.) Die Einstellungen werden in das EEPROM des Raspberry Pis übertragen (das ist ein kleiner, nicht flüchtiger Speicher) und werden ab dem nächsten Neustart wirksam. Der Stromverbrauch im ausgeschaltenen Zustand sinkt damit auf ca. 0,01 Watt, ist dann also vollkommen unerheblich.

[all]
BOOT_UART=0
WAKE_ON_GPIO=0
POWER_OFF_ON_HALT=1

Weitere Hintergrundinformationen zu dieser Einstellung finden Sie hier:

https://www.jeffgeerling.com/blog/2023/reducing-raspberry-pi-5s-power-consumption-140x

Sonic Pi unter Raspberry OS »Bookworm« installieren

Das Programm Sonic Pi ist eine Art programmierbarer Synthesizer. In der Vergangenheit konnte es unkompliziert mit Einstellungen / Recommended Software installiert werden, aber diese Option fehlt in der aktuellen Version von Raspberry Pi OS. Der Grund dafür ist leicht zu erkennen: In den Paketquellen von Raspberry Pi OS gibt es zwar ein Paket sonic-pi, die darin enthaltene Version ist aber veraltet und inkompatibel zum geänderten Audio-System von Raspberry Pi OS »Bookworm«.

Die Installation von Sonic Pi ist dennoch einfach. Zuerst laden Sie das Paket in der aktuellen Version 4.5 von https://sonic-pi.net/#rp herunter. Danach führen Sie in einem Terminal-Fenster das folgende Kommando aus:

sudo sudo apt install Downloads/sonic-pi_4.5.0_1_bookworm.arm64.deb

Dabei geben Sie anstelle von 4.5.0 die gerade aktuelle Versionsnummer Ihres zuvor heruntergeladenen Pakets an. Die Installation endet mit der Warnung pkgAcquire::Run 13 Keine Berechtigung, die Sie ignorieren können. Anschließend führen Sie im Startmenü Enticklung /Sonic Pi aus.

Der programmierbare Synthesizer »Sonic Pi«

Quellen/Links

GPIO Reloaded III: Kamera

Das ist der dritte Teil einer Mini-Serie zur GPIO-Nutzung am Raspberry Pi 5:

  • GPIO Reloaded I: Python (gpiozero, lgpio, gpiod, rpi-lgpio)
  • GPIO Reloaded II: Bash (gpiod, gpioget, gpioset, pinctrl)
  • GPIO Reloaded III: Kamera (rpicam-xxx, Picamera2)

Genau genommen hat die Kamera-Nutzung nicht unmittelbar etwas mit GPIOs zu tun. Allerdings ist für die Kommunikation mit der Kamera ebenfalls der neu im Pi 5 integrierte RP1-Chip verantwortlich. Der Chip ist der Grund, weswegen alte Kamera-Tools auf dem Raspberry Pi 5 nicht mehr funktionieren. Bevor Sie zu schimpfen beginnen: Der RP1 hat viele Vorteile. Unter anderem können Sie nun zwei Kameras gleichzeitig anschließen und nutzen und höhere Datenmengen übertragen (wichtig für Videos).

Beachten Sie, dass Sie beim Raspberry Pi 5 zum Kamera-Anschluss ein neues, schmaleres Kabel benötigen!

Kamera-Modul 3 mit neuem, FPC-kompatiblen Kabel
Kamera-Modul 3 mit einem neuen, schmäleren Anschlusskabel

GPIO Reloaded III: Kamera weiterlesen

GPIO Reloaded II: Bash

Das ist der zweite Teil einer Mini-Serie zur GPIO-Nutzung am Raspberry Pi 5:

  • GPIO Reloaded I: Python (gpiozero, lgpio, gpiod, rpi-lgpio)
  • GPIO Reloaded II: Bash (gpiod, gpioget, gpioset, pinctrl)
  • GPIO Reloaded III: Kamera (rpicam-xxx, Picamera2)

Zu den wichtigsten Neuerungen beim Raspberry Pi 5 zählt nicht nur der viel schnellere SoC (System-on-a-Chip), sondern auch ein eigener I/O-Controller, der als eigener Chip realisiert ist (RP1). Dieser I/O-Chip bringt mit sich, dass etablierte Mechanismen zur GPIO-Steuerung nicht mehr funktionieren. Besonders stark betroffen sind Kommandos, die im Terminal oder in Bash-Scripts aufgerufen werden.

Achtung, Update: Beginnend mit Kernel 6.6 hat sich der Low-Level-GPIO-Zugriff beim Raspberry Pi 5 verändert und erfolgt nun — wie bei älteren Modellen — via /dev/gpiochip0. Siehe auch https://pi-buch.info/low-level-gpio-zugriff-geaendert-mit-kernel-6-6/.

GPIO Reloaded II: Bash weiterlesen

GPIO Reloaded I: Python

Dieser Artikel ist der Auftakt einer Mini-Serie, die sich mit der Script-Programmierung des Raspberry Pi 5 beschäftigt. Geplant sind drei Artikel:

  • GPIO Reloaded I: Python (gpiozero, lgpio, gpiod, rpi-lgpio)
  • GPIO Reloaded II: Bash (gpiod, gpioget, gpioset, pinctrl)
  • GPIO Reloaded III: Kamera (rpicam-xxx, Picamera2)

Hinter den Kulissen hat sich mit der Vorstellung des Raspberry Pi 5 mehr geändert, als es in den ersten Testberichten den Anschein hatte. Schuld daran ist der neue I/O-Chip RP1, der unter anderem für die Kommunikation mit der GPIO-Leiste und der Kamera zuständig ist. Der RP1 bringt natürlich viele Vorteile mit sich (u.a. die Möglichkeit, zwei Kameras anzuschließen und größere Bild- bzw. Videomengen zu verarbeiten); er führt aber auch dazu, dass über Jahre etablierte Module und Kommandos nicht mehr funktionieren. Ja, die Raspberry Pi Foundation hat vorgearbeitet und empfiehlt schon eine Weile alternative Werkzeuge. Aber aus Bequemlichkeit blieben viele Programmierer bei langjährig bewährten Tools. Damit ist jetzt Schluss. Wer den Pi 5 als Maker-Tool nutzen will, muss umlernen.

Achtung, Update: Beginnend mit Kernel 6.6 hat sich der Low-Level-GPIO-Zugriff beim Raspberry Pi 5 verändert und erfolgt nun — wie bei älteren Modellen — via /dev/gpiochip0. Siehe auch https://pi-buch.info/low-level-gpio-zugriff-geaendert-mit-kernel-6-6/.

GPIO Reloaded I: Python weiterlesen