Install ECI Deb Packages¶
This section will help you set up a private ECI APT repository and install ECI Deb packages.
Do the following:
Setup the ECI APT Repository¶
A target running a compatible OS can install ECI Deb packages from a hosted ECI APT repository. Alternatively, you can privately host the ECI APT repository on your own local network with packages you built or packages from the ECI release archive.
If you have already downloaded the ECI APT Repository, no additional preparation is required. Otherwise, follow the steps to download the ECI APT repository.
This section explains the procedure to use the Linux build system to privately host the ECI APT repository on the local network and configure the APT package manager to use the privately hosted ECI APT repository.
Before setting up the Linux* build system, make sure that:
The Linux build system meets the recommended system requirements.
Docker* (version 19.03.15 or higher) is installed and the user is part of the
docker
group. For information on installing and configuring Docker, refer to the following:
Note: If you are behind a proxy, make sure that you set the following environment variables: HTTP_PROXY
, HTTPS_PROXY
, and NO_PROXY
.
The section is applicable to:

Do the following to set up a Linux build system:
Use the Intel edgesoftware utility to download the ECI release archive, if not done already.
Copy the
eci-release.tar.gz
archive from the ECI release archive (release-eci_#.#.zip
) to the Linux build system. Make sure that there are no spaces in the directory path. For example, copy the archive to ~/Desktop. Theeci-release.tar.gz
archive is located in the ECI release archive within theEdge-Controls-for-Industrial
directory as follows:└── Edge-Controls-for-Industrial ├── Codesys_Example_Applications.zip ├── Dockerfiles.tar.gz └── eci-release.tar.gz
Extract the archive. In Ubuntu, right-click the archive and select Extract Here.
The directory contents should be similar to the following:
On the Linux build system, open a terminal to the eci-release directory. In Ubuntu, right-click anywhere in the directory explorer and select Open in Terminal.
At the terminal prompt, run the
host_apt_repo.sh
script without any parameters:$ ./host_apt_repo.sh
A menu will be displayed based on either of the following scenarios:
You are installing ECI Deb packages provided with the ECI release
You are installing ECI Deb packages from a local build
Click the corresponding tab to continue.
The menu will display APT repository options for both Debian and Ubuntu:
ECI packages for bullseye
: ECI Deb packages provided with the ECI release for Debian 11 (Bullseye)ECI packages for jammy
: ECI Deb packages provided with the ECI release for Ubuntu 22.04 (Jammy Jellyfish)
Select an option corresponding to the OS installed on the target system (Bullseye or Jammy Jellyfish).
The menu will display the APT repository options for both Debian and Ubuntu.
If you have built either core-bullseye or core-jammy, select the corresponding option:
ECI packages for bullseye
: ECI Deb packages provided with the ECI release for Debian 11 (Bullseye)ECI packages for jammy
: ECI Deb packages provided with the ECI release for Ubuntu 22.04 (Jammy Jellyfish)
The
Local build
options are available only if you have built ECI targets packages-bullseye or packages-jammy.Local build (packages-bullseye)
: ECI Deb packages created from building packages-bullseye locally for Debian 11 (Bullseye)Local build (packages-jammy)
: ECI Deb packages created from building packages-jammy locally for Ubuntu 22.04 (Jammy Jellyfish)
Select a
Local build
option corresponding to the OS installed on the target system (Bullseye or Jammy Jellyfish).A Docker* container with the Apache HTTP web server will open port 8080 and host the ECI APT repository on the network. If port 8080 is in use or restricted, edit the script and change the port assigned to the
HTTPD_PORT
variable (available at the beginning of the script). If any errors regarding Docker occur, refer to Setup Notifications for common resolutions.Attention
Hosting APT repositories using this method is not inherently secure! Production deployments should use security measures according to the environment and exposure.
When the APT repository server is ready, the script will display a few commands. In a later step, these commands will be executed on a target system.
Note: The target system must be connected to the same network used by the APT repository server and be able to connect to the port in use (default 8080).
The APT repository server will continue to run until you stop it. When stopped, target systems will not be able to download ECI Deb packages from this APT repository server. To stop the APT repository server, press Ctrl + C on the keyboard.
The section is applicable to:
If not already completed, prepare the target to install ECI Deb packages.
Copy the GPG key
GPG-PUB-KEY-INTEL-ECI.gpg
from the eci-release directory to the target system. This enables the ECI APT repository to be integrity-verified, enhancing security.$ sudo cp GPG-PUB-KEY-INTEL-ECI.gpg /etc/apt/trusted.gpg.d/
Note: It is not mandatory to add the GPG key. However, without the key, the APT package manager will display a warning that it could not verify signatures:
W: GPG error: http://10.0.2.15:8080/ isar Release: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 6350B922F48AD0FC
Run the commands, displayed by the
host_apt_repo.sh
script on the target system.In this example, the following commands were executed:
sudo bash -c 'echo "deb [trusted=yes] http://10.0.2.15:8080/ isar main" > /etc/apt/sources.list.d/eci.list' sudo bash -c 'echo "deb-src [trusted=yes] http://10.0.2.15:8080/ isar main" >> /etc/apt/sources.list.d/eci.list' sudo bash -c 'echo -e "Package: *\nPin: origin 10.0.2.15\nPin-Priority: 1000" > /etc/apt/preferences.d/isar' sudo bash -c 'echo "Acquire::http::Proxy::10.0.2.15 DIRECT;" >> /etc/apt/apt.conf.d/proxy.conf'
Install ECI Real-time Linux Kernel¶
The section is applicable to:

Make sure that you have setup the ECI APT repository.
Before using the ECI APT repository, update the APT packages list:
$ sudo apt update
The APT package manager will download the latest list of packages available for all configured repositories.
Tip
If the APT package manager is unable to connect to the repositories, follow these APT troubleshooting tips:
Make sure that the system has network connectivity.
Make sure that the ports
80
and8080
are not blocked by a firewall.Configure an APT proxy (if network traffic routes through a proxy server). To configure an APT proxy, add the following lines to a file at
/etc/apt/apt.conf.d/proxy.conf
(replace the placeholders as per your specific user and proxy server):Acquire::http::Proxy "http://user:password@proxy.server:port/"; Acquire::https::Proxy "http://user:password@proxy.server:port/";
ECI provides Deb packages named
customizations-*
which add a GRUB menu entry for ECI and prepares the system to be deterministic. Install these packages using theeci-customizations
meta-package:$ sudo apt install -y eci-customizations
Next, install the ECI real-time Linux kernel. There are two options available: Linux Intel LTS PREEMPT_RT kernel and Linux Intel LTS Xenomai Dovetail kernel. It is recommended that you start with Linux Intel LTS PREEMPT_RT kernel, if you do not know which option to choose.
Click the corresponding tab to know more.
Linux Intel LTS PREEMPT_RT kernel is Intel’s Long-Term-Support kernel with PREEMPT_RT patches.
$ sudo apt install -y linux-intel-rt
Linux Intel LTS Xenomai Dovetail kernel is Intel’s Long-Term-Support kernel with Xenomai patches.
$ sudo apt install -y eci-xenomai
Reboot the target system.
$ sudo reboot
What Next after Installing ECI Real-time Linux Kernel¶
After installing the ECI real-time Linux kernel, proceed to Complete and Verify Deployment.