Zu guter Letzt gibt es noch die GPIO-Filter nach dem Schema [gpio4=0] beziehungsweise [gpio4=1]. Hier steuert der Wert am angegebenen Pin, ob der RasPi die folgenden Zeilen berücksichtigt. Das erweist sich beispielsweise dann als nützlich, wenn Sie Bluetooth im Normalfall nicht brauchen, in Ausnahmefällen aber schon.
Die Zeilen aus Listing 2 schalten dann Bluetooth aus, so lange GPIO4 auf High steht, dem Vorgabewert für den Pin. Eine kleine Brücke zum benachbarten GND-Pin zieht ihn dann auf Low.
Listing 2
[gpio4=1] dtoverlay=disable-bt
GPIOs tunen
GPIOs selbst lassen sich über die config.txt auch tunen. Wie Abbildung 2 zeigt, weisen Sie den Pins bei Bedarf alternative Funktionen zu. Unabhängig davon können Pins als Input oder Output konfiguriert sein, Pullups und Pulldowns besitzen (das beeinflusst die Input-Pins) oder als Vorgabe High beziehungsweise Low ausgeben. Die Konfiguration erfolgt dabei in einem mehrstufigen Prozess [3].
Zunächst einmal verwenden die Pins die vom SoC definierten Werte. Diese können dann nacheinander das Boot-ROM, die Datei bootcode.bin und der Device-Tree (dt-blob.bin) überschreiben. Danach kommen Einstellungen in der config.txt an die Reihe. Alle Details finden Sie in der RasPi-Dokumentation [4].
Mit dem Eintrag aus Listing 3 setzen Sie GPIO20 als Output (op) mit Wert 0 (dl, “driving low”) und GPIO21 als Input (ip) mit einem Pullup (pu).
Listing 3
gpio20=op,dl gpio21=ip,pu
Die zentrale Konfigurationsdatei bietet also eine ganze Reihe von Möglichkeiten zum Beeinflussen der Hardware. Zum Schluss sollen noch zwei konkrete Anwendungsbeispiele zeigen, dass auch die “normalen” Overlays das ein oder andere Bonbon bereithalten.
Beide entdeckte der Autor erst während der Arbeit an diesem Artikel; ein Blick in die Dokumentation lohnt sich also immer mal, denn von Version zu Version von Raspbian gibt es hier Neuerungen.
Lüftersteuerung
Nicht erst seit dem RasPi 4 gibt es Situationen, in denen der Rechner heiß läuft und deshalb die CPU-Geschwindigkeit drosselt. Hier hilft ein kleiner Lüfter. Damit dieser nicht unnötig durchläuft, brauchen Sie eine Lüftersteuerung. Dank Overlay klappt das ganz ohne Zusatz-Software, wie die erste Zeile 1 aus Listing 4 demonstriert.
Listing 4
dtoverlay=gpio-fan,gpiopin=17,temp=60000 dtoverlay=i2c-rtc-gpio,ds3231,i2c_gpio_sda=17,i2c_gpio_scl=27,wakeup-source
Ziemlich unhandlich müssen Sie hier die Temperatur in Millicelsius angeben – so genau arbeitet die interne Temperaturmessung gar nicht. Der Lüfter des Autors läuft zwar problemlos mit den 3,3 Volt, die ein GPIO-Pin bietet, startet damit aber nicht zuverlässig. Hier hilft es, den Lüfter mit 5 Volt zu betreiben – der Pin des Overlays steuert dann einen Transistor.
Und es geht doch
PCs und Odroids haben gegenüber dem RasPi den Vorteil, dass sie eine interne Uhr besitzen, die den Rechner bei Bedarf aufweckt. Der RasPi dagegen bringt weder eine Echtzeituhr mit, noch führt die dafür notwendige Schnittstelle des Powermanagement-ICs nach außen. Entsprechende Anfragen in diversen Raspberry-Pi-Foren nach dem Aufwecken per RTC werden deswegen immer negativ beantwortet.






