Release Notes Stretch

Raspbian Stretch als Basis

Das Image ist abgeleitet von Raspbian Stretch 2018-03-13. Anders als Jessie, das mit dem Umstieg auf systemd und die Benutzeroberfläche PIXEL gravierende Systemumbauten mit sich brachte, enthält Stretch lediglich inkrementelle Verbesserungen und aktuellere Pakete. Der Kernel hat die Version 4.9.76-rt60.

Der Bootvorgang wurde leicht beschleunigt: Auf Jessie wurden z. B. beim Starten des Dienstes „Setting up console font and keymap“ diverse Tastasturlayouts erzeugt und komprimiert, was speziell auf dem RevPi Core mit CM1 merklich dauerte.

Unterstützung des RevPi Connect und RevPi Compact

Beim ersten Einloggen nach Aufspielen des Images wird man gefragt, um welches Produkt es sich handelt. Daraufhin wird das passende Device Tree Overlay in /boot/config.txt eingetragen. Anstelle des „kunbus.dtbo“ Overlays gibt es nun ein Overlay für jedes Produkt.

Die MAC-Adressen von fest eingebauten Ethernet-Schnittstellen werden nicht mehr in /boot/cmdline.txt konfiguriert, sondern in /boot/config.txt.

Software-Beigaben

Neu hinzugekommen ist die Software RevPi7 zur Synchronisierung von S7 Steuerungen mit dem piControl Prozessabbild. Als neue Drittanbietersoftware sind das HMI-System PROCON-WEB IoT sowie die Entwicklungsumgebung LogicLab enthalten.

Standardmäßig nicht mehr enthalten ist das Paket „revpi-tunnel“ für den Remote-Zugriff auf Revolution Pi Geräte. Kunden können es manuell nachinstallieren oder auf TeamViewer oder VNC migrieren.

Konstante Taktfrequenz

Auf dem RevPi Core 3 reduzierte der ARM-Prozessor bisher seinen Takt auf 600 MHz, solange die Systemlast unter 50 % blieb. Nunmehr verbleibt er permanent bei 1200 MHz, da nur dann die volle Performance auf dem spi0 Bus zur Verfügung steht. (Der Takt des spi0 Bus wird aus dem ARM-Takt abgeleitet.) Steigt die CPU-Temperatur über 80 °C, wird natürlich dennoch zum Schutz der Hardware heruntergetaktet.

Durch den dauerhaften Betrieb bei 1200 MHz steigen Leistungsaufnahme und Idle-Temperatur geringfügig an. Kunden können über den WebStatus wie bisher den Maximaltakt reduzieren, um Energie zu sparen und die CPU zu kühlen. Außerdem haben Kunden die Möglichkeit, zu dem alten Verhalten zurückzukehren, wonach der Takt von der Systemlast abhängt. Hierzu ist in der Datei /etc/default/cpufrequtils einzutragen: GOVERNOR=“ondemand“

Auf Jessie boten wir im WebStatus die Möglichkeit, die GPU herunterzutakten zwecks Verringerung der Leistungsaufnahme und damit der Temperatur. Dieses Feature musste leider entfallen, da es mit der aktuellen Raspberry Pi Firmware nicht mehr funktioniert.

Nach erstmaligem Booten warten

Beim erstmaligen Booten eines frisch geflashten Images werden ssh Host Keys erzeugt, ohne die kein Remote Login möglich ist. Dieser Vorgang kann insbesondere auf dem CM1 einige Sekunden dauern. Solange darf das System nicht stromlos gemacht werden, da die ssh Host Keys sonst leer sind. Sollte dies doch einmal passieren, kann der ssh-Zugriff durch erneutes Erzeugen der Host Keys gangbar gemacht werden:
sudo rm /etc/ssh/ssh_host_*
sudo ssh-keygen -A

Netzwerk-Konfiguration

Auf Jessie war es noch möglich, Interfaces mit den Kommandos ifup / ifdown hoch- oder herunterzufahren. Dies ist auf Stretch entfallen, stattdessen erfolgt die Bedienung der Interfaces standardmäßig über dhcpcd.

Beispiel: Trägt man in /etc/wpa_supplicant/wpa_supplicant.conf einen Access Point ein, verbindet man sich mit diesem wie folgt:
sudo dhcpcd –rebind wlan0

Möchte man das Interface wlan0 hoch- oder herunterfahren:
sudo ip link set wlan0 down
sudo ip link set wlan0 up

