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.

[参考译文] Linux/AM3359:EtherNet/IP 问题

Guru**** 2609955 points
Other Parts Discussed in Thread: TMDSICE3359

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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/656605/linux-am3359-ethernet-ip-issues

器件型号:AM3359
主题中讨论的其他器件:TMDSICE3359

工具/软件:Linux

您好!
我的客户使用 Ubuntu 设置了一个虚拟盒。 Molex 堆栈在我们的 TMDSICE3359上运行、在 SDHC 上运行 Linux 映像。 他可以与堆栈通信,并使用 Molex EIP 测试工具通过 UDP 读取“列表标识”。 然后他发送 TCP 消息并获得以下消息:
„[1593.174255] TCP:Request_SOCK_TCP:端口44818上可能存在 SYN 泛洪。 正在放弃请求。  检查 SNMP 计数器。”
iptables 为空。

他尝试了以下几项:
-         配置 TCP 端口44818的 iptables 中的规则:
iptables -i input 1 -p tcp --dport 44818 -j accept
-         sysctl-w net.ipv4_tcp_synack_retries =50000
-         sysctl-w net.ipv1.tcp_syn_retries =50000
-         无法设置 tcp_syncookies–可以在内核中禁用它

行为是相同的。

TCP 44818为何会丢失、在哪里?#
应更改什么以使 TCP 运行。

整合:
以太网接口:它们使用靠近 PCB 边缘的物理 RJ45、该 PCB 边缘在 Linux 中映射到 eth0。
-协议:SDHC 上有来自以下链接的 TI Linux 映像:
http://software-dl.ti.com/processor-sdk-linux-rt/esd/AM335X/latest/index_FDS.html
用于 Linux 的 EIP 堆栈也是从 Molex 中获取的–无需修改。 没有更多的 TI 组件。
-EtherNet/IP 主站:Molex 的 EIP 工具在 Win10 PC 上运行–防火墙、防病毒等已禁用。
TCP 由 PC NIC 传输、但 EVB 不会n´t 应答/确认( 连接了 Wireshark / tcpdump 捕获)。
UDP 工作正常、但 TCP 会在 EVB 上产生以下消息:
„[1593.174255] TCP:Request_SOCK_TCP:端口44818上可能存在 SYN 泛洪。 正在放弃请求。  检查 SNMP 计数器。”
-带有 TI RTOS 的 PRU-ICSS EIP 工作正常。
-EIP 工具中配置的 IP (在 Win10 PC 上运行):128.127.58.135
-PC´s NIC 上的静态 IP 为128.127.58.112
-在 Linux 控制台中执行的命令:
ifconfig eth0 128.127.58.135子网掩码255.255.255.0
Ping 128.127.58.112 -C3.
回波"r"t"|./EIP 适配器 OLK
tcpdump -nnvXss 0 -C10 -w /etc/tcpdump.pcap

此致、Holger

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Holger、您好吗?您能附加 Wireshark 捕获吗?
    谢谢!
    Paula
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    作为一项快速测试、要查看我是否可以访问端口44818、我运行了 iperf、在 AM335x eth0 (cpsw) GPEVM 上指定 TCP 端口、测试成功:

    gpevm:iperf -s -p 44818
    Ubuntu PC:Iperf -c -p 44818.

    我没有设置 IP 表规则来使其正常工作。 我在快速扫描 Wireshark 捕获时也没有看到任何异常情况。 这是对我现有设置的快速测试、它使用预构建 SDK。

    目前、我认为问题出在 Molex 堆栈中、这不是我们在 TI 可以支持的。 但是、我想建议客户先尝试此测试、然后再得出结论认为 Molex 堆栈是问题所在。

    由于使用了 AM335x ICE 板、因此必须设置一些跳线。 因为 ping 和 UDP 起作用、但 TCP 并不有趣。 请在不运行 Molex 堆栈的情况下尝试上述测试。

    请附上以太网连接器周围的跳线设置图片、还请附加(不要粘贴)在控制台上捕获的引导日志。 另外、请不要压缩所附的引导日志。

    此致、
    Schuyler