【问题标题】:CodeSys killing eth0 on Raspberry Pi 4?CodeSys 在 Raspberry Pi 4 上杀死 eth0?
【发布时间】:2021-04-05 23:30:57
【问题描述】:

我在尝试在 4GB RasPi-4 上运行 CodeSys 时遇到了一个非常奇怪的问题。长话短说,在我开始运行 CodeSys 项目之前,Pi 工作正常。当我这样做时,在 60 秒内,eth0 出现故障并且无法恢复。即使重新启动 Pi 也没有效果。我发现恢复 eth0 的唯一方法是从 Raspberrypi.org 的源图像中重新刻录 RasPiOS(过去几天我已经做了大约 30 次,试图通过反复试验来摆脱这个)。

Linux raspberrypi 5.4.79-v7l+ #1373 SMP Mon Nov 23 13:27:40 GMT 2020 armv7l GNU/Linux

我使用 /etc/dhcpcd.conf 将 eth0 设置为静态 IP。导致此问题的原因是 没有 更改我的设置。尝试使用 ifconfig eth0 up/down 没有效果——没有错误,没有反馈,什么都没有。检查 eth0 的状态显示“正在等待运营商”,尽管它已连接到活动交换机(我还更换了所有电缆和交换机以消除它们作为问题的根源)。

当我重新烧录 Pi 并安装 CodeSys 时,eth0 会无限期地保持运行(在我最长的测试中是 24 小时以上)。它正在开始杀死 eth0 的 CodeSys 项目。 etho“死”后重新启动会给出一系列似乎相关的 bcmgenet 消息:

pi@raspberrypi:~ $ dmesg | grep bcmg
[    1.033665] bcmgenet fd580000.ethernet: failed to get enet clock
[    1.033685] bcmgenet fd580000.ethernet: GENET 5.0 EPHY: 0x0000
[    1.033709] bcmgenet fd580000.ethernet: failed to get enet-wol clock
[    1.033730] bcmgenet fd580000.ethernet: failed to get enet-eee clock
[    1.044648] libphy: bcmgenet MII bus: probed
[    9.528502] bcmgenet fd580000.ethernet: configuring instance for external RGMII
[    9.535175] bcmgenet fd580000.ethernet eth0: Link is Down

我还尝试从头开始创建一个新的 CodeSys 项目,该项目没有安装 eth0 驱动程序(ModBus、以太网/IP),只有 GPIO 驱动程序。这也无济于事——eth0 在 60 秒内死亡。

最奇怪的是,似乎只有 eth0 受到影响。 GPIO 引脚在 CodeSys 项目的控制下保持循环(我有一个简单的 LED 闪烁程序正在运行),我仍然可以使用 wifi SSH 进入 Pi。但由于我设置这个 Pi 的主要原因是使用以太网/IP 和 ModBus....

这个帖子:at GitHub 是我发现的唯一一个地方,有人描述了与我正在经历的类似的事情,但在这种情况下,没有安装 CodeSys。我确实尝试按照线程中的建议将 genet.skip_umac_reset=n 添加到我的 cmdline.txt 中,但没有效果。

【问题讨论】:

    标签: raspberry-pi codesys


    【解决方案1】:

    所以,事实证明这是配置 GPIO 引脚的问题。

    CodeSys 有两个不同的“设备”文件,用于将 GPIO 引脚添加到项目设备树中。 default 选项适用于较旧的 Pi 型号,备用选项(仅标记为 B+ 和 Pi2)是 Pi4 的正确选项。

    事实证明,过时的 GPIO 设备文件将在 Pi4 上工作大部分。但是使用错误的设备文件允许 CodeSys 尝试配置不应被篡改的 GPIO 引脚。在这种情况下,GPIO 28 和 29。将它们中的任何一个设置为输出模式都会杀死 eth0。

    使用正确的设备文件会从可配置 GPIO 引脚列表中删除 28&29。它还为较新的 Pi 模型提供了可用 GPIO 引脚的正确列表,希望能避免我没有遇到的其他潜在配置问题。

    在 CodeSys 中,右键单击设备树中的 GPIOs 元素可提供“更新设备”选项。选择此选项以获取可用设备文件的列表,并在使用窗口底部的“更新设备”按钮之前选择正确的文件。

    【讨论】:

      猜你喜欢
      • 2021-06-14
      • 2017-01-23
      • 2023-03-18
      • 2021-08-22
      • 1970-01-01
      • 2021-09-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多