Install Kura
Kura is provided using a DEB Linux package. Visit the Kura download page to find the correct installation file for the target system.
Installer types
Several installers can be found on such page, and they fall into one of the following categories:
- specific device profiles, like `kura_5.5.0_nvidia-jetson-nano_installer.deb`` (identified with the device name in the downloads page);
- generic profiles, like
kura-5.5.0_generic-arm32_installer.deb
; and - profiles with suffix nn, like
kura_5.5.0_nvidia-jetson-nano-nn_installer.deb
Profiles of types (1) and (2) ship a Kura version with networking functionalities. In particular, the installers of kind (1) use Kura Networking for leveraging network interface configurations and are made for a specific device.
Installers of type (2) can be installed on targets with NetworkManager; a commonly available tool for managing Linux networking. Kura leverages this tool for networking functionalities. Refer to the Generic installers section for further information.
Installers of type (3) with the suffix nn
are No Networking profiles that do not bundle the Kura Network Manager: all the network configurations need to be done outside of Kura. Functionalities missing in NN profiles compared to the full Kura profiles:
- Networking interfaces management
- Firewall configuration management
- Network Threat management
Generic installers
Kura can be installed using the generic profiles:
where <arch>
is one of the supported architectures: x86_64, arm32, and arm64. A generic Kura profile can work on systems that have available the dependencies listed in the Kura dependencies section, and that have at least one physical ethernet interface.
Java Heap Memory Assignment
Eclipse Kura's Generic profile incorporates an adaptive Heap Memory allocation system during installation. The allocation follows a formula based on your gateway's available memory. If your gateway has less than 1024MB of RAM, Kura will set -Xms and -Xmx to 256MB. For gateways with more than 1024MB, one quarter of the total RAM will be assigned to -Xms and -Xmx.
Initial network configuration
During the installation of Eclipse Kura with network management support, the initial network configuration will be generated dynamically. The existing wired and wireless network interface names are detected and sorted in ascending lexicographic order at the installation.
If only one ethernet interface is detected (e.g. eth0
), it will be configured as follows:
Interface | Configuration |
---|---|
Ethernet interface (e.g. eth0 ) |
- Status: Enabled for WAN - Configure: Using DHCP |
If multiple ethernet interfaces are detected, instead, the first two interfaces will be configured as presented in the table below. The other ethernet interfaces will be disabled.
Interface | Configuration |
---|---|
First Ethernet interface (e.g. eth0 ) |
- Status: Enabled for LAN - Configure: Manually - IP address: 172.16.0.1 - Router Mode: DHCP and NAT |
Second Ethernet interface (e.g. eth1 ) |
- Status: Enabled for WAN - Configure: Using DHCP |
Finally, if a wireless interface (e.g. wlan0
) is detected, it will configured as shown below. The other wireless interfaces will be disabled.
Interface | Configuration |
---|---|
Wireless interface (e.g. wlan0 ) |
- Status: Enabled for LAN - Configure: Manually - IP address: 172.16.1.1 - Passphrase: testKEYS - Router Mode: DHCP and NAT |
For example, if the system contains the following interfaces: wlp2s0
, wlp3s0
, enp3s0
, eno1
, ens2
; then eno1
will be
enabled for LAN with a DHCP server, enp3s0
will be enabled for WAN in DHCP client mode, wlp2s0
will be configured as an AP, and all other network interfaces will be disabled.
Warning
On systems that do not use systemd's predictable interface naming scheme (see Freedesktop reference) the primary network interface name might change whenever a re-enumeration is triggered (for example, after a reboot or after plugging in an external network adapter).
The advice is to install Kura on systems that use a reliable naming convention for network interfaces.
Systemd consistent network interface naming assigns the name prefix based on the physical location of the device, see Understanding the Predictable Network Interface Device Names for further reference.
Initial firewall configuration
Similarly to the initial network configuration, the initial firewall setup is adapted based on the network interface detected on the system. In case of multiple ethernet and wireless interfaces, the configuration will be as shown in the screenshot below.
If the wireless interface is not present, the firewall entries for the wlan0
are dropped.
Please note that installing Eclipse Kura with network configuration support will replace the current network and firewall configuration with the one shown above.
Other Kura services
Kura generic profiles do not contain gateway specific customizations, this implies that the values of some configuration parameters may be incorrect and/or missing and must be manually filled after installation. For example the user might want to:
- Configure the other network interfaces, if any.
- Setup additional firewall rules.
- Edit the
/opt/eclipse/kura/framework/jdk.dio.properties
with the correct GPIO mappings. By default this file is empty.
Kura dependencies
To have all the Kura features working, the following dependencies are required:
- General:
setserial
,zip
,gzip
,unzip
,procps
,usbutils
,socat
,gawk
,sed
,inetutils-telnet
. - Security:
polkit
orpolicykit-1
,ssh
oropenssh
,openssl
,busybox
,openvpn
. - Bluetooth:
bluez
orbluez5
,bluez-hcidump
orbluez5-noinst-tools
. - Time:
ntpdate
,chrony
,chronyc
,cron
orcronie
. - Networking:
network-manager
ornetworkmanager
,bind9
orbind
,dnsmasq
orisc-dhcp-server
or (dhcp-server
anddhcp-client
),iw
,iptables
,modemmanager
,hostapd
,wpa-supplicant
,ppp
,iproute2
. - Logs:
logrotate
. - Gps:
gpsd
. - Python:
python3
. - Java:
openjdk-17-jre-headless
ortemurin-17-jdk
oropenjdk-8-jre-headless
ortemurin-8-jdk
. - Others:
dos2unix
Supported devices
Kura generic has been tested on the following devices and provides full configuration of all the available interfaces and GPIO mappings.
Device | Architecture | OS |
---|---|---|
Raspberry Pi 3/4 | arm32 | Raspbian "Bookworm" |
Raspberry Pi 3/4 | arm64 | Ubuntu 20.04 |
Intel Up² | x86_64 | Ubuntu 20.04 |
NVIDIA Jetson Nano™ | arm64 | Ubuntu 20.04 |
Check out the quick start guides for the detailed installation steps and set-up procedures: