This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
工具与软件:
当我逐步参考文档构建 IGH 堆栈时、在步骤2.6中出现了问题:
使 destdir=/media/`whoami` root/ install
错误:
Making install in master make[1]: Entering directory '/home/jm/tiIgh/ethercat-master/master' make[2]: Entering directory '/home/jm/tiIgh/ethercat-master/master' make[2]: Nothing to be done for 'install-exec-am'. make[2]: Nothing to be done for 'install-data-am'. make[2]: Leaving directory '/home/jm/tiIgh/ethercat-master/master' make[1]: Leaving directory '/home/jm/tiIgh/ethercat-master/master' Making install in tool make[1]: Entering directory '/home/jm/tiIgh/ethercat-master/tool' CXXLD ethercat /usr/bin/ld: ../master/soe_errors.o: Relocations in generic ELF (EM: 183) /usr/bin/ld: ../master/soe_errors.o: Relocations in generic ELF (EM: 183) /usr/bin/ld: ../master/soe_errors.o: Relocations in generic ELF (EM: 183) /usr/bin/ld: ../master/soe_errors.o: Relocations in generic ELF (EM: 183) /usr/bin/ld: ../master/soe_errors.o: error adding symbols: file in wrong format collect2: error: ld returned 1 exit status make[1]: *** [Makefile:632: ethercat] Error 1 make[1]: Leaving directory '/home/jm/tiIgh/ethercat-master/tool' make: *** [Makefile:537: install-recursive] Error 1
根据提示、soe_errors.o 的文件类型如下:
file ./master/soe_errors.o ./master/soe_errors.o: ELF 64-bit LSB relocatable, ARM aarch64, version 1 (SYSV), with debug_info, not stripped
您是否成功构建了 IGH 通用驱动程序?
我想你正在逐步完成 https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1409114/faq-how-do-i-build-the-native-igh-ethercat-stack-for-ti-microprocessors 上的步骤 ,而你提到的步骤2.6就是这样。 那么、一切到那时为止都能正常工作吗?
请在以下步骤中附上完整的打印输出:
$ cd ethercat $ ./bootstrap $ ./configure \ --sysconfdir=/opt/etherlab --prefix=/opt/etherlab --with-linux-dir=$PWD/../ti-linux-kernel \ --with-module-dir=/etherlab --enable-generic=no --enable-8139too=no --enable-eoe=no \ --host=aarch64-none-linux-gnu --target=aarch64-none-linux-gnu \ --enable-am65cpsw=yes --with-am65cpsw-kernel=6.1 $ make -j`nproc` $ make -j`nproc` modules $ sudo chown -R `whoami` /media/`whoami`/root/ $ make DESTDIR=/media/`whoami`/root/ install $ make INSTALL_MOD_PATH=/media/`whoami`/root/ modules_install $ cd ../
Pekka
您是否成功构建了 IGH 通用驱动程序?
重复这个问题、您是否使用通用驱动程序成功构建和运行了 IGH? 尝试使用本机驱动程序是一个优化步骤、只有在通用驱动程序的性能不足时才应执行该步骤。
的步骤操作
这些指令适用于 Beagleplay 板上的本机构建、而不是交叉编译。 在连接该器件之前、可能需要20个步骤。 根据打印输出、您似乎尝试进行交叉编译。 在附加内容之前的步骤中、例如使用配置为模块的以太网驱动程序构建内核。
在尝试交叉编译本机驱动程序之前、请确保可以使用不特定于 TI 的通用驱动程序(使用 Linux RAW 套接字)交叉编译和运行 IGH。
Pekka
上面的链接似乎已被更改、显示交叉编译的原始链接缺失。
IGH 通用驱动程序已成功构建、但我未能将其安装到 SD 卡中。 错误如上所示。
--------------------------------------------------------
下面是一些问题:
1.是否需要在板上进行交叉编译或直接编译? 如果我想交叉编译以提高编译效率、我应该遵循哪些步骤?
2.如果直接在电路板上编译、由于 TI 仅提供基于 Yocto 的 LinuxRT 操作系统、而不提供 Ubuntu、apt-get 和类似命令不起作用。 我应该如何根据上面的链接进行操作?
3.是否有将 IGH EtherCAT 移植到 AM62P 的教程? 不适用于 AM65或其他电路板的教程。
上面的链接似乎已被更改、显示交叉编译的原始链接缺失。
[报价]是的、已刷新内容以使用最新的 Linux 内核和本机驱动程序补丁。
1. 我是否需要在电路板上直接交叉编译或编译? 如果我希望交叉编译以提高编译效率、我应该遵循哪些步骤?[/QUOT]是的、您可以交叉编译。 我们不提供如何交叉编译 IGH 开源软件的指令。 使用本机驱动程序修补的 IGH 和 Linux 内核交叉编译不是 TI 特有的或特定于 AM62P 的内容。 有很多关于交叉编译的支持文章和指南,例如见 https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1123524/processor-sdk-am62x-help-cross-compiling-on-linux 。
2. 如果直接在电路板上编译、由于 TI 仅提供基于 Yocto 的 LinuxRT 操作系统、而不提供 Ubuntu、apt-get 和类似命令不起作用。 如何根据上述链接进行操作?交叉编译内核和安装模块带来了一系列与 IGH 直接无关的问题。 因此、最简单的路径是不进行交叉编译。 IGH 本机驱动程序绕过 Linux 以太网驱动程序不会被更新、因此几乎每次内核更新都需要进行修补和构建。 带有 apt-get 的 Debian 可从 https://www.ti.com/tool/PROCESSOR-SDK-AM62P 上的 AM62P 获得 。
3. 是否有将 IGH EtherCAT 移植到 AM62P 的教程? 不适用于 AM65或其他电路板的教程。IGH 应始终以使用标准上游以太网驱动程序(在 IGH 世界中也称为通用驱动程序)为起点。 开源项目将记录构建和运行并提供支持、请参阅 https://gitlab.com/etherlab.org/ethercat/-/jobs/artifacts/stable-1.5/raw/pdf/ethercat_doc.pdf?job=pdf 中的第9.2节 和称为通用的驱动程序。 这不依赖于硬件、将在任何 Linux 目标上运行、甚至不需要 PREMEPT_RT。 请参阅 https://docs.etherlab.org/ethercat/1.6/doxygen/devicedrivers.html 中的"通用" 。 如果性能不够、您可以查看本机驱动程序。 如果器件为 enable-am65cpsw 且内核配置为 CONFIG_TI_K3_AM65_CPSW_NUSS、则 TI AM6x 系列中的本机驱动程序名称为。 具有此以太网 IP 和相关 DMA 的第一个器件是 AM65、因此这就是名称的来源。 指令不是 AM65的特定指令、常见问题解答中的步骤在 Beagleplay (AM62x)上运行。 从以太网和 DMA 的角度来看、AM62P 和 AM62 (以及 AM64、AM62A、AM67)都是相同的。
Pekka
[/quote]
内核构建成功。 但新内核的安装失败。
当我运行以下推荐:
root@am62pxx-evm:~/work# sudo dpkg -i linux-*。deb
下面显示了一些错误:
离线安装 IGH EtherCAT
EVM:am62p
要求包:
[pkg-conf-0.29.2](pkg-config.freedesktop.org/.../pkg-config-0.29.2.tar.gz)
[Automake-1.16](wget mirrors.kernel.org/.../automake-1.16.tar.gz)
[libtool-2.4.6](wget ftp.gnu.org/.../libtool-2.4.6.tar.gz)
[M4-1.4.19](ftp.gnu.org/.../m4-latest.tar.xz)
[autoconf-2.72](ftp.gnu.org/.../m4-latest.tar.xz)
[EtherCAT-1..6.2](git clone https://gitlab.com/etherlab.org/ethercat.git)
将它们复制到 SD 卡、示例:/{SD 卡路径}SD/rootfs/media/...
以下所有内容都是除 EtherCAT 之外的操作:
./configure make make install ps:if when installing pkg-conf,you need to perform: ./configure --with-internal-glib
注意: 如果时间戳有问题、请运行以下操作。
hwclock --set --date="2029-12-26 13:38:00" hwclock --hctosys
安装 EtherCAT:
./bootstrap ./configure make -j4 make -j4 modules ln -sf /boot/System.map-6.6.58-k3 /lib/modules/6.6.58-k3/build/System.map make install make modules_install
如果成功、请配置 EtherCAT:
ln -s /usr/local/etc/init.d/ethercat /etc/init.d/ethercat
和
vim /usr/local/etc/sysconfig/ethercat
您需要按如下方式编辑文件:
MASTER0_DEVICE="YLO_MAC_ADDRESS" (ps:ifconfig)
device_modules ="通用"
cp /usr/local/etc/sysconfig/ethercat /etc/sysconfig/ethercat
如果/etc/sysconfig 剂量不存在、请使用 plsase creat 1
下一步:
sudo su echo KERNEL==\"EtherCAT[0-9]*\", MODE=\"0664\" > /etc/udev/rules.d/99-EtherCAT.rules
接下来、运行 EtherCAT:
root@am62pxx-EVM:~#/etc/init.d/ethercat start
启动 EtherCAT 主站1.6.2 [ 130.797993] EtherCAT:主站驱动程序1.6.2未知
[130.803126] EtherCAT:1个主器件等待器件。
[ 130.834165] EC_GENERIC:EtherCAT 主通用以太网设备模块1.6.2未知
[130.841987] EtherCAT:接受 C0:D6:0A:F9:69:9C 作为主器件0的主器件。
[ 130.849248] EC_generic:将套接字绑定到接口2 (eth0)。
[ 130.870755] EtherCAT 0:启动 EtherCAT-IDLE 线程。
停止更新的
root@am62pxx-evm:~#/etc/init.d/ethercat stop
关闭 EtherCAT 主站1.6.2 [ 318.850553] EtherCAT 0:退出主站线程。
[ 318.85491] EtherCAT 0:释放主器件 C0:D6:0A:F9:69:9C。
[318.878802] EC_GENERIC:卸载。
[ 318.922193] EtherCAT:已清理主站模块。
James、您好!
内核构建成功。 但新内核的安装失败。 [报价]您能否共享内核成功构建后产生的.deb 列表? (即~Work 目录中的 ls -la)。
此外、您是否根据错误消息指示检查了/var/lib/dkms/ti-img-rogue-driver/24.1.6554834 + git20240717+0884dea/build? 似乎为"ti-img-rog-driver"安装此模块的过程失败。
Fullscreen1Consult /var/lib/dkms/ti-img-rogue-driver/24.1.6554834+git20240717+0884dea/buildXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXConsult /var/lib/dkms/ti-img-rogue-driver/24.1.6554834+git20240717+0884dea/build此外、在配置内核步骤中、您是准确地从 IGH E2E 常见问题解答链接中使用了"make bb.org_defconfig"、还是使用了 AM62Px SDK 随附的 defconfig?
您使用的是哪个 AM62Px Linux SDK 版本?
-道林