文章目录
- 1. 安装环境
- 2. 确定网卡类型
- 3. 下载IGH安装包
- 4. 配置安装
- 5. 启动测试
- 6. 扫描从站
- 7. 设置环境变量
1. 安装环境
- ubuntu18.04
- 内核版本:4.19.72-rt25
2. 确定网卡类型
- 查看网卡驱动
lspci -v
可以看到我的网卡驱动主要有e1000e和igb两种类型,其中e1000e对应的规格是I219-V,igb对应的规格是I211,我选择igb作为ethercat的专用网卡驱动。
- 查看网卡类型
ifconfg
sudo apt-get install ethtool
ethtool -i eno1
ethtoo -i enp1s0
eno1:板载网卡,驱动为e1000e
enp1s0:PCI-E独立网卡,驱动为igb
3. 下载IGH安装包
在eterlab官网上下载IGH安装包,master主分支:
cd Downloads/
git clone http://gitlab.com/etherlab.org/ethercat.git
下载安装包后,依次进入devices-igb文件夹,查看是否有标有4.19的文件,如果有则证明这个安装包可以支持当前内核版本,即IGH安装包决定实时内核版本。博主一开始安装的实时内核版本为4.16.18-rt12,但是IGH安装包里没有4.16的文件,所以没法匹配。
然后,打开igb_main-4.19-ethercat.c文件,ctrl+F查找是否有“I211”关键字,如果有则证明该安装包可以支持我的网卡设备。
满足上述要求后,依次执行以下指令:
4. 配置安装
- 配置
cd ethercat/
./bootstrap
./configure --enable-e1000e --enable-igb --enable-8139too=no
如果你要使用专用网卡必须要加上--enable-e1000e或者--enable-igb,否则编译时无法生成相应的模块
- 编译
sudo make
sudo make modules
sudo make install
sudo make modules_install
- 配置网卡
- 通用网卡
sudo depmod
sudo ln -fs /usr/local/etc/init.d/ethercat /etc/init.d/ #链接启动脚本
sudo mkdir /etc/sysconfig
sudo ln -fs /usr/local/etc/sysconfig/ethercat /etc/sysconfig/ #链接配置文件
sudo -i
echo KERNEL==\"EtherCAT[0-9]*\", MODE=\"0664\" > /etc/udev/rules.d/99-EtherCAT.rules
最新版本已将安装目录/opt/etherlab改为/usr/local
ifconfig #查询有线网卡的MAC地址
sudo gedit /etc/sysconfig/ethercat
MASTER0_DEVICE=”c4:00:ad:da:2e:9b” #注:此为ifconfig命令显示的网卡地址,替换为自己的
DEVICE_MODULES=”generic” #注:设置网卡为默认generic
建议先配通用网卡,通用网卡测试成功后再修改配置即可
- 专用网卡
在IGH下载包的根目录下执行
sudo cp devices/igb/ec_igb.ko /lib/modules/$(uname -r)/ethercat/devices #拷贝专用网卡模块,这个.ko模块就是你编译生成的
sudo gedit /etc/sysconfig/ethercat
MASTER0_DEVICE=”c4:00:ad:da:2e:9c” #注:此为ifconfig命令显示的专用网卡地址,替换为自己的
DEVICE_MODULES=”igb” #注:设置网卡为igb驱动
sudo depmod
5. 启动测试
ethercat #显示信息
sudo /etc/init.d/ethercat start #启动
ethercat master #显示主站状态
sudo /etc/init.d/ethercat stop #关闭
6. 扫描从站
sudo ethercat slave
7. 设置环境变量
sudo gedit ~/.bashrc
PATH=$PATH:/usr/local/bin
然后执行
source ~/.bashrc
这样就可以在终端使用 EtherCAT 提供的命令行工具了。