First, read this short article to get an overview over the Acontis EtherCAT stack. The software consists of the precompiled library, necessary kernel module, and demo programs (source code) and has to be downloaded from the Acontis website.
The Acontis Stack (Class B) and the DCM Add On (Class A) can be placed anywhere.
In this documentation 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
)
* EC-Master_ClassB.pdf 2.3.5.1
cd <classB_path>/Sources/LinkOsLayer/Linux/atemsys make modules sudo make modules_install
The module will be installed to /lib/modules/$(uname -r)/extra
cd <classB_path>/Sources/LinkOsLayer/Linux/atemsys export ARCH=<…> export CROSS_COMPILE=<…> cd Sources/atemsys make modules KERNELDIR=<path to target kernel dir>
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.
lspci
00:19.0 Ethernet controller: Intel Corporation Ethernet Connection I218-LM (rev04)
00:19.0
lspci -v
Kernel driver in use: e1000e
a driver is already bound to the controller. This driver needs to be unbound.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
sudo modprobe atemsys
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 modprobe atemsys
Copy the following library to your working folder (where you want to run your application).
<classB_path>
\Bin\Linux\x64)