> 文章列表 > Preempt-RT实时系统下IGH主站安装

Preempt-RT实时系统下IGH主站安装

Preempt-RT实时系统下IGH主站安装

文章目录

  • 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
  • 配置网卡
  1. 通用网卡
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

建议先配通用网卡,通用网卡测试成功后再修改配置即可

  1. 专用网卡
    在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 提供的命令行工具了。

安科网