Raspbian Jessie as basis
The image is derived from Raspbian Jessie 2017-04-10. Its most important innovation over its predecessor Wheezy are the parallelised booting function by means of systemd and the PIXEL (Pi Improved Xwindows Environment, Lightweight) graphical user interface. The kernel is the 4.4.50-rt66 version.
Raspbian constituent parts of no interest for industrial applications (e.g. games, LibreOffice) have been removed but can be installed later if desired. Of the MMC’S 3.9 GByte, about 1 GByte are free on the image ex works.
Support of the RevPi Core 3
The image runs on both Compute Module 1 and 3. Another kernel (/boot/ kernel7.img instead of /boot/kernel.img) is loaded on Compute Module 3, otherwise the same 32 bit userland is used as on Compute Module 1. The 64-bit capability of Compute Module 3 is not being currently used. The same goes for Raspbian. The Raspberry Pi Community is developing patches for 64-bit support that are however still experimental.
Modbus-Master and Slave in Software
RevPi Core can act as Modbus Master and Slave without additional hardware – via TCP by means of the integrated ethernet interface or via RTU by means of a regular RS485/ USB adapter. After enabling the feature in the web status, virtual Modbus Master and Slave modules can be set-up and configured in PiCtory. The Modbus receivers are automatically linked to the process image administered by the picontrol.ko kernel driver. They can therefore be controlled by automation software like logi.RTS, which is now included in version 3.13. Also pre-installed is SpiderControl for which licences and support have to be obtained separately from the manufacturer.
New features in PiCtory
Before being exported as Structured Text, a preview in now possible. The menu entry to restore the last saved layout has been renamed “Reload” (previously: “New”). The new menu entry “Clear” enables the resetting to an empty layout. These are only a few examples of the numerous usability improvements.
New features in web status
In the Revolution Pi web interface, the CPU temperature and the free eMMC storage space are both immediately evident. The following adjustments can be made via the web interface (or alternatively via the command line using revpi-config):
- Graphical user interface:
If desired, the image boots into the PIXEL graphical user interface instead of to the command line. This however slows the boot process and increases the memory consumption which is particularly noticeable on Compute Module 1.
- Turning services off:
Services like logi.RTS, the Revolution Pi Remote Access Tunnel (both inactive by default from now on), NTP Synchronisation and SSH Server (both active by default) can be turned on and off to keep CPU load, storage usage and attack surface, depending on the purpose, to a bare minimum.
- Underclocking of GPU and ARM CPU on Compute Module 3:
GPU can be underclocked from 250 to 85 MHz to increase ARM CPU’s temperature budget. This however means that resolutions from 1920 x 1200 at 60 Hz can no longer be displayed. The screen remains black. ARM CPU can also be underclocked to avoid a temperature induced underclocking under load and therefore ensure predictably constant latency periods.
- Measures to increase the durability of eMMC:
Logfiles can, optionally be written to a tmpfs in RAM instead of on the eMMC but they are then no longer available after a reboot. Additionally, Swap is now turned off by default saving 100 MByte storage space.
New features in picontrol.ko and piTest
The picontrol.ko kernel driver to communicate with Revolution Pi Gateway and I/O modules now supports the signalising of events to programmes in User Space. In this way, they, for example, can let themselves be informed after a picontrol.ko reset.
The recognition of connected modules is structured more stably and therefore also withstands tough EMV conditions. piControl.ko has also been supplemented with the possibility of a I/O module firmware update – the respective call can be sent by piTest.
The temperature and clock rate of the ARM CPU and the duration of the last cycle have been added to the process image. The “config.rsc” file has been moved from /opt/KUNBUS to /etc/revpi.
piTest now handles a one-off readout of a value in the process image (option -1, default is still continual “readouting”), the display of just the readout value without additional information (option –q) and the display either as a hex, decimal or binary figure. piTest is therefore easy to integrate into shell scripts.
The source code of picontrol.ko, piTest as well as the supplied kernel is disclosed on GitHub. The community’s active involvement in the form of pull requests is very welcome:
Debian-packages for PiCtory, logi.RTS and friends
KUNBUS-specific constituent parts are no longer stored in /opt/KUNBUS but installed as Debian packages. By means of apt-get and dpkg, they are updateable and can be easily uninstalled. The packages store their files in paths conforming to the Filesystem Hierarchy Standard. The package lists on packages.revolutionpi.de are now signed cryptographically to prevent man-in-the-middle attacks when updating packages. Alongside Debian packages from KUNBUS, the server makes packages available for community developments like, for example, RevPiModIO in a contrib area.
Generating an own image and kernel
The tools by which KUNBUS has created the image and kernel are available on GitHub. Customers can create their own image with little effort. Should RevPi Core be used in a high security area, customers can inspect the GitHub repositories to check which changes KUNBUS has made to the original Raspbian image and ensure no backdoors have been introduced:
Other improved details
- Free storage space:
To prevent a logfile overspill, they are rotated more often and compressed to a greater extent. Additionally, the syslog configuration has been optimised so that the same messages are not written to multiple logfiles.
- WLAN configuration:
In /etc/wpa_supplicant/wpa_supplicant.conf exists a template for WPA authentication that has only to be filled in. For the frequent use case when the default route is to be preferred via the WLAN interface rather than wired ethernet, there is the requisite setting is already included in /etc/dhcpcd.conf.
- Hardened network setting:
Active reverse path filtering comes as standard, source routing and ICMP redirects are inactive and ARP requests beyond interface bounds are forbidden. Reverse path filtering means asymmetrical routing is no longer possible. We have assumed that this only seldom happens on Revolution Pi. Customers should further harden the settings in /etc/sysctl.conf and /etc/sysctl.d/ depending on the purpose: if for example only static IPv6 addresses are used, then SLAAC and router advertisements can be deactivated.