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.phili...@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...@neuromeka.com >> <mailto:thanhtam...@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@etherlab.org <mailto:Etherlab-users@etherlab.org> >> https://lists.etherlab.org/mailman/listinfo/etherlab-users > > -- > Etherlab-users mailing list > Etherlab-users@etherlab.org > https://lists.etherlab.org/mailman/listinfo/etherlab-users
-- Etherlab-users mailing list Etherlab-users@etherlab.org https://lists.etherlab.org/mailman/listinfo/etherlab-users