EtherCAT IGH 的编译选项介绍
翻译自 《EtherCAT IGH 1.52.pdf》中的 <9.2 Building the Software> 里面的表 < Table 9.1: Configuration options> 。
关于表格中 † 的解释
- † 如果未指定此选项,则从Linux内核源中提取要使用的内核版本。
序号 | 选项 | 描述 | 默认选项 |
---|---|---|---|
1 | –prefix | 设置安装文件的存放路径前缀 | /opt/etherlab |
2 | –with-linux-dir | Linux 内核资源(编译内核的源码目录)。一方面考虑到内核空间相比于用户空间函数的延迟时间短且内核空间可直接操控硬件;另一方面,由于主站大多是周期工作,而内核定时器执行周期工作较为精准[1]。 | Use runing kernel |
3 | –with-module-dir | 内核模块树中的子目录,ethercat 内核模块会被安装在这个文件夹下面 | ethercat |
4 | –enable-generic | 在编译时启用要编译通用的 EtherCAT 网卡驱动程序,兼容更多的通过网卡 | yes |
5 | –enable-8139too | 在编译时启用要编译 8139too 驱动程序,用于使用 8139too 本地网卡进行通信。使能该驱动后EtherCAT将不再调用linux kernel内置的网络驱动,无中断直接操作硬件底层,可以提高通信的实时性 | yes |
6 | –with-8139too-kernel | 指定使用那一个 8139too 的内核版本 | † |
7 | –enable-e100 | 在编译时启用要编译 e100 驱动程序,用于使用 e100 本地网卡进行通信。使能该驱动后EtherCAT将不再调用linux kernel内置的网络驱动,无中断直接操作硬件底层,可以提高通信的实时性 | no |
8 | –with-e100-kernel | 指定使用那一个 e100 的内核版本 | † |
9 | –enable-e1000 | 在编译时启用要编译 e1000 驱动程序,用于使用 e1000 本地网卡进行通信。使能该驱动后EtherCAT将不再调用linux kernel内置的网络驱动,无中断直接操作硬件底层,可以提高通信的实时性 | no |
10 | –with-e1000-kernel | 指定使用那一个 e1000 的内核版本 | † |
11 | –enable-e1000e | 在编译时启用要编译 e1000e 驱动程序,用于使用 e1000e 本地网卡进行通信。使能该驱动后EtherCAT将不再调用linux kernel内置的网络驱动,无中断直接操作硬件底层,可以提高通信的实时性 | no |
12 | –with-e1000e-kernel | 指定使用那一个 e1000e 的内核版本 | † |
13 | –enable-r8169 | 在编译时启用要编译 r8169 驱动程序,用于使用 r8169 本地网卡进行通信。使能该驱动后EtherCAT将不再调用linux kernel内置的网络驱动,无中断直接操作硬件底层,可以提高通信的实时性 | no |
14 | –with-r8169-kernel | 指定使用那一个 r8169 的内核版本 | † |
15 | –enable-ccat | 在编译时启用要编译 ccat 驱动程序(和内核版本无关) | no |
16 | –enable-igb | 在编译时启用要编译 igb 驱动程序 | no |
17 | –with-igb-kernel | 指定使用那一个 igb 的内核版本 | † |
18 | –enable-kernel | 编译主内核模块 | yes |
19 | –enable-rtdm | 创建 RTDM 接口(需要 RTAI 或者 Xenomai 目录),也就是说需要安装实时内核才可以使用这种选项 | no |
20 | –with-rtai-dir | RTAI 路径(用以 RTAI 例子和 RTAM 接口) | |
21 | –with-xenomai-dir | Xenomai 路径(用以 Xenomai 例子和 RTAM 接口) | |
22 | –with-devices | 冗余操作的以太网设备数量( >1 表示开启冗余) | 1 |
23 | –enable-debug-if | 为每一个主机开启调试接口 | no |
24 | –enable-debug-ring | 创建调试环以记录数据帧 | no |
25 | –enable-eoe | 启用 eoe 的支持 | yes |
26 | –enable-cycles | 使用 CPU 时间戳计数器。在 Intel 架构上启用此功能可以获得更精确的时序计算 | no |
27 | –enable-hrtimer | 使用高分辩率计时器使主状态机在发送帧之间休眠 | no |
28 | –enable-regalias | 从寄存器中读取别名地址 | no |
29 | –enable-tool | 构建命令行工具”EtherCAT“ | yes |
30 | –enable-userlib | 建立用户空间库 | yes |
31 | –enable-tty | 编译 tty 驱动 | no |
32 | –enable-wildcards | 启用 0xffffffff 作为供应商ID和产品代码的通配符 | no |
33 | –enable-sil-assign | 在从站配置期间启用分配 SII 访问 PDI 层 | no |
34 | –enable-rt-syslog | 在实时上下文中启用 syslog 语句 | yes |
内核文件的一点小注释
- linux-headers-2.6.32-24: Header files related to Linux kernel version 2.6.32
- linux-headers-2.6.32-24-generic: Linux kernel headers for version 2.6.32 on x86/x86_64
- linux-headers-2.6.32-24: 与Linux内核版本2.6.32相关的头文件
- linux-headers-2.6.32-24-generic: x86/x86_64上2.6.32版本的Linux内核头文件
一些例子
# 不安装实时补丁的配置
./configure --with-linux-dir=/usr/src/linux-headers-5.15.0-43-generic
# 安装 RTAI 内核的配置
./configure --with-linux-dir=/usr/src/linux-headers-3.4.9-rtai-686-pae
# 安装 RT 内核的配置
./configure --with-linux-dir=/usr/src/linux-headers-4.19.124-rt53
# 安装 Xenomai 内核的配置
./configure --with-linux-dir=/usr/src/linux-headers-3.14.44-xenomai-2.6.5
感谢下面大佬的文章。