Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
embedded_systems:ethercat:install_acontis_stack [2019-01-08 16:57] – mgehrig2 | embedded_systems:ethercat:install_acontis_stack [2024-01-25 11:48] (aktuell) – Urs Graf | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | ====== Install the Acontis EtherCAT Stack ====== | + | ====== Install the Acontis EtherCAT Stack (ecmaster) |
+ | ===== Overview ===== | ||
+ | First, read [[embedded_systems: | ||
+ | |||
+ | The Acontis Stack (Class B) and the DCM Add On (Class A) can be placed anywhere. | ||
+ | In this documentation the placeholders ''< | ||
+ | * ''< | ||
+ | * ''< | ||
+ | |||
+ | ===== LinkLayer Module ===== | ||
+ | - The EC LinkLayer module (kernel module) has to be compiled against the installed linux kernel. If the kernel changes, the module has to be rebuilt and reloaded. | ||
+ | - The loaded standard Ethernet driver (the driver is a Linux kernel module) has to be unloaded after boot. | ||
+ | - The EC LinkLayer has to be loaded after boot. | ||
- | ===== Build and Install the Link Layer Module ===== | ||
==== Build Module==== | ==== Build Module==== | ||
* {{: | * {{: | ||
Zeile 8: | Zeile 19: | ||
=== Compile native === | === Compile native === | ||
< | < | ||
- | cd <installpath>/ | + | cd <classB_path>/ |
make modules | make modules | ||
+ | sudo make modules_install | ||
</ | </ | ||
+ | |||
+ | The module will be installed to ''/ | ||
=== Cross-Compile === | === Cross-Compile === | ||
< | < | ||
- | cd <installpath>/ | + | cd <classB_path>/ |
export ARCH=< | export ARCH=< | ||
export CROSS_COMPILE=< | export CROSS_COMPILE=< | ||
Zeile 20: | Zeile 34: | ||
make modules KERNELDIR=< | make modules KERNELDIR=< | ||
</ | </ | ||
- | ==== Load Link Layer Module ==== | ||
- | < | ||
- | You may want to add this line to your '' | + | === Possible problems === |
+ | The module | ||
+ | < | ||
+ | error: unknown type name ' | ||
+ | </ | ||
+ | |||
+ | 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 devices: | ||
+ | < | ||
+ | * Search for your Ethernet controller. For example: | ||
+ | * The number on the left is the Instance-ID. In this example '' | ||
+ | * List all PCI devices in verbose mode: | ||
+ | < | ||
+ | * Find your controller again with the Instance-ID | ||
+ | * If one line says something like '' | ||
+ | |||
+ | === Unbind standard driver === | ||
+ | < | ||
+ | echo " | ||
+ | |||
+ | === Load LinkLayer module === | ||
+ | < | ||
+ | |||
+ | |||
+ | ==== 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 | ||
+ | |||
+ | < | ||
+ | echo "< | ||
+ | modprobe atemsys | ||
+ | </ | ||
+ | |||
+ | ===== Libraries ===== | ||
+ | Copy the following library to your working folder (where you want to run your application). | ||
+ | * libemll8254x.so (in ''< | ||