Zum Linux Kernel 4.15, der am 28. Januar von Linus Torvalds freigegeben wurde, haben wir ein paar sinnvolle Beiträge geleistet: Für industrielle analoge und digitale Ein-/Ausgangsbausteine, die in Revolution Pi Geräten verbaut sind und bisher von Linux nicht unterstützt wurden, haben wir Treiber entwickelt.
Im Einzelnen:
- Neu entwickelter Treiber für den digitalen Eingangsbaustein MAX31913 mit erweitertem Temperaturbereich, Schutz gegen elektromagnetische Interferenzen und Detektion von Überhitzung und Spannungsabfall:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/gpio/gpio-max3191x.c
- Neu entwickelter Treiber für den analogen Ausgangsbaustein TI DAC082S085 mit erweitertem Temperaturbereich:
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/iio/dac/ti-dac082s085.c - Erweiterung eines vorhandenen Treibers um Unterstützung für den analogen Eingangsbaustein MCP3550 mit hoher Präzision und erweitertem Temperaturbereich:
https://git.kernel.org/linus/c1375d671a35 - Erweiterung des GPIO Core um das gleichzeitige Auslesen mehrerer digitaler Eingänge zur performanten Ansteuerung des MAX31913:
https://git.kernel.org/linus/eec1d566cdf9
Die Treiber ermöglichen den Zugriff auf die Ein-/Ausgangsbausteine wahlweise über piControl oder direkt über die generischen Programmierschnittstellen des Linux Kernels. Anwender haben damit größtmögliche Flexibilität beim Entwickeln von Steuerungen.
Durch das Upstreaming der Treiber in den Mainline Linux Kernel sind Anwender nicht gezwungen, einen Spezial-Kernel auf ihren Revolution Pi Geräten einzusetzen. Dies ist ein großer Vorteil gegenüber sogenannten out-of-tree Treibern. Solche Treiber funktionieren in der Regel nur mit einer bestimmten Kernel-Version und müssen auf jede neue Version mühsam portiert werden, da sich die Kernel-internen Schnittstellen laufend ändern. Unterlässt der Hersteller diesen Portierungsaufwand, sind Anwender auf eine ältere Kernel-Version festgelegt und können sich gegen darin entdeckte Sicherheitslücken nicht schützen.