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.

[参考译文] AM6442:Balance-ALB 无法在 TMDS64EVM (Yocto Linux) 上启动。

Guru**** 2973670 points

Other Parts Discussed in Thread: TMDS64EVM

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1645399/am6442-balance-alb-fails-to-start-on-the-tmds64evm-yocto-linux

器件型号: AM6442
Thread 中讨论的其他器件: TMDS64EVM

您好、专家

-【问题描述】
我的客户正在按照 TI 网站上的说明评估基于 TMDS64EVM 构建的 Yocto Linux 系统、
使用 eth0 和 eth1 的绑定配置。 但是、他们会遇到以下问题:

客户已确认已启动主动备份和平衡 — 异或,  
但 Balance-ALB 尚未启动并显示以下消息。
(我们计划稍后检查其他模式。)

> bond0:(从器件 eth0):从器件上的 DEV_SET_MAC_ADDRESS 失败!
> ALB 模式要求基础驱动程序支持设置硬件地址  
>当网络设备的接口打开时

-【问题】

[1]:
根据上面的消息、我了解有必要在没有更改 MAC 地址的情况下更改该地址
使网络接口脱机。
我的理解是否正确、因为 PHY 驱动程序或 CPSW 驱动程序不支持此功能?

[2]:
客户设计的 PCB 是否可能支持 Balance-ALB、例如通过更改 PHY?

[3]:
绑定是用户要求。 如果您有关于以下哪些模式可用的任何信息、
我们感谢您的指导。

0:Balance-RR
1:主动备份
2:平衡 — 异或
3:广播
4:802.3ad
5:平衡 tlb
6:平衡 ALB

