Release Notes Jessie

Raspbian Jessie als Basis

Das Image ist abgeleitet von Raspbian Jessie 2017-04-10. Dessen wichtigste Neuerung gegenüber dem Vorgänger Wheezy sind der parallelisierte Bootvorgang mittels systemd und die graphische Benutzeroberfläche PIXEL (Pi Improved Xwindows Environment, Lightweight). Der Kernel hat die Version 4.4.50-rt66.

Raspbian-Bestandteile, die für industrielle Anwendungen uninteressant sind (z. B. Spiele, LibreOffice), wurden entfernt, können jedoch bei Bedarf nachträglich installiert werden. Von den 3,9 GByte des eMMC sind dadurch auf dem Image ab Werk rund 1 Gbyte frei.

Unterstützung des RevPi Core 3

Das Image läuft sowohl auf Compute Module 1 als auch 3. Auf dem Compute Module 3 wird ein anderer Kernel geladen (/boot/kernel7.img statt /boot/kernel.img), ansonsten aber dasselbe 32-Bit Userland wie auf dem Compute Module 1 verwendet. Die 64-Bit Fähigkeit des Compute Module 3 wird derzeit noch nicht genutzt. Dies ist bei Raspbian genauso. Die Raspberry Pi Community entwickelt Patches zur 64-Bit Unterstützung, die bisher allerdings noch experimentell sind.

Modbus-Master und -Slave in Software

Der RevPi Core kann nun ohne zusätzliche Hardware als Modbus-Master und -Slave agieren: Via TCP über die eingebaute Ethernet-Schnittstelle oder via RTU mittels eines handelsüblichen RS485/USB-Adapters. Nach Einschalten der Software im Web-Status können in PiCtory virtuelle Modbus-Master- und -Slave-Module angelegt und konfiguriert werden. Die Modbus-Gegenstellen werden automatisch in das vom Kernel-Treiber picontrol.ko verwaltete Prozessabbild eingebunden und sind damit von Automatisierungssoftware wie logi.RTS steuerbar. logi.RTS liegt nun in Version 3.13 bei. Vorinstalliert ist außerdem SpiderControl. Hierfür müssen Lizenzen und Support separat über den Hersteller bezogen werden.

Neue Features in PiCtory

Vor dem Export als strukturierter Text ist nun ein Preview möglich. Der Menü-Eintrag zum Wiederherstellen des letzten gespeicherten Layouts wurde in „Reload“ umbenannt (zuvor: „New“). Der neue Menü-Eintrag „Clear“ ermöglicht ein Zurücksetzen auf ein leeres Layout. Dies sind nur einige Beispiele für zahlreiche Verbesserungen der Usability.

Neue Features im Web-Status

Im Web-Interface des Revolution Pi sind nun die CPU-Temperatur sowie der freie eMMC-Speicherplatz auf einen Blick ersichtlich. Über das Web-Interface (oder alternativ auf der Kommandozeile mit revpi-config) sind außerdem folgende Einstellungen änderbar:

  • Graphische Benutzeroberfläche:
    Auf Wunsch bootet das Image in die graphische Benutzeroberfläche PIXEL anstatt auf die Kommandozeile. Dadurch verlangsamt sich allerdings der Bootvorgang und erhöht sich der Speicherverbrauch, was insbesondere auf dem Compute Module 1 spürbar ist.
  • Abschaltung von Diensten:
    Dienste wie logi.RTS, der Revolution Pi Remote Access Tunnel (beide nunmehr standardmäßig inaktiv), NTP-Synchronisation und SSH Server (beide standardmäßig aktiv) sind ein- und ausschaltbar, um CPU-Last, Speicherverbrauch und Angriffsfläche je nach Einsatzzweck möglichst gering zu halten.
  • Underclocking von GPU und ARM CPU auf Compute Module 3:
    Die GPU kann von 250 auf 85 MHz heruntergetaktet werden, um das Temperaturbudget für die ARM CPU zu erhöhen. Dadurch sind allerdings Auflösungen ab 1920 x 1200 bei 60 Hz nicht mehr darstellbar, der Bildschirm bleibt schwarz. Die ARM CPU kann ebenfalls heruntergetaktet werden, um ein temperaturbedingtes Heruntertakten unter Last zu vermeiden und so vorhersagbar konstante Latenzzeiten zu erreichen.
  • Maßnahmen zur verlängerten Haltbarkeit des eMMC:
    Logfiles können optional in ein tmpfs im RAM anstatt auf das eMMC geschrieben werden, stehen dann nach einem Reboot jedoch nicht mehr zur Verfügung. Zudem ist Swap nun standardmäßig abgeschaltet, was 100 MByte Speicherplatz spart.

