[etherlab-users] Lost slaves after device restart

Stefan Agner stefan.agner at yahoo.com
Tue May 10 13:48:43 CEST 2011


Hi,

I use 1.5 trunk version of the Etherlab EtherCAT master on a Debian Lenny Linux 
5.0. I use the generic network driver (using default a device driven by a 
default e1000e driver) and PREEMPT_RT. 

Normally all works fine: I start Linux, Etherlab EtherCAT Master, and check the 
list of slaves:
# ethercat slaves
0  0:0  OP  +  EK1101 EtherCAT-Koppler (2A E-Bus, ID-Switch)
1  0:1  OP  +  EL6692 EtherCAT Bridge-Klemme (Primär)

I now start my application, which requests the master. The application runs 
fine.

When I shut down the EtherCAT device, slaves disappears as expcted:
# ifconfigeth0 down
# ethercat slaves
# 

Next I activate the device again, but slaves don't show up...
# ifconfigeth0 up
# ethercat slaves
# 

When I stop my application (release the master) the slaves still don't appear. 
Even rescan doesn't help, it looks like user space missed this new state (device 
up)... 


In dmesg everything looks ok:
Disabling:
[16091.763659] EtherCAT WARNING 0: 3 datagrams TIMED OUT!
[16091.783764] EtherCAT 0: Link state changed to DOWN.
[16091.787793] EtherCAT 0: 0 slave(s) responding.

Enabling:
[16105.749575] e1000e 0000:02:00.0: irq 28 for MSI/MSI-X
[16105.805136] e1000e 0000:02:00.0: irq 28 for MSI/MSI-X
[16105.806045] ADDRCONF(NETDEV_UP): ethercat0: link is not ready
[16107.390075] e1000e: ethercat0 NIC Link is Up 100 Mbps Full Duplex, Flow 
Control: None
[16107.390082] 0000:02:00.0: ethercat0: 10/100 speed: disabling TSO
[16107.390521] ADDRCONF(NETDEV_CHANGE): ethercat0: link becomes ready
[16107.390966] EtherCAT 0: Link state changed to UP.
[16107.395015] EtherCAT 0: 2 slave(s) responding.
[16107.395022] EtherCAT 0: Slave states: PREOP.

How can I make sure state and the slaves are tracked correctly in user space?

Thanks for any hints
Stefan




More information about the Etherlab-users mailing list