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.

[参考译文] AM62P:如何在 AM62P 微处理器上构建 IGH EtherCAT

Guru**** 1963975 points
Other Parts Discussed in Thread: AM62P, AM67, SYSCONFIG
请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1451898/am62p-how-do-i-build-igh-ethercat-on-am62p-microprocessors

器件型号:AM62P
主题中讨论的其他器件: AM67SysConfig

工具与软件:

当我逐步参考文档构建 IGH 堆栈时、在步骤2.6中出现了问题:

使 destdir=/media/`whoami` root/ install

错误:

Fullscreen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
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
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

根据提示、soe_errors.o 的文件类型如下:

Fullscreen
1
2
file ./master/soe_errors.o
./master/soe_errors.o: ELF 64-bit LSB relocatable, ARM aarch64, version 1 (SYSV), with debug_info, not stripped
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您是否成功构建了 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就是这样。 那么、一切到那时为止都能正常工作吗?

    请在以下步骤中附上完整的打印输出:

    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    $ 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 ../
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

     Pekka

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您是否成功构建了 IGH 通用驱动程序?

    重复这个问题、您是否使用通用驱动程序成功构建和运行了 IGH? 尝试使用本机驱动程序是一个优化步骤、只有在通用驱动程序的性能不足时才应执行该步骤。

    的步骤操作

    这些指令适用于 Beagleplay 板上的本机构建、而不是交叉编译。 在连接该器件之前、可能需要20个步骤。 根据打印输出、您似乎尝试进行交叉编译。 在附加内容之前的步骤中、例如使用配置为模块的以太网驱动程序构建内核。

    在尝试交叉编译本机驱动程序之前、请确保可以使用不特定于 TI 的通用驱动程序(使用 Linux RAW 套接字)交叉编译和运行 IGH。

     Pekka

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    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。

    上面的链接似乎已被更改、显示交叉编译的原始链接缺失。

    IGH 通用驱动程序已成功构建、但我未能将其安装到 SD 卡中。 错误如上所示。

    --------------------------------------------------------

    下面是一些问题:

    1.是否需要在板上进行交叉编译或直接编译?  如果我想交叉编译以提高编译效率、我应该遵循哪些步骤?

    2.如果直接在电路板上编译、由于 TI 仅提供基于 Yocto 的 LinuxRT 操作系统、而不提供 Ubuntu、apt-get 和类似命令不起作用。 我应该如何根据上面的链接进行操作?

    3.是否有将 IGH EtherCAT 移植到 AM62P 的教程?   不适用于 AM65或其他电路板的教程。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [报价 userid="635212" url="~/support/processors-group/processors/f/processors-forum/1451898/am62p-how-do-i-build-igh-ethercat-on-am62p-microprocessors/5573329 #5573329"]

    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。

    上面的链接似乎已被更改、显示交叉编译的原始链接缺失。

    [报价]

    是的、已刷新内容以使用最新的 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

    sdk:Debian kernel:6.6.

    要求包:

    [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 之外的操作:

    Fullscreen
    1
    2
    3
    4
    5
    6
    ./configure
    make
    make install
    ps:if when installing pkg-conf,you need to perform:
    ./configure --with-internal-glib
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    注意: 如果时间戳有问题、请运行以下操作。

    Fullscreen
    1
    2
    hwclock --set --date="2029-12-26 13:38:00"
    hwclock --hctosys
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    现在已安装所有要求的软件包

    安装 EtherCAT:

    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    ./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
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    如果成功、请配置 EtherCAT:

    Fullscreen
    1
    ln -s /usr/local/etc/init.d/ethercat /etc/init.d/ethercat
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    Fullscreen
    1
    vim /usr/local/etc/sysconfig/ethercat
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    您需要按如下方式编辑文件:

    MASTER0_DEVICE="YLO_MAC_ADDRESS"  (ps:ifconfig)
    device_modules ="通用"

    Fullscreen
    1
    cp /usr/local/etc/sysconfig/ethercat /etc/sysconfig/ethercat
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    如果/etc/sysconfig 剂量不存在、请使用 plsase creat 1

    下一步:

    Fullscreen
    1
    2
    sudo su
    echo KERNEL==\"EtherCAT[0-9]*\", MODE=\"0664\" > /etc/udev/rules.d/99-EtherCAT.rules
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    接下来、运行 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"安装此模块的过程失败。

    Fullscreen
    1
    Consult /var/lib/dkms/ti-img-rogue-driver/24.1.6554834+git20240717+0884dea/build
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    此外、在配置内核步骤中、您是准确地从 IGH E2E 常见问题解答链接中使用了"make bb.org_defconfig"、还是使用了 AM62Px SDK 随附的 defconfig?

    您使用的是哪个 AM62Px Linux SDK 版本?

    -道林

x 出现错误。请重试或与管理员联系。