Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
embedded_systems:ethercat:install_acontis_stack [2019-01-16 16:56] mgehrig2embedded_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 ===== ===== Overview =====
-Read first [[embedded_systems:ethercat:understanding_acontis|this]] short article to get an overview over the Acontis EtherCAT stack.+First, read [[embedded_systems:ethercat:understanding_acontis|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. 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.+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'')   * ''<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'')   * ''<classA_path>'' Path to the Class A AddOn (i.e. ''/home/username/acontisStack/EC-Master-ClassA-AddOn-V2.9'')
  
-===== LinkLayer Module ==== +===== LinkLayer Module ===== 
-  - **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.+  - 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 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.   - The EC LinkLayer has to be loaded after boot.
Zeile 21: Zeile 21:
 cd <classB_path>/Sources/LinkOsLayer/Linux/atemsys cd <classB_path>/Sources/LinkOsLayer/Linux/atemsys
 make modules make modules
 +sudo make modules_install
 </code> </code>
 +
 +The module will be installed to ''/lib/modules/$(uname -r)/extra''
  
 === Cross-Compile === === Cross-Compile ===
Zeile 31: Zeile 34:
 make modules KERNELDIR=<path to target kernel dir> make modules KERNELDIR=<path to target kernel dir>
 </code> </code>
 +
 +=== Possible problems ===
 +The module may refuse to build and displays an error message like this:
 +<code>
 +error: unknown type name 'wait_queue_t'
 +</code>
 +
 +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 ==== ==== Unload standard Ethernet driver ====
 === Identify Network Card === === Identify Network Card ===
-  * List all PCI deviceces:\\+  * List all PCI devices:\\
 <code>lspci</code> <code>lspci</code>
-  * Search for your ethernet controller. For example: ''00:19.0 Ethernet controller: Intel Corporation Ethernet Connection I218-LM (rev04)''+  * 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''   * The number on the left is the Instance-ID. In this example ''00:19.0''
   * List all PCI devices in verbose mode:   * List all PCI devices in verbose mode:
Zeile 48: Zeile 61:
  
 === Load LinkLayer module === === Load LinkLayer module ===
-<code>sudo insmod <classB_path>/Sources/LinkOsLayer/Linux/atemsys/atemsys.ko</code>+<code>sudo modprobe atemsys</code>
  
  
-==== Automate load and unload module ==== +==== Automate unbind driver and load module ==== 
-To  +To automate unbinding the standard driver and loading the EC LinkLayer module you can add the following lines to the .bashrc file:
-You may want to add this line to your ''.bashrc'' file+
  
 +<code>
 +echo "<Instance-ID>" | sudo tee -a /sys/bus/pci/drivers/<driver-name>/unbind
 +modprobe atemsys
 +</code>
  
 +===== Libraries =====
 +Copy the following library to your working folder (where you want to run your application).
 +  * libemll8254x.so (in ''<classB_path>''\Bin\Linux\x64)