Raspberry Pi

Eurotech provides Raspberry Pi OS-compatible ESF installers (32 and 64-bit) via generic profiles. These can be used as a prototyping platform for testing and evaluation purposes and are not officially supported. Therefore these profiles are not tailored for production.

Ethernet Configuration

The default configuration of the Ethernet interfaces for the Raspberry Pi is the following:

Interface NameGateway LabelStatus
eth0N/AEnabled for WAN - DHCP Client

📘

Consistent naming of multiple interfaces through adapter

It is possible to connect multiple ethernet interfaces to the device through USB adapters. However, the Raspberry Pi does not follow the consistent interface naming convention out-of-the-box. To enable that feature use the raspi-configtool and navigate to Advanced Options / Network Interface Names menu.

Wireless Configuration

The wireless interface of the Raspberry Pi is the wlan0. By default, the interface is disabled, keep this in mind when installing ESF via Wi-Fi: the installation can be completed via Wi-Fi but, at the following reboot, ESF will disable as default policy the WI-Fi interface. It can be later re-enabled via the ESF administration web UI.

To set the right Wi-Fi regulatory domain based on your current world region following the instructions here. In case of problems, you could try to edit the /etc/default/crda adding the ISO 3166-1 alpha-2 code of your region.

WLAN Softblock

On Raspbian, it could happen that ‘wlan’ interface is “soft blocked” by default and needs to be enabled. To see if it is blocked run:

rfkill list

and unblock it with:

sudo rfkill unblock wlan

Firewall Configuration

The default ESF firewall configuration for the the Raspberry Pi is as follows:

PortProtocolPermitted NetworkPermitted Interface Name
67udp0.0.0.0/0eth0
67udp0.0.0.0/0wlan0
53udp0.0.0.0/0eth0
53udp0.0.0.0/0wlan0
443tcp10.234.0.0/16tun0
443tcp0.0.0.0/0eth0
4443tcp10.234.0.0/16tun0
4443tcp0.0.0.0/0eth0
22tcp10.234.0.0/16tun0
22tcp0.0.0.0/0eth0
5353udp0.0.0.0/0eth0

Clock Service

NTS is supported via chrony-advanced option only with chrony version greater then 4.x installed.

GPIO

To correctly use the GPIO pins, the user needs to update the jdk.dio.properties file with the proper configuration, based on its own device.

This is required since the sysfs interface has been deprecated, and some OS distribution may have already suppressed it. Moreover, the kernel complains if a static base number is assigned to a GPIO controller: indeed, when it assigns the numbers automatically, it usually starts from 511. More information can be found here.

In order to set the correct configuration the user can perform the following steps:

  • On the device run the command cat /sys/kernel/debug/gpio, looking for entries similar to gpio-ABC (GPIxx): from this information it is possible to retrieve which number the GPIO controller was assigned to by the OS (in this case the GPIO controller number xx is assigned with the number ABC). The image below represent an example of this file

  • Modify the /opt/eclipse/kura/framework/jdk.dio.properties with the number and controllers found in the previous step:
573 = deviceType: gpio.GPIOPin, pinNumber:573, name:GPI02
574 = deviceType: gpio.GPIOPin, pinNumber:574, name:GPIO3
575 = deviceType: gpio.GPIOPin, pinNumber:575, name:GPIO4
576 = deviceType: gpio.GPIOPin, pinNumber:576, name:GPIO5
577 = deviceType: gpio.GPIOPin, pinNumber:577, name:GPIO6
578 = deviceType: gpio.GPIOPin, pinNumber:578, name:GPIO7
579 = deviceType: gpio.GPIOPin, pinNumber:579, name:GPIO8
580 = deviceType: gpio.GPIOPin, pinNumber:580, name:GPIO9
581 = deviceType: gpio.GPIOPin, pinNumber:581, name:GPIO10
582 = deviceType: gpio.GPIOPin, pinNumber:582, name:GPIO11
583 = deviceType: gpio.GPIOPin, pinNumber:583, name:GPIO12
584 = deviceType: gpio.GPIOPin, pinNumber:584, name:GPIO13
585 = deviceType: gpio.GPIOPin, pinNumber:585, name:GPIO14
586 = deviceType: gpio.GPIOPin, pinNumber:586, name:GPIO15
587 = deviceType: gpio.GPIOPin, pinNumber:587, name:GPIO16
588 = deviceType: gpio.GPIOPin, pinNumber:588, name:GPIO17
589 = deviceType: gpio.GPIOPin, pinNumber:589, name:GPIO18
590 = deviceType: gpio.GPIOPin, pinNumber:590, name:GPIO19
591 = deviceType: gpio.GPIOPin, pinNumber:591, name:GPIO20
592 = deviceType: gpio.GPIOPin, pinNumber:592, name:GPIO21
593 = deviceType: gpio.GPIOPin, pinNumber:593, name:GPIO22
594 = deviceType: gpio.GPIOPin, pinNumber:594, name:GPIO23
595 = deviceType: gpio.GPIOPin, pinNumber:595, name:GPIO24
596 = deviceType: gpio.GPIOPin, pinNumber:596, name:GPIO25
597 = deviceType: gpio.GPIOPin, pinNumber:597, name:GPIO26
598 = deviceType: gpio.GPIOPin, pinNumber:598, name:GPIO27

gpio.GPIOPin = initValue:0, deviceNumber:0, direction:3, mode:-1, trigger:3
uart.UART = baudRate:19200, parity:0, dataBits:8, stopBits:1, flowControl:0

You can also check your GPIO device configuration executing the command pinout if available on your system.