- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
你好,我用ECI安装Debian 11,然后用xenomai安装EtherCAT成功。但是我不能使用 ethercat mast,它告诉我“无法获得不适合设备的 ioctl 的主信息”。teminal.txt 是我的电脑系统和配置,problem.txt 是问题所在。ethercat.txt 是 /etc/sysconfig/ethercat 配置。
谢谢你!
我也把它们如下:
$ uname -a
Linux cnc-ctb 5.10.140-intel-ese-standard-lts-dovetail+ #1 SMP PREEMPT IRQPIPE Thu Dec 8 10:13:52 UTC 2022 x86_64 GNU/Linux
$ lspci
00:00.0 主机桥:英特尔公司设备 4522(版本 01)
00:02.0 VGA 兼容控制器:英特尔公司设备 4555(版本 01)
00:14.0 USB 控制器:英特尔公司设备 4b7d(版本 11)
00:14.2 RAM 内存:英特尔公司设备 4b7f(修订版 11)
00:16.0 通信控制器:英特尔公司设备 4b70(修订版 11)00
:17.0 SATA 控制器:英特尔公司设备 4b63(修订版 11)
00:1c.0 PCI 桥:英特尔公司设备 4b38(版本 11)
00:1c.1 PCI 桥:英特尔公司设备 4b39 (版本 11)
00:1f.0 ISA 桥:英特尔公司设备 4b00 (版本 11)
00:1f.3 音频设备:英特尔公司设备 4b58 (版本 11) )
00:1f.4 SMBus:英特尔公司设备 4b23(修订版 11)
00:1f.5 串行总线控制器 [0c80]:英特尔公司设备 4b24(修订版 11)
01:00.0 以太网控制器:英特尔公司以太网控制器 I225-V(修订版 03)
02:00.0 以太网控制器:英特尔公司 I211 千兆网络连接(修订版 03)
$ sudo ifconfig
enp1s0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
ether 34:df:20:00:0d:b6 txqueuelen 1000 (以太网)
RX 数据包 0 字节 0 (0.0 B)
RX 错误 0 丢弃 0 溢出 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device memory 0x80100000-801fffff
enp2s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.137.239 netmask 255.255.255.0 broadcast 192.168.137.255
ether 34:df:20:00:0d:b7 txqueuelen 1000 (Ether2822)
RX2 字节数据包(275.2 KiB)
RX 错误 0 dropped 0 overruns 0 frame 0
TX packets 203 bytes 29864 (29.1 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device memory 0x80300000-8031ffff
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX 数据包 3713 字节 307751 (300.5 KiB)
RX错误 0 丢弃 0 溢出 0 帧 0
TX 数据包 3713 字节 307751 (300.5 KiB)
TX 错误 0 丢弃 0 溢出 0 载波 0 冲突 0
sudo /etc/init.d/ethercat start
启动 EtherCAT master 1.5.2 完成
$ sudo /etc/init.d/ethercat status
检查 EtherCAT master 1.5.2
Master0 正在运行
$ ethercat master
获取主信息失败:设备的 ioctl 不合适
$ ethercat slaves
获取主信息失败:设备的 ioctl 不合适
#------------------------------------------------ --------------------------
#
# EtherCAT 主站系统配置文件
#
# $Id$
#
# vim: spelllang=en spell tw= 78
##
-------------------------------------------- ------------------------------
#
# 主要以太网设备。
#
# MASTER<X>_DEVICE 变量指定索引为
“X”的主机的以太网设备。
# # 指定要使用的
以太网设备的 MAC 地址(带冒号的十六进制) 。
示例:“00:00:08:44:ab:66”
#
# 广播地址“ff:ff:ff:ff:ff:ff”具有特殊含义:它告诉
# master 接受由提供的第一个设备任何以太网驱动程序。
#
# MASTER<X>_DEVICE 变量也确定,将创建多少个主控器
:非空变量 MASTER0_DEVICE 将创建一个主控器,添加一个
# 非空变量 MASTER1_DEVICE 将创建第二个主控器,依此类推。
#
MASTER0_DEVICE="34:df:20:00:0d:b6"
#MASTER1_DEVICE=""
#
# 备份以太网设备
#
# MASTER<X>_BACKUP 变量指定用于冗余的设备。它们
# 的行为几乎与 MASTER<X>_DEVICE 变量相同,只是它
# 不解释 ff:ff:ff:ff:ff:ff 地址。
#
#MASTER0_BACKUP=""
#
# 用于 EtherCAT 操作的以太网驱动程序模块。
#
# 指定一个非空的以太网驱动程序列表,用于
# EtherCAT 操作。
#
# 除了通用的以太网驱动模块,初始化脚本将尝试
卸载列表中的常用以太网驱动模块,并用
支持 EtherCAT 的模块替换它们。如果未找到某个(支持 EtherCAT 的)驱动程序
,则会出现警告。
#
# 可能的值:8139too, e100, e1000, e1000e, r8169, generic, ccat, igb, igc,
#stmmac, dwmac_intel。
# 用空格分隔多个驱动程序。
#
# 注意:e100、e1000、e1000e、r8169、ccat 和 igb 驱动程序不是由
# 默认。使用 --enable-<driver> 配置开关启用它们。
# # 注意:使用通用驱动程序时,必须激活
相应的以太网设备(使用 OS 方法,例如“ip link set ethX up”), #在主机启动之前,否则所有帧都会超时。# DEVICE_MODULES="igc" REBIND_NICS="0000:01:00.0"
#
# 用于加载内核模块的标志。
#
# 这通常可以留空。
如果模块加载有问题,请调整此变量。
#
#MODPROBE_FLAGS="-b"
#------------------------------------------------ ------------------------------
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Du_le,
Could you double check the device details in /etc/sysconfig/ethercat?
I used the following commands to ensure I was using the correct MAC address, PCIE and driver. You will need to make sure that ethercat is stopped.
$ sudo /etc/init.d/ethercat stop
$ sudo ifconfig
eno1: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
ether a4:ae:12:77:85:b6 txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device memory 0x8e100000-8e17ffff
$ cat /sys/class/net/eno1/device/uevent
DRIVER=igb
PCI_CLASS=20000
PCI_ID=8086:1533
PCI_SUBSYS_ID=FFFF:0000
PCI_SLOT_NAME=0000:6d:00.0
MODALIAS=pci:v00008086d00001533sv0000FFFFsd00000000bc02sc00i00
#/etc/sysconfig/ethercat
MASTER0_DEVICE="a4:ae:12:77:85:b6"
DEVICE_MODULES="igb"
REBIND_NICS="0000:6d:00.0" #eno1
Regards,
Jesus
Link Copied
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Du_le,
Could you double check the device details in /etc/sysconfig/ethercat?
I used the following commands to ensure I was using the correct MAC address, PCIE and driver. You will need to make sure that ethercat is stopped.
$ sudo /etc/init.d/ethercat stop
$ sudo ifconfig
eno1: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
ether a4:ae:12:77:85:b6 txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device memory 0x8e100000-8e17ffff
$ cat /sys/class/net/eno1/device/uevent
DRIVER=igb
PCI_CLASS=20000
PCI_ID=8086:1533
PCI_SUBSYS_ID=FFFF:0000
PCI_SLOT_NAME=0000:6d:00.0
MODALIAS=pci:v00008086d00001533sv0000FFFFsd00000000bc02sc00i00
#/etc/sysconfig/ethercat
MASTER0_DEVICE="a4:ae:12:77:85:b6"
DEVICE_MODULES="igb"
REBIND_NICS="0000:6d:00.0" #eno1
Regards,
Jesus
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thank you for your help, Jesus
I have solved this problem.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Glad I could help! If you need any additional information, please submit a new question as this thread will no longer be monitored.
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page