IgH EtherCat主站启动失败

IgH EtherCat主站启动失败

Linux内核升级导致的EtherCat内核模块不匹配

报错信息:

bash 复制代码
x@x-HP:~$ ethercat slaves
Failed to obtain number of masters: Failed to open master device /dev/EtherCAT0: No such file or directory
x@x-HP:~$ sudo /etc/init.d/ethercat start
Starting EtherCAT master 1.6.7 modprobe: FATAL: Module ec_master not found in directory /lib/modules/6.8.0-107-generic
 failed
x@x-HP:~$ sudo /etc/init.d/ethercat status
Checking for EtherCAT master 1.6.7 
Master0  dead
x@x-HP:~$ sudo /etc/init.d/ethercat restart
Shutting down EtherCAT master 1.6.7  done
Starting EtherCAT master 1.6.7 modprobe: FATAL: Module ec_master not found in directory /lib/modules/6.8.0-107-generic
 failed

原因:Linux 内核升级(现在是 6.8.0-107),但 EtherCAT 的内核模块 ec_master 没有跟着重新编译,所以加载不了,导致启动失败。

解决方法

1. 重新编译

bash 复制代码
# 进入ethercat的源码目录
cd ~/ethercat
# 清理旧编译
sudo make clean
# 重新编译安装 (启用通用网卡驱动)
sudo ./configure --enable-cycles --enable-8139too=no --prefix=/opt/etherlab --enable-generic=yes --with-linux-dir=/usr/src/linux-headers-$(uname -r)

sudo -s
make 
make modules 
make install
make modules_install
depmod

2. 配置网卡MAC地址和驱动

bash 复制代码
# 查看网口地址
ifconfig -a

选定以字母e开头的MAC地址,编辑

  • /etc/sysconfig/ethercat
  • /opt/etherlab/etc/sysconfig/ethercat

修改:

bash 复制代码
MASTER0_DEVICE="00:0c:29:xx:xx:xx"  # 替换为网卡MAC地址
DEVICE_MODULES="generic"            # 使用通用驱动

3. 重启主站

bash 复制代码
# 重启主站
sudo /etc/init.d/ethercat restar
相关推荐
【ql君】qlexcel1 天前
可跑在STM32上的EtherCAT主机协议栈
stm32·soem·ethercat·igh·协议栈
沐多2 天前
IgH EtherCAT主站详解系列文章索引
ethercat主站·ethercat·xenomai·实时linux·preempt-rt
芯智工坊4 天前
IgH EtherCAT 从入门到精通:第 2 章 环境搭建与编译安装
ethercat
CC城子6 天前
EtherCAT的igh学习与研究(二)
学习·ethercat
CC城子6 天前
EtherCAT的igh学习与研究(一)
学习·ethercat
疆鸿智能研发小助手10 天前
EtherCAT转CANopen网关模块在工业机器人系统中的典型应用案例解析
工业自动化·ethercat·变频器·仪表·canopen·协议转换网关·机械手臂
【ql君】qlexcel15 天前
EtherCAT总线入门到精通教程
soem·工业总线·ethercat·coe
嵌入式科普19 天前
二十四、RZN2L多协议双BANK升级SDK V0.1
瑞萨·ethercat·profinet·rzn2l·foe
廷华电子20 天前
STM32H743+AX58100学习板
stm32·嵌入式硬件·电机控制·ethercat·cia402