Neue Features in picontrol.ko und piTest

Der Kernel-Treiber picontrol.ko zur Ansteuerung von Revolution Pi Gateway- und I/O-Modulen unterstützt nun die Signalisierung von Events an Programme im User Space. Auf diesem Weg können sich diese z.B. über einen Reset von picontrol.ko informieren lassen.

Die Erkennung angeschlossener Module ist stabiler aufgebaut und hält damit auch harten EMV-Bedingungen Stand. Ergänzt wurde außerdem die Möglichkeit eines Firmware-Updates von I/O-Modulen, der zugehörige ioctl() Aufruf kann von piTest abgesetzt werden.

Im Prozessabbild wurden die Temperatur und Taktfrequenz der ARM CPU sowie die Dauer des letzten Zyklus in Millisekunden hinzugefügt. Die Datei „config.rsc“ ist von /opt/KUNBUS nach /etc/revpi verschoben.

piTest beherrscht jetzt das einmalige Auslesen eines Werts im Prozessabbild (Option -1, Default ist weiterhin kontinuierliches Auslesen), das Ausgeben lediglich des ausgelesenen Werts ohne Zusatzinformationen (Option -q) und die Ausgabe des Werts wahlweise als Hex-, Dezimal- oder Binärzahl. Damit ist piTest gut in Shellscripte integrierbar.

Der Quelltext von picontrol.ko, piTest sowie von dem mitgelieferten Kernel ist auf GitHub offengelegt. Eine aktive Mitarbeit der Community, etwa in Form von Pull Requests, ist ausdrücklich erwünscht:

https://github.com/RevolutionPi/piControl

https://github.com/RevolutionPi/linux

Debian-Pakete für PiCtory, logi.RTS und Freunde

Kunbus-spezifische Bestandteile sind nicht mehr in /opt/KUNBUS abgelegt, sondern als Debian-Pakete installiert. Mittels apt-get und dpkg sind sie aktualisierbar und sauber deinstallierbar. Die Pakete legen ihre Dateien in Pfaden ab, die konform sind zum Filesystem Hierarchy Standard. Die Paketlisten auf packages.revolutionpi.de sind nunmehr kryptographisch signiert, um Man-in-the-middle Angriffen bei der Paketaktualisierung vorzubeugen. Neben Debian-Paketen von Kunbus stellt der Server in einem contrib-Bereich Pakete für Community-Entwicklungen wie z.B. RevPiModIO zur Verfügung.

Generierung eigener Images und Kernels

Die Tools, mit denen Kunbus das Image und den Kernel erzeugt hat, sind auf GitHub offengelegt. Kunden können sich mit wenig Aufwand eigene Images bauen. Falls der RevPi Core in einer Hochsicherheitsumgebung eingesetzt wird, ist auf diesem Weg auch überprüfbar, welche Änderungen Kunbus gegenüber dem originalen Raspbian Image vorgenommen hat, und dass keine

Hintertüren eingefügt wurden:

https://github.com/RevolutionPi/imagebakery

https://github.com/RevolutionPi/kernelbakery

Weitere Detailverbesserungen

  • Freier Speicher:
    Um einen Überlauf durch Logfiles zu verhindern werden diese häufiger als bisher rotiert und stärker komprimiert. Außerdem wurde die syslog Konfiguration optimiert so dass Meldungen nicht mehrfach in unterschiedliche Logfiles geschrieben werden.
  • WLAN Konfiguration:
    In /etc/wpa_supplicant/wpa_supplicant.conf existiert ein Template für die WPA-Authentifikation, das nur noch ausgefüllt werden muss. Für den häufigen Anwendungsfall, dass die Default-Route über das WLAN-Interface gegenüber drahtgebundenem Ethernet bevorzugt werden soll, existiert ab Werk bereits die passende Einstellung in /etc/dhcpcd.conf.
  • Gehärtete Netzwerk-Einstellungen:
    Standardmäßig ist Reverse Path Filtering aktiv, Source Routing und ICMP Redirects sind inaktiv und ARP-Requests über Interface-Grenzen hinweg sind verboten. Durch Reverse Path Filtering ist kein asymmetrisches Routing mehr möglich, wir gehen davon aus dass dies auf dem Revolution Pi nur selten vorkommt. Kunden sollten die Einstellungen in /etc/sysctl.conf und /etc/sysctl.d/ je nach Einsatzzweck weiter härten: Werden beispielsweise nur statische IPv6-Adressen verwendet, können SLAAC und Router Advertisements deaktiviert werden.