[Etherlab-users] [Unofficial patchset] Unable to use realtime Master#1 in Xenomai 3

Zanne Philippe zanne.philippe at unistra.fr
Thu Oct 28 15:58:12 CEST 2021


Dear all,

I have the same problem. 

My system specs 
Linux Distribution  : ubuntu 20.04, 
Kernel version 4.19, 
Xenomai 3.1, 
Master version 1.5.2 + Gavin Lambert patch set
Ethernet Driver : ec_e1000e

The problem is reproducible using the xenomai example of etherlab master : When I run the program on master#0 everything works as expected, if I run the program on master#1 it is not able to access the device,  the function ecrt_request_master(1) returns the error « Failed to open /dev/rtdm/EtherCAT1: No such device or address ».
After starting Ethercat service the output of the dmesg command is as follows:

[  460.502346] EtherCAT: Master driver 1.5.2 365eea9297ef+
[  460.502441] EtherCAT 0: Registered RTDM device EtherCAT0.
[  460.502491] EtherCAT 1: Registered RTDM device EtherCAT1.
[  460.502491] EtherCAT: 2 masters waiting for devices.
[  460.511205] e1000e 0000:07:00.0 enp7s0: removed PHC
[  460.577656] e1000e: enp7s0 NIC Link is Down
[  460.595500] e1000e 0000:00:19.0 enp0s25: removed PHC
[  460.682249] e1000e: enp0s25 NIC Link is Down
[  460.735962] ec_e1000e: EtherCAT-capable Intel(R) PRO/1000 Network Driver - 3.2.6-k-EtherCAT
[  460.735963] ec_e1000e: Copyright(c) 1999 - 2015 Intel Corporation.
[  460.736267] ec_e1000e 0000:00:19.0: Interrupt Throttling Rate (ints/sec) set to dynamic conservative mode
[  460.816493] ec_e1000e 0000:00:19.0 0000:00:19.0 (uninitialized): registered PHC clock
[  460.892157] EtherCAT: Accepting 90:1B:0E:A6:10:79 as main device for master 0.
[  460.989318] EtherCAT 0: Starting EtherCAT-IDLE thread.
[  460.989456] ec_e1000e 0000:00:19.0 ecm0 (uninitialized): (PCI Express:2.5GT/s:Width x1) 90:1b:0e:a6:10:79
[  460.989457] ec_e1000e 0000:00:19.0 ecm0 (uninitialized): Intel(R) PRO/1000 Network Connection
[  460.989498] ec_e1000e 0000:00:19.0 ecm0 (uninitialized): MAC: 11, PHY: 12, PBA No: FFFFFF-0FF
[  460.989723] ec_e1000e 0000:07:00.0: Interrupt Throttling Rate (ints/sec) set to dynamic conservative mode
[  461.032767] ec_e1000e 0000:07:00.0 0000:07:00.0 (uninitialized): registered PHC clock
[  461.080570] EtherCAT: Accepting 68:05:CA:3C:26:A8 as main device for master 1.
[  461.145721] EtherCAT 1: Starting EtherCAT-IDLE thread.
[  461.145778] ec_e1000e 0000:07:00.0 ecm1 (uninitialized): (PCI Express:2.5GT/s:Width x1) 68:05:ca:3c:26:a8
[  461.145779] ec_e1000e 0000:07:00.0 ecm1 (uninitialized): Intel(R) PRO/1000 Network Connection
[  461.145795] ec_e1000e 0000:07:00.0 ecm1 (uninitialized): MAC: 3, PHY: 8, PBA No: E46981-008
[  463.147267] ec_e1000e: ecm1 NIC Link is Up 100 Mbps Full Duplex, Flow Control: None
[  463.147384] ec_e1000e 0000:07:00.0 ecm1 (uninitialized): 10/100 speed: disabling TSO
[  463.147388] EtherCAT 1: Link state of ecm1 changed to UP.
[  463.148591] EtherCAT 1: 3 slave(s) responding on main device.
[  463.148592] EtherCAT 1: Slave states on main device: PREOP.
[  463.148815] EtherCAT 1: Scanning bus.
[  463.359813] EtherCAT 1: Bus scanning completed in 211 ms.
[  463.359815] EtherCAT 1: Using slave main-0 as DC reference clock.
[  463.364853] EtherCAT 1: Slave states on main device: INIT, PREOP.
[  463.368902] EtherCAT 1: Slave states on main device: INIT.
[  463.372933] EtherCAT 1: Slave states on main device: PREOP.

and the output of the command "ethercat -m 1 slaves » is :
sudo ethercat -m 1 slaves
0  0:0  PREOP  +  EK1100 EtherCAT-Koppler (2A E-Bus)
1  0:1  PREOP  +  EL2008 8K. Dig. Ausgang 24V, 0.5A
2  0:2  PREOP  +  EL3102 2K. Ana. Eingang +/-10V, Diff.

SDO request on master 1 seems to work, for example the command « ethercat -m 1 -p 2 upload -t int16 0x3102 0X2 » returns consistent values. 
I tried changing the order of the masters, changing the ethernet board (ec_igb), the problem is still the same.
Do you have any test ideas to determine where this error comes from?
Thank you
Philippe

  
> Le 26 août 2021 à 07:49, HoThanhtam <thanhtam.ho at neuromeka.com> a écrit :
> 
> Hello 
> I am using unofficial patchset to be able to use the EtherCAT master code in Xenomai 3. I enabled 2 masters on 2 NIC ports. I built an application using libethercat_rtdm, this application work fine if I conrtol slave via Master#0. However when I switch to Master#1 ( ecrt_request_master(1) ) then I got the error "Failed to open /dev/rtdm/EtherCAT1: No such device or address" althought both /dev/rtdm/EtherCAT0 and /dev/rtdm/EtherCAT1 exist. 
> By the way, this application worked well on Xenomai 2 system, on both Master#0 and Master#1.
> Any advise?
> Thank you.
> 
> -- 
> Etherlab-users mailing list
> Etherlab-users at etherlab.org
> https://lists.etherlab.org/mailman/listinfo/etherlab-users

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.etherlab.org/pipermail/etherlab-users/attachments/20211028/7e75f0be/attachment.htm>


More information about the Etherlab-users mailing list