Appendix¶
Note
These lists are not comprehensive. They are provided for reference only.
ECI Linux Intel LTS Kernel¶
ECI distributes various builds of the Linux Intel LTS kernel, which are detailed in the table below:
Distribution |
Linux kernel type |
Linux kernel version |
Deb Packages |
Source URL |
---|---|---|---|---|
Debian 11 (Bullseye) |
Real-time PREEMPT_RT |
5.10.140-rt73 |
linux-headers-intel-rt linux-image-intel-rt linux-intel-rt |
|
Debian 11 (Bullseye) |
Xenomai/Dovetail |
5.10.140 |
linux-headers-intel-xenomai linux-image-intel-xenomai linux-intel-xenomai |
|
Debian 11 (Bullseye) |
ACRN Hypervisor compatible |
5.10.140 |
linux-headers-intel-acrn-sos linux-image-intel-acrn-sos linux-intel-acrn-sos |
|
Ubuntu 22.04 (Jammy Jellyfish) |
Real-time PREEMPT_RT |
5.15.49-rt47 |
linux-headers-intel-rt linux-image-intel-rt linux-intel-rt |
|
Ubuntu 22.04 (Jammy Jellyfish) |
ACRN Hypervisor compatible |
5.15.49 |
linux-headers-intel-acrn-sos linux-image-intel-acrn-sos linux-intel-acrn-sos |
ECI Components¶
The following components can be installed using Debian packages from ECI or open-source. Click the component hyperlink for instructions on installing and using the component.
Component |
Version |
Description |
---|---|---|
3.0.1 |
Open-source ACRN Type 1 hypervisor
|
|
4.0 |
Open-source CAN Bus software
|
|
4.5.0.0 |
Commercially available IEC 61131-3-compliant SoftPLC for PC-based industrial controllers running on Linux with soft real-time properties.
|
|
3.0 |
Intel-created software which can be used to bridge various industrial protocols together, effectively providing translation from one protocol to another.
|
|
1.5.2 |
Open-source EtherCAT Master software
|
|
2.6.3 |
Open-source framework for enabling smart manufacturing with visual and point defect inspections.
|
|
Intel® Elkhart Lake Functional Safety (FuSa) Software Package |
1.0 |
Intel-created software which takes advantage of hardware FuSa capabilities.
|
3.0.13 |
Intel-created software which enables an administrator to perform critical Device Management operations over-the-air remotely from the cloud.
|
|
3.0 |
Edge Orchestration provides a set of extensions for popular orchestration software (Kubernetes, Kubespray, Tanzu, Rancher, Helm, and so on), which enable clusters to take advantage of Intel features such as Intel® Resource Director Technology (Intel® RDT) and Intel® Time Coordinated Computing Tools (Intel® TCC Tools).
|
|
2022.1.0 |
Intel-created software which augments the compute performance of Intel processors with the ability to address the stringent temporal requirements of real-time applications.
|
|
0.8.27 |
Intel-created performance synthetic testing to compare Linux Intel® Industrial Ethernet driver hw-offload capabilities.
|
|
3.0 |
The PLCopen motion standard provides a way to have standard application libraries that are reusable for multiple hardware platforms.
|
|
3.0 |
The Real Time Data Agent provides an unified and real-time way to write/read data to/from shared memory, and also a demo program to parse/pack/send data to container stack for storage and visualization.
|
|
1.9 |
RTPM is designed to check the key settings of the system and help you to identify the hotspot of the system for real-time performance and provide a recommendation based on the Best-known Configuration (BKC). In addition, RTPM provides a way to measure the system scheduling latency with some open source tools.
|
|
5.5.00.28607 |
Commercially available Type 1 hypervisor designed to provide real-time performance and workload consolidation.
|
|
Foxy |
Open-source software intended for writing robot software. ROS is comprised of a collection of tools, libraries, and conventions that aim to simplify the task of creating complex and robust robot behavior across a wide variety of robotic platforms.
|
|
3.0 |
Template files for launching a time-series data processing stack consisting of the MQTT broker mosquitto, telegraf as data colletion service, InfluxDB as time-series database and grafana for visualization.
|
|
3.0 |
Trusted VM is designed to isolate a virtual machine at HW level using Intel silicon technologies and hypervisor protections to create a higher privileged VM.
|
ECI Benchmarks¶
The following benchmarks can be installed using Debian packages from ECI or open-source. Click the benchmark hyperlink for instructions on installing and using the benchmark.
Benchmark |
Location after installation |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ECI Examples¶
The following examples can be installed using Debian packages from ECI or open-source. Click the reference documentation hyperlink for instructions on running the example.
Example |
Reference Documentation |
Location after installation |
---|---|---|
CODESYS Application |
|
|
CODESYS Benchmark Application |
|
|
EC Protocol Bridge |
|
|
EC Protocol Bridge |
|
|
EtherCAT Enablekit |
|
|
Edge Control Protocol Bridge Example Applications |
|
|
Edge Control Protocol Bridge Example Configurations |
|
|
IgH EtherCAT Master Stack |
|
|
PLCopen Motion Control Examples |
|
ECI Kernel Configuration Optimizations¶
This list provides the additional kernel configurations used during compilation to optimize the system for real-time performance.
When Configuring x86_64 PPREEMPT_RT kernels, there is no default configuration file for each of the IPC models available, and the only kernel configuration file you may want to start from is shipped with ECI distributions. Below non exhaustive list of the most critical for a control Linux-rt OS runtime:
kernel config fragment overrides (.cfg) |
Comments |
---|---|
CONFIG_HZ_100=y
CONFIG_NO_HZ=n
CONFIG_NO_HZ_FULL=y
CONFIG_NO_HZ_IDLE=n
CONFIG_ACPI_PROCESSOR=n
CONFIG_CPU_FREQ_GOV_ONDEMAND=n
CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=n
CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
CONFIG_CPU_FREQ=n
CONFIG_CPU_IDLE=n
|
Reduce task scheduling-clock overhead and disable CPU governor Linux features |
ARCH_SUSPEND_POSSIBLE=n
CONFIG_SUSPEND=n
CONFIG_PM=n
|
Disable Linux pm runtime features |
CONFIG_VIRT_CPU_ACCOUNTING=y
CONFIG_VIRT_CPU_ACCOUNTING_GEN=y
|
Enable more accurate task and CPU time accounting |
CONFIG_CPU_ISOLATION=y
CONFIG_RCU_NOCB_CPU=y
CONFIG_PREEMPT_RCU=y
CONFIG_HAVE_PREEMPT_LAZY=y
CONFIG_PREEMPT_LAZY=y
CONFIG_PREEMPT_RT=y
|
Enable more preemptive task scheduling policies and CPU temporal-isolation |
Configuring x86_64 DOVETAIL/XENOMAI co-kernels is a bit different. There is no default configuration file for each of the IPC models available, and the only kernel configuration file you may want to start from is shipped with ECI distributions.
kernel config fragment overrides (.cfg) |
Comments |
---|---|
CONFIG_HZ_100=y
CONFIG_NO_HZ=n
CONFIG_NO_HZ_FULL=y
CONFIG_NO_HZ_IDLE=n
CONFIG_ACPI_PROCESSOR=n
CONFIG_CPU_FREQ_GOV_ONDEMAND=n
CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=n
CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
CONFIG_CPU_FREQ=n
CONFIG_CPU_IDLE=n
|
Reduce task scheduling-clock overhead and disable CPU governor Linux features |
ARCH_SUSPEND_POSSIBLE=n
CONFIG_SUSPEND=n
CONFIG_PM=n
|
Disable Linux pm runtime features |
CONFIG_VIRT_CPU_ACCOUNTING=y
CONFIG_VIRT_CPU_ACCOUNTING_GEN=y
|
Enable more accurate task and CPU time accounting |
CONFIG_CPU_ISOLATION=y
CONFIG_RCU_NOCB_CPU=y
|
Enable CPU temporal-isolation |
CONFIG_XENOMAI=y
CONFIG_HAVE_DOVETAIL=y
CONFIG_DOVETAIL=y
CONFIG_XENO_ARCH_FPU=y
CONFIG_XENO_ARCH_SYS3264=y
CONFIG_XENO_OPT_SCHED_CLASSES=y
CONFIG_XENO_OPT_SCHED_WEAK=y
CONFIG_XENO_OPT_SCHED_TP=y
CONFIG_XENO_OPT_SCHED_TP_NRPART=4
CONFIG_XENO_OPT_SCHED_SPORADIC=y
CONFIG_XENO_OPT_SCHED_SPORADIC_MAXREPL=8
CONFIG_XENO_OPT_SCHED_QUOTA=y
CONFIG_XENO_OPT_SCHED_QUOTA_PERIOD=10000
CONFIG_XENO_OPT_SCHED_QUOTA_NR_GROUPS=32
CONFIG_XENO_OPT_STATS=y
CONFIG_XENO_OPT_SHIRQ=y
CONFIG_XENO_OPT_RR_QUANTUM=1000
CONFIG_XENO_OPT_AUTOTUNE=y
CONFIG_XENO_OPT_SCALABLE_SCHED=y
CONFIG_XENO_OPT_TIMER_RBTREE=y
CONFIG_XENO_OPT_PIPE=y
CONFIG_XENO_OPT_MAP=y
CONFIG_XENO_OPT_VFILE=y
CONFIG_XENO_OPT_PIPE_NRDEV=32
CONFIG_XENO_OPT_REGISTRY_NRSLOTS=512
CONFIG_XENO_OPT_SYS_HEAPSZ=4096
CONFIG_XENO_OPT_PRIVATE_HEAPSZ=256
CONFIG_XENO_OPT_SHARED_HEAPSZ=256
CONFIG_XENO_OPT_NRTIMERS=256
CONFIG_XENO_OPT_DEBUG_TRACE_LOGSZ=16
CONFIG_XENO_OPT_TIMING_SCHEDLAT=0
CONFIG_XENO_OPT_TIMING_KSCHEDLAT=0
CONFIG_XENO_OPT_TIMING_IRQLAT=0
CONFIG_XENO_OPT_DEBUG=y
CONFIG_XENO_OPT_DEBUG_COBALT=y
CONFIG_XENO_OPT_DEBUG_MEMORY=y
CONFIG_XENO_OPT_DEBUG_CONTEXT=y
CONFIG_XENO_OPT_DEBUG_LOCKING=y
CONFIG_XENO_OPT_DEBUG_USER=y
CONFIG_XENO_OPT_DEBUG_MUTEX_RELAXED=y
CONFIG_XENO_OPT_DEBUG_MUTEX_SLEEP=y
CONFIG_XENO_OPT_DEBUG_LEGACY=y
CONFIG_XENO_OPT_DEBUG_TRACE_RELAX=y
CONFIG_XENO_OPT_WATCHDOG=y
CONFIG_XENO_OPT_WATCHDOG_TIMEOUT=4
CONFIG_XENO_OPT_RTDM_COMPAT_DEVNODE=y
CONFIG_XENO_DRIVERS_AUTOTUNE=y
CONFIG_XENO_DRIVERS_16550A=y
CONFIG_XENO_DRIVERS_16550A_PIO=y
CONFIG_XENO_DRIVERS_TIMERBENCH=y
CONFIG_XENO_DRIVERS_SWITCHTEST=y
CONFIG_XENO_DRIVERS_HEAPCHECK=y
CONFIG_XENO_DRIVERS_RTDMTEST=m
CONFIG_XENO_DRIVERS_CAN=y
CONFIG_XENO_DRIVERS_CAN_DEBUG=y
CONFIG_XENO_DRIVERS_CAN_LOOPBACK=y
CONFIG_XENO_DRIVERS_CAN_RXBUF_SIZE=1024
CONFIG_XENO_DRIVERS_CAN_MAX_DEVICES=4
CONFIG_XENO_DRIVERS_CAN_MAX_RECEIVERS=16
CONFIG_XENO_DRIVERS_CAN_BUS_ERR=y
CONFIG_XENO_DRIVERS_CAN_VIRT=y
CONFIG_XENO_DRIVERS_CAN_PEAK_CANFD=y
CONFIG_XENO_DRIVERS_CAN_SJA1000=y
CONFIG_XENO_DRIVERS_NET=m
CONFIG_XENO_DRIVERS_RTNET_CHECKED=y
CONFIG_XENO_DRIVERS_NET_RX_FIFO_SIZE=32
CONFIG_XENO_DRIVERS_NET_ETH_P_ALL=y
CONFIG_XENO_DRIVERS_NET_RTWLAN=y
CONFIG_XENO_DRIVERS_NET_RTIPV4=m
CONFIG_XENO_DRIVERS_NET_RTIPV4_ICMP=y
CONFIG_XENO_DRIVERS_NET_RTIPV4_NETROUTING=y
CONFIG_XENO_DRIVERS_NET_RTIPV4_NET_ROUTES=16
CONFIG_XENO_DRIVERS_NET_RTIPV4_ROUTER=y
CONFIG_XENO_DRIVERS_NET_RTIPV4_DEBUG=y
CONFIG_XENO_DRIVERS_NET_RTIPV4_UDP=m
CONFIG_XENO_DRIVERS_NET_RTIPV4_TCP=m
CONFIG_XENO_DRIVERS_NET_RTPACKET=m
CONFIG_XENO_DRIVERS_NET_RTMAC=m
CONFIG_XENO_DRIVERS_NET_TDMA=m
CONFIG_XENO_DRIVERS_NET_TDMA_MASTER=y
CONFIG_XENO_DRIVERS_NET_RTCFG=m
CONFIG_XENO_DRIVERS_NET_RTCFG_DEBUG=y
CONFIG_XENO_DRIVERS_NET_DRV_PCNET32=m
CONFIG_XENO_DRIVERS_NET_DRV_TULIP=m
CONFIG_XENO_DRIVERS_NET_DRV_EEPRO100=m
CONFIG_XENO_DRIVERS_NET_DRV_EEPRO100_DBG=y
CONFIG_XENO_DRIVERS_NET_DRV_E1000=m
CONFIG_XENO_DRIVERS_NET_DRV_E1000E=m
CONFIG_XENO_DRIVERS_NET_DRV_NATSEMI=m
CONFIG_XENO_DRIVERS_NET_DRV_8139=m
CONFIG_XENO_DRIVERS_NET_DRV_VIA_RHINE=m
CONFIG_XENO_DRIVERS_NET_DRV_IGB=m
CONFIG_XENO_DRIVERS_NET_DRV_R8169=m
CONFIG_XENO_DRIVERS_NET_DRV_LOOPBACK=m
CONFIG_XENO_DRIVERS_NET_DRV_SMC91111=m
CONFIG_XENO_DRIVERS_NET_EXP_DRIVERS=y
CONFIG_XENO_DRIVERS_NET_DRV_3C59X=m
CONFIG_XENO_DRIVERS_NET_DRV_E1000_NEW=m
CONFIG_XENO_DRIVERS_NET_DRV_RT2500=m
CONFIG_XENO_DRIVERS_NET_ADDON_RTCAP=m
CONFIG_XENO_DRIVERS_NET_ADDON_PROXY=m
CONFIG_XENO_DRIVERS_NET_ADDON_PROXY_ARP=y
CONFIG_XENO_DRIVERS_ANALOGY=y
CONFIG_XENO_DRIVERS_ANALOGY_DEBUG=y
CONFIG_XENO_DRIVERS_ANALOGY_DEBUG_LEVEL=0
CONFIG_XENO_DRIVERS_ANALOGY_FAKE=y
CONFIG_XENO_DRIVERS_ANALOGY_8255=y
CONFIG_XENO_DRIVERS_ANALOGY_PARPORT=y
CONFIG_XENO_DRIVERS_ANALOGY_NI_MITE=y
CONFIG_XENO_DRIVERS_ANALOGY_NI_TIO=y
CONFIG_XENO_DRIVERS_ANALOGY_NI_MIO=y
CONFIG_XENO_DRIVERS_ANALOGY_NI_PCIMIO=y
CONFIG_XENO_DRIVERS_ANALOGY_S526=y
CONFIG_XENO_DRIVERS_RTIPC=y
CONFIG_XENO_DRIVERS_RTIPC_XDDP=y
CONFIG_XENO_DRIVERS_RTIPC_IDDP=y
CONFIG_XENO_OPT_IDDP_NRPORT=32
CONFIG_XENO_DRIVERS_RTIPC_BUFP=y
CONFIG_XENO_OPT_BUFP_NRPORT=32
CONFIG_XENO_DRIVERS_UDD=y
CONFIG_XENO_DRIVERS_GPIO=y
CONFIG_XENO_DRIVERS_GPIO_DEBUG=y
CONFIG_XENO_DRIVERS_GPIOPWM=y
CONFIG_XENO_VERSION_MAJOR=3
CONFIG_XENO_VERSION_MINOR=1
CONFIG_XENO_REVISION_LEVEL=0
CONFIG_XENO_VERSION_STRING="3.1"
|
Enable more Xenomai task scheduling policies and CPU temporal-isolation |
ECI Kernel Boot Optimizations¶
This list provides the additional boot parameters used to optimize the system for real-time performance.
When Configuring x86_64 PPREEMPT_RT kernels, there is no default configuration file for each of the IPC models available, and the only kernel configuration file you may want to start from is shipped with ECI distributions. Below non exhaustive list of the most critical for a control Linux-RT OS runtime:
kernel command-line append |
Comments |
---|---|
hpet=disable \
clocksource=tsc \
tsc=reliable \
|
|
intel_pstate=disable \
intel_idle.max_cstate=0 \
intel.max_cstate=0 \
processor.max_cstate=0 \
processor_idle.max_cstate=0 \
|
Use |
rcupdate.rcu_cpu_stall_suppress=1 \
mce=off \
nmi_watchdog=0 \
nosoftlockup \
|
Suppress RCU CPU stall warning messages,
disable machine check exceptions,
disable NMI lockup detector, and
disable logging of back-traces when a
process executes on a CPU for longer
than the |
noht \
|
Disable Hyper-Threading |
numa_balancing=disable \
|
Prevent cache from being moved based on task processor affinity. |
hugepages=1024 \
|
Allocate RAM chunks 1GB at a time to reduce frequency of memory allocation. |
rcu_nocb_poll=1024 \
|
Relieve each CPU from the responsibility of awakening their RCU offload threads. |
audit=0 \
irqaffinity=0 \
isolcpus=1,3 \
rcu_nocbs=1,3 \
nohz_full=1,3 \
|
Assign task CPU affinity to CPU 0 and prevent tasks from being assigned to CPUs 1 & 3 by default. This effectively makes CPUs 1 & 3 favorable for real-time tasks, since they should experience minimal contention. |
i915.enable_rc6=0 \
i915.enable_dc=0 \
i915.disable_power_well=0 \
|
Prevent integrated graphics from changing power states. |
Configuring x86_64 DOVETAIL/XENOMAI co-kernels is a bit different. There is no default configuration file for each of the IPC models available, and the only kernel configuration file you may want to start from is shipped with ECI distributions. In addition to the x86_64 PPREEMPT_RT kernel boot optimizations, x86_64 DOVETAIL/XENOMAI appends the following:
kernel command-line append |
Comments |
---|---|
xenomai.allowed_group=1234 \
xenomai.sysheap_size=256 \
xenomai.state=enabled \
xenomai.smi=detect \
xenomai.smi_mask=1 \
|
|
nosmap \
nosmt \
nohalt \
cpufreq.off=1 \
idle=poll \
|
Additional Boot Parameters for Intel® TCC Tools¶
The following list of boot parameters are used to enable TCC capability.
Kernel Command line append |
Comments |
rdt=!l2cat,l3cat \
art=virtallow \
|
Disable cat, required for TCC |
Additional Boot Parameters for ACRN Real-Time VM¶
The following list of boot parameters are used for ACRN Real-Time VM. These parameters are mostly applicable to the Linux-based RTOS, such as PREEMPT_RT Linux and Xenomai.
Kernel Command line append |
Comments |
nohpet \
no_timer_check \
ignore_loglevel \
log_buf_len=16M \
consoleblank=0 \
console=hvc0 \
i915.nuclear_pageflip=1 \
i915.avail_planes_per_pipe=0x070F00 \
x2apic_phys \
mce=ignore_ce \
idle=poll \
|
|
isolcpus=nohz,domain,<list> \
rcu_nocbs=<list> \
nohz_full=<list> \
|
Modify parameters. List RT VM cores allocated to real-time applications |
Recommended ECI BIOS Optimizations¶
Note
Use an approved Intel BIOS checker tool before configuring for production use cases.
Setting Name |
Option |
Setting Menu |
---|---|---|
Hyper-Threading |
Disabled |
Intel Advanced Menu ⟶ CPU Configuration |
Intel (VMX) Virtualization |
Disabled |
Intel Advanced Menu ⟶ CPU Configuration |
Intel(R) SpeedStep |
Disabled |
Intel Advanced Menu ⟶ Power & Performance ⟶ CPU - Power Management Control |
Turbo Mode |
Disabled |
Intel Advanced Menu ⟶ Power & Performance ⟶ CPU - Power Management Control |
C States |
Disabled |
Intel Advanced Menu ⟶ Power & Performance ⟶ CPU - Power Management Control |
RC6 (Render Standby) |
Disabled |
Intel Advanced Menu ⟶ Power & Performance ⟶ GT - Power Management Control |
Maximum GT freq |
Lowest (usually 100MHz) |
Intel Advanced Menu ⟶ Power & Performance ⟶ GT - Power Management Control |
SA GV |
Fixed High |
Intel Advanced Menu ⟶ Memory Configuration |
VT-d |
Disabled |
Intel Advanced Menu ⟶ System Agent (SA) Configuration |
PCI Express Clock Gating |
Disabled |
Intel Advanced Menu ⟶ System Agent (SA) Configuration ⟶ PCI Express Configuration |
Gfx Low Power Mode |
Disabled |
Intel Advanced Menu ⟶ System Agent (SA) Configuration ⟶ Graphics Configuration |
ACPI S3 Support |
Disabled |
Intel Advanced Menu ⟶ ACPI Settings |
Native ASPM |
Disabled |
Intel Advanced Menu ⟶ ACPI Settings |
Legacy IO Low Latency |
Enabled |
Intel Advanced Menu ⟶ PCH-IO Configuration |
PCH Cross Throttling |
Disabled |
Intel Advanced Menu ⟶ PCH-IO Configuration |
Delay Enable DMI ASPM |
Disabled |
Intel Advanced Menu ⟶ PCH-IO Configuration ⟶ PCI Express Configuration |
DMI Link ASPM |
Disabled |
Intel Advanced Menu ⟶ PCH-IO Configuration ⟶ PCI Express Configuration |
Aggressive LPM Support |
Disabled |
Intel Advanced Menu ⟶ PCH-IO Configuration ⟶ SATA And RST Configuration |
USB Periodic SMI |
Disabled |
Intel Advanced Menu ⟶ LEGACY USB Configuration |
Required BIOS configuration for Intel® TCC Tools¶
The following list provides additional BIOS settings for Intel® Time Coordinated Computing Tools (Intel® TCC Tools).
Note
Use an approved Intel BIOS checker tool before configuring for production use cases.
Intel Advanced Menu |
Intel(R) Time Coordinated Computing |
---|---|
Intel(R) TCC Mode |
Enabled |
Intel(R) TCC Authentication |
Disabled |