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 ''< | ||