查看设备是否支持
硬件
shell
$ sudo lshw -class network -short
H/W path Device Class Description
========================================================
/0/100/1c/0 enp1s0 network I211 Gigabit Network Connection
/0/100/1c.1/0 enp2s0 network RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller
/0/100/1c.2/0 enp3s0 network RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller
查看RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller使用的驱动
端口enp2s0连接的EtherCAT设备
shell
$ ethtool -i enp2s0 | grep driver
driver: r8169
系统
实时内核
shell
$ uname -a
Linux demo-O-E-M 5.15.0-1053-realtime #59-Ubuntu SMP PREEMPT_RT Fri Jan 12 20:29:00 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
测试实时性
shell
$ sudo cyclictest -t 5 -p 99
# /dev/cpu_dma_latency set to 0us
policy: fifo: loadavg: 3.68 2.48 1.44 1/802 2688596
T: 0 (2687390) P:99 I:1000 C: 170479 Min: 3 Act: 4 Avg: 4 Max: 73
T: 1 (2687391) P:99 I:1500 C: 113653 Min: 3 Act: 4 Avg: 4 Max: 24
T: 2 (2687392) P:99 I:2000 C: 85239 Min: 3 Act: 4 Avg: 4 Max: 24
T: 3 (2687393) P:99 I:2500 C: 68191 Min: 4 Act: 4 Avg: 4 Max: 40
T: 4 (2687394) P:99 I:3000 C: 56826 Min: 4 Act: 4 Avg: 4 Max: 23
安装IGH主站
下载源码
shell
$ git clone https://gitlab.com/etherlab.org/ethercat.git
$ cd ethercat
$ ./bootstrap
$ ./configure --enable-generic --enable-8139too=no --enable-r8169=yes
$ make
$ make modules
$ sudo make install
$ sudo make modules_install
$ sudo depmod
安装
shell
# modprobe ec_generic ec_master
# lsmod | grep ec_
ec_generic 16384 0
ec_master 348160 1 ec_generic
配置
$ vim /usr/local/etc/ethercat.conf
MASTER0_DEVICE="68:ed:a6:08:b1:77"
测试
shell
# ethercat master
Master0
Phase: Idle
Active: no
Slaves: 1
Ethernet devices:
Main: 68:ed:a6:08:b1:77 (attached)
Link: UP
Tx frames: 33700
Tx bytes: 2099856
Rx frames: 33700
Rx bytes: 2099856
Tx errors: 0
Tx frame rate [1/s]: 186 186 184
Tx rate [KByte/s]: 10.9 11.2 11.2
Rx frame rate [1/s]: 186 186 184
Rx rate [KByte/s]: 10.9 11.2 11.2
Common:
Tx frames: 33700
Tx bytes: 2099856
Rx frames: 33700
Rx bytes: 2099856
Lost frames: 0
Tx frame rate [1/s]: 186 186 184
Tx rate [KByte/s]: 10.9 11.2 11.2
Rx frame rate [1/s]: 186 186 184
Rx rate [KByte/s]: 10.9 11.2 11.2
Loss rate [1/s]: 0 0 0
Frame loss [%]: 0.0 0.0 0.0
Distributed clocks:
Reference clock: Slave 0
DC reference time: 0
Application time: 0
2000-01-01 00:00:00.000000000
# ethercat slave
0 0:0 PREOP + SV660_1Axis_00916
TODO
文中使用ec_generic通用驱动,需换为ec_r8169
-->
编辑ethercat配置文件
shell
# vim /usr/local/etc/sysconfig/ethercat
MASTER0_DEVICE="68:ed:a6:08:b1:77"
DEVICE_MODULES="r8169"
# /usr/local/etc/init.d/ethercat restart
问题: 虽然ethercat master也能够正常工作,但是ifconfig却看不到网卡了