Alternativ:
sudo ifconfig wlan0 down
sudo ifconfig wlan0 up

Für den im Revolution Pi Online-Shop angebotenen Edimax EW-7811un USB WiFi Adapter wird nunmehr der Treiber rtl8192cu anstelle von 8192cu verwendet, da letzterer Inkompatibilitäten mit Kernel 4.9 aufweist.

Zeitsynchronisation

Die initiale Uhrzeit wird standardmäßig über NTP eingestellt und anschließend synchron gehalten. Zur manuellen Einstellung bei Nichtverfügbarkeit eines NTP-Servers empfehlen wir folgende Kommandos:
sudo timedatectl set-ntp false
sudo timedatectl set-time „YYYY-MM-DD HH:MM:SS“

Damit wird sowohl die Systemzeit als auch die kondensator-gepufferte Echtzeituhr gesetzt. Das „date“ Kommando setzt im Unterschied dazu nur die Systemzeit, die Echtzeituhr wird dagegen erst einige Minuten später vom Kernel gesetzt.

Die Zeitsynchronisation erfolgt auf Stretch nicht mehr über ntpd, sondern systemd-timesyncd. Wurden Änderungen an /etc/ntpd.conf gemacht, muss man diese in /etc/systemd/timesyncd.conf nachziehen, oder systemd-timesyncd deaktivieren und ntpd nachinstallieren.

Neues in PiCtory

Neu hinzugekommen sind die virtuellen Module RevPi7 (Anbindung von S7 Steuerungen) und Modbus RTU Master mit 150 Eingabeworten. Dienste wie RevPi7 oder Modbus Master / Slave werden beim Hinzufügen der Module automatisch gestartet. Benutzer können eigene Export-Formate im Verzeichnis /var/www/pictory/resources/data/patterns/export hinterlegen.

Die User-Settings ermöglichen es nun, einzustellen, wann PiCtory-Sitzungen beendet werden (Session Timeout). Außerdem können hier die Eigenschaften für den Auto-Export und die Cache-Steuerung festgelegt werden.

Mit der Funktion „Start-Config“ kann eine Projektdatei so abgespeichert werden, dass Sie nach dem Öffnen von PiCtory zur Verfügung steht.

Vor der Benutzung des neuen PiCtory sollte der Browser-Cache geleert werden, um Darstellungsprobleme zu vermeiden.

Neues im Web-Status

Der Menü-Aufbau wurde beschleunigt. Im Web-Status und in PiCtory wurden nach Hinweisen aus der Community Schwachstellen beseitigt, die als Paket-Updates auch für Jessie verfügbar sind. Wir empfehlen, zur Reduzierung der Angriffsfläche den Web-Status und PiCtory abzuschalten sobald Geräte im Feld ausgebracht sind und nicht mehr konfiguriert werden müssen. Hierzu ist der Apache Server zu deaktivieren:
sudo systemctl stop apache2
sudo systemctl disable apache2

Neues in piControl und piTest

piTest erlaubt mit der Option -f  das Update der Firmware eines DIO-, DI- oder DO-Moduls. Das Modul muss hierfür einzeln auf der rechten Seite eines RevPi Core angeschlossen sein (beim RevPi Connect auf der linken Seite).

Mit der Option -S kann die zyklische Synchronisierung des Prozessabbilds mit angeschlossenen I/O- und Gateway-Modulen unterbrochen werden. Anschließend kann man Werte im Prozessabbild programmatisch setzen und damit simulieren, dass diese Werte von den angeschlossenen Modulen ausgegeben wurden.

Die von piControl unterstützten ioctl() Aufrufe sind nunmehr in der Manual Page picontrol_ioctl(4) dokumentiert. Hinzugekommen ist der Aufruf KB_SET_OUTPUT_WATCHDOG um alle Ausgabewerte auf Null zu setzen, wenn die Anwendung innerhalb einer konfigurierbaren Periode keine neuen Werte geschrieben hat, etwa weil sie abgestürzt ist.

Im Modbus Master/Slave wurde die Interoperabilität mit nicht standardkonformen Geräten verbessert, dies ist als Paket-Update auch für Jessie verfügbar.

Quelltexte auf GitHub

Wie bisher sind die Quelltexte von piControl sowie zum Erstellen des Images und des Kernels auf GitHub offengelegt. Neu hinzukommen ist die Firmware der DIO-, DI- und DO-Module:
https://github.com/RevolutionPi/IODeviceExample