此致、
Hidekazu

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

    您好、专家

    请您就目前提出的问题发表意见。

    客户当前正在调查 eth0 和 eth1 的绑定配置、但发生了以下问题。
    我们为 eth0 和 eth1 配置了静态 IP 地址、并确认两者都能正常识别(向上)。
    -->参见“e2e.ti.com/.../Static_5F00_ip_5F00_Network-Settings.txt”

    此外、我们还配置了绑定(使用主动备份和 balance-XOR)、但 eth1 未启动。
    -->参见e2e.ti.com/.../bonding_5F00_network-settings.txt”和e2e.ti.com/.../bonding_5F00_startup-Check.txt”

    您能解释一下如何进行配置吗?

    此致、
    Hidekazu

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

    您好、专家

    请您就目前提出的问题发表意见。

    我们已收到客户的跟进。 请按如下方式重命名该文件:
    [/etc/systemd/network/10-bond0.network ]
    ->
    [/etc/systemd/network/11-bond0.network ]

    [/etc/systemd/network/30-bond0.netdev ]
    ->
    [/etc/systemd/network/10-bond0.netdev ]


    之后、通过执行以下命令(IP 链路集)、
    我们确认主动备份绑定成功。

    IP 链路设置 eth1 断开
    ip link set eth1 master bond0
    IP 链路设置 eth1 up

    但是、我不确定为什么必须执行“IP link set“命令
    只需更改设置即可。
    很难确定此行为是否符合预期、或者配置是否存在问题。
    因此、我想确认这种做法是否适当。

    请尽快回复已发布的问题和评论。

    此致、
    Hidekazu

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

    你好 Hidekazu、

    对延迟的回复表示歉意。  

    使用的是哪个 TI Linux SDK 版本? 基于 uname(共享日志中的一个结果)、这似乎是 SDK RT-Linux 12.0?

    只是为了澄清一下、为了使键合机制正常工作、目标是获得/etc/systemd/network/11-bond0.network 上指定的 IP 地址以显示 eth1? 为了清楚起见、问题仅发生在 eth1 上、而不是 eth0 上?

    从 networkctl status eth1 日志中,我看到 eth1 具有 自动协商:否, Duplex: Half 这似乎表明 eth1 链路没有建立。 您能否检查“ethtool eth1“结果以查看输出是否显示“Link status:Yes“?  

    此外、这个测试是来自 TMDS64EVM 还是来自定制电路板? 我问的原因是、eth1 端口在“Port“中显示“mii“、而 eth0 在 tp “Port“中显示“mii“、这很奇怪。  

    [3]:
    绑定是用户要求。 如果您有关于以下哪些模式可用的任何信息、
    我们感谢您的指导。

    为了进行澄清、这种绑定机制似乎由 systemd-networkd 处理、后者是用户空间中存在的一个守护程序、不一定是 TI CPSW 以太网驱动程序。 TI 可以解决 CPSW 以太网驱动程序问题、但不具备解决用户空间应用问题的专业知识、包括就您提到的模式提供建议。 但是、如果我找到有关这些模式的任何信息、我将尝试分享。

    -道林

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

    你好、Daolin-san

    感谢您发送编修。
    以下是我们从客户处收到的回复列表。

    >(1)。 您使用的是哪个版本的 TI Linux SDK?

    客户正在使用版本 12.00.00.07.04。
    他们从 TI 下载并使用以下文件:
    “ti-processor-sdk-linux-rt-am64xx-evm-12.00.00.07.04-linux-x86-Install.bin“

    >(2)。 使用绑定机制的目的
    目的是捆绑两个端口 eth0 和 eth1、并将它们用作单个虚拟接口 (bond0)。
    /etc/systemd/network/11-bond0.network 中指定的 IP 地址将被分配给 bond0。

    >(3)。 只是为了确认、问题是否仅限于 eth1 而不是在 eth0 上发生?

    该问题仅限于 eth1、并且不是在 eth0 上发生。

    当 Linux 引导时、eth0 处于启动状态。
    另一方面、当 Linux 引导时、eth1 处于 DOWN 状态。
    ->请参见“Bonding_network_configuration_check_20260525.txt“的第 8 行和第 10 行
    2:eth0: MTU 1500 qdisc mq master bond0 状态 up 组默认 qlen 1000
    3:eth1: MTU 1500 qdisc noop state down group default qlen 1000

    >(4)。 请检查`ethtool eth1`的输出、查看其是否显示“Link status:yes“。

    它显示“Link detected:no.“
    ->请参见“Bonding_network_configuration_check_20260525.txt“的第 92 行

    我拔下并重新插入 eth1 侧的 LAN 电缆、
    即使我将连接到已识别的 eth0 的 LAN 电缆移动到 eth1、情况也没有改变。

    正如我在上一条消息中提到的、当我在此状态下执行以下命令时:
    ip link set eth1 master bond0
    IP 链路设置 eth1 up
    eth1 进入 UP 状态并显示“Link detected:yes“。
    ->请参阅“after_bonding_set_eth1_up_20260525.txt“的第 107 行

    我怀疑启动期间会发生超时、从而使 eth1 保持在关闭状态。

    >(5)。 此外、这些测试结果是从 TMDS64EVM 还是定制电路板获得的?

    是的、这些测试结果是使用 TMDS64EVM 获得的。
    我们尚未创建定制板。

    (4)。 将 eth1 设置为 up 后、现在会显示“Port:Twisted Pair“。
    ->请参阅“after_bonding_set_eth1_up_20260525.txt“的第 98 行

    *请参阅评论下面的附件。
    e2e.ti.com/.../bonding_5F00_network_5F00_configuration_5F00_check_5F00_20260525.txt

    e2e.ti.com/.../After_5F00_bonding_5F00_set_5F00_eth1_5F00_up_5F00_20260525.txt
    此致、
    Hidekazu

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

    Hello Hidekazu-san,  

    客户当前正在调查 eth0 和 eth1 的绑定配置、但发生了以下问题。
    我们为 eth0 和 eth1 配置了静态 IP 地址、并确认两者都能正常识别(向上)。

    在使用 systemd-networkd 时、eth1 从正常配置的静态 IP 地址上升到突然断开链路的时间尚不清楚。  

    您能否显示以下结果:

    1. dmesg 日志或完整的启动日志

    2. journalctl -u systemd-networkd.service

    -道林

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

    你好、Daolin-san

    我们已获得客户请求的日志数据。
    请查看下面随附的文件。

    > 1. dmesg 日志或完整的引导日志
    ->“dmesg.txt“

    > 2. `journalctl -u systemd-networkd.service`的输出
    ->“journalctl.txt“

    *请参阅评论下面的附件。

    e2e.ti.com/.../3617.dmesg.txt

    e2e.ti.com/.../3617.journalctl.txt

    此致、
    Hidekazu

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

    尊敬的 Hidekazu:  

    感谢您分享日志。 从 dmesg 日志中、我可以看到 eth1 端口甚至没有使用 PHY 驱动程序进行初始化、这可能是为什么即使在启动后 eth1 甚至没有链接的原因、因为 eth1 未完全初始化。 您可以从下面的代码片段中看到、地址 0(“phy[0]“)处只有一个 PHY 已初始化并连接到 DP83867 驱动程序、但应该有另一个 PHY 已初始化并连接到 PHY 驱动程序。

    [    1.616321] am65-cpsw-nuss 8000000.ethernet: initializing am65 cpsw nuss version 0x6BA00903, cpsw version 0x6BA80903 Ports: 3 quirks:00000006
    [    1.616502] am65-cpsw-nuss 8000000.ethernet: RGMII mode without internal TX delay unsupported; please fix your Device Tree
    [    1.616717] am65-cpsw-nuss 8000000.ethernet: RGMII mode without internal TX delay unsupported; please fix your Device Tree
    [    1.617492] davinci_mdio 8000f00.mdio: Configuring MDIO in manual mode
    [    1.650545] davinci_mdio 8000f00.mdio: davinci mdio revision 9.7, bus freq 1000000
    [    1.653085] davinci_mdio 8000f00.mdio: phy[0]: device 8000f00.mdio:00, driver TI DP83867
    [    1.653293] am65-cpsw-nuss 8000000.ethernet: initialized cpsw ale version 1.4
    [    1.653303] am65-cpsw-nuss 8000000.ethernet: ALE Table size 512, Policers 32
    [    1.654774] am65-cpsw-nuss 8000000.ethernet: CPTS ver 0x4e8a010c, freq:500000000, add_val:1 pps:1
    [    1.737671] am65-cpsw-nuss 8000000.ethernet: set new flow-id-base 16

    这个 TMDS64EVM 使用了什么 DTS? 首先检查是否存在某些 DTS 配置故障、导致在启动时甚至没有初始化 eth1。

    -道林

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

    你好、Daolin-san

    感谢您提供的信息。

    客户知道 Linux 引导时未初始化 phy[1]。
    如果它们等待片刻、然后执行以下命令、则 phy[1]=eth1 将启动。
    他们似乎认为这是在 Linux 完成引导之前发生的。

    ip link set eth1 master bond0
    IP 链路设置 eth1 up

    关于 DTS、我们没有根据以下程序的结果进行任何更改。
    如果这是配置问题、则 TI 的标准设置可能不兼容
    连接到 TMDS64EVM。

    我们还收到了希望自行调查的客户的请求。
    如果您有关于我们应该审查哪些文件的任何信息、
    请告诉我们。

    此致、
    Hidekazu

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

    Hi Hidekazu-san、  

    我谦卑地为延迟的回应道歉。

    [引述 userid=“91732“ url=“~/support/processors-group/processors/f/processors-forum/1645399/am6442-balance-alb-fails-to-start-on-the-tmds64evm-yocto-linux/6361886

    客户知道 Linux 引导时未初始化 phy[1]。
    如果它们等待片刻、然后执行以下命令、则 phy[1]=eth1 将启动。
    他们似乎认为这是在 Linux 完成引导之前发生的。

    ip link set eth1 master bond0
    IP 链路设置 eth1 up

    [/报价]

    PHY 驱动程序通常只能在启动期间进行初始化。 我从下面的日志中看到、您在下面分享的日志中看到、PHY 仅在执行“IP link set eth1 master bond0“命令之后进行初始化。  

    [引述 userid=“91732“ url=“~/support/processors-group/processors/f/processors-forum/1645399/am6442-balance-alb-fails-to-start-on-the-tmds64evm-yocto-linux/6357962

    >(1)。 您使用的是哪个版本的 TI Linux SDK?

    客户正在使用版本 12.00.00.07.04。
    他们从 TI 下载并使用以下文件:
    “ti-processor-sdk-linux-rt-am64xx-evm-12.00.00.07.04-linux-x86-Install.bin“

    [/报价]

    需要说明的是、在配置任何 bond0 设置之前、如果使用 SDK 12.0 RT-Linux 映像重新启动且未对/etc/systemd/network 文件进行修改、那么 eth1 也无法使用 PHY 进行初始化?

    -道林

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

    你好、Daolin-san

    感谢您提供的信息。

    我让客户验证 eth1 PHY 的初始化(默认)。
    客户在执行 bitbake build 后立即将数据写入 SD 卡
    已尝试引导系统、但未初始化 eth1。

    请参阅 log.zip 中的 dmesg.txt 和 journalctl.txt。

    在 journalctl.txt 中找到以下日志条目:

    3 月 13 日 15:35:18 am64xx-evm systemd-networkd[479]:eth1:无法启动接口、忽略:没有这样的设备

    有关当时的网络设置、请参阅 net_setting.zip 的内容。
    我们尚未修改配方、并认为它仍然符合 TI 提供的规定。

    e2e.ti.com/.../8304.log.zip

    e2e.ti.com/.../net_5F00_setting.zip

    此致、
    Hidekazu

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

    你好、Daolin-san

    我们是否应该假设即使使用未修改的 SDK 也没有初始化 eth1 PHY?

    我的理解是否正确?在这一点上、唯一的解决方法是遵循以下步骤?
    (是否有任何修改 SDK 的计划,或者是否有其他权变措施?)

    ip link set eth1 master bond0
    IP 链路设置 eth1 up

    此致、
    Hidekazu