[Etherlab-users] [Unofficial patchset] Unable to use realtime Master#1 in Xenomai 3
Zanne Philippe
zanne.philippe at unistra.fr
Fri Oct 29 18:38:36 CEST 2021
Hello,
I think I found the solution, the rtdm interface for xenomai 3 allows to manage only one device, it is necessary to increase the value of « device_count » of the « rtdm_driver » structure in the rtdm_xenomai_v3.c file (line 282).
Philippe
> Le 28 oct. 2021 à 15:58, Zanne Philippe <zanne.philippe at unistra.fr> a écrit :
>
> 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 <mailto: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 <mailto:Etherlab-users at etherlab.org>
>> https://lists.etherlab.org/mailman/listinfo/etherlab-users
>
> --
> 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/20211029/1322a362/attachment.htm>
More information about the Etherlab-users
mailing list