Dies ist eine alte Version des Dokuments!


Install the Acontis EtherCAT Stack

Overview

Read first this short article to get an overview over the Acontis EtherCAT stack.

The Acontis Stack (Class B) and the DCM Add On (Class A) can be placed anywhere. In this manual the placeholders <classB_path> and <classA_path> are used.

  • <classB_path> Path to the Class B EtherCAT Stack (i.e. /home/username/acontisStack/EC-Master-V2.9-Linux_x64-Eval)
  • <classA_path> Path to the Class A AddOn (i.e. /home/username/acontisStack/EC-Master-ClassA-AddOn-V2.9)

LinkLayer Module

  1. EC LinkLayer Module The EC LinkLayer Module has to be compiled against the installed linux kernel. If the kernel changes, the module has to be rebuilt and reloaded.
  2. The loaded standard Ethernet driver (the driver is a Linux kernel module) has to be unloaded after boot.
  3. The EC LinkLayer has to be loaded after boot.

Build Module

Compile native

cd <classB_path>/Sources/LinkOsLayer/Linux/atemsys
make modules

Cross-Compile

cd <classB_path>/Sources/LinkOsLayer/Linux/atemsys
export ARCH=<…>
export CROSS_COMPILE=<…>
cd Sources/atemsys
make modules KERNELDIR=<path to target kernel dir>

Possible problems

The module may refuse to build and displays an error message like this:

error: unknown type name 'wait_queue_t'

This is because the stack version is not compatible with the installed kernel.

The Acontis stack V2.9 is compatible with the linux kernel v4.4 but not mit kernel v4.14.

Unload standard Ethernet driver

Identify Network Card

  • List all PCI deviceces:
lspci
  • Search for your ethernet controller. For example: 00:19.0 Ethernet controller: Intel Corporation Ethernet Connection I218-LM (rev04)
  • The number on the left is the Instance-ID. In this example 00:19.0
  • List all PCI devices in verbose mode:
lspci -v
  • Find your controller again with the Instance-ID
  • If one line says something like Kernel driver in use: e1000e a driver is already bound to the controller. This driver needs to be unbound.

Unbind standard driver

echo "<Instance-ID>" | sudo tee -a /sys/bus/pci/drivers/<driver-name>/unbind
echo "0000:00:19.0" | sudo tee -a /sys/bus/pci/drivers/e1000e/unbind

Load LinkLayer module

sudo insmod <classB_path>/Sources/LinkOsLayer/Linux/atemsys/atemsys.ko

Automate unbind driver and load module

To automate unbinding the standard driver and loading the EC LinkLayer module you can add the following lines to the .bashrc file:

echo "<Instance-ID>" | sudo tee -a /sys/bus/pci/drivers/<driver-name>/unbind
insmod <classB_path>/Sources/LinkOsLayer/Linux/atemsys/atemsys.ko