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.

[参考译文] PROCESSOR-SDK-AM335X:重启/关机偶尔会挂起、并出现 systemd-udevd 错误

Guru**** 2486515 points


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

https://e2e.ti.com/support/processors-group/processors/f/processors-forum/1442178/processor-sdk-am335x-reboot-shutdown-occasionally-hangs-with-systemd-udevd-errors

器件型号:PROCESSOR-SDK-AM335X

工具与软件:

您好!

我的系统遇到重新启动或关机偶尔挂起的问题。 系统显示以下错误信息:

systemd-shutdown: Waiting for process: systemd-udevd, systemd-udevd  
systemd-udevd: 44e35000.wdt: Worker processing SEQNUM=2109 is taking a long time  
systemd-shutdown: Waiting for process: systemd-udevd  

这似乎与44e35000.wdt器件有关、据我所知、这与omap_wdt AM335x 处理器上的看门狗计时器驱动程序相关。

什么原因可能导致该问题? 是否有任何建议的解决方案或解决方法可以防止重新启动或关机过程中挂起?

谢谢!  如果需要其他日志或信息、请告知我。

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

    您好!

    1) 1)您使用的是哪个版本的 AM335x Linux SDK?

    2) 2)您是否实际上在使用看门狗计时器? 否则、我们可以禁用它。

    3) 3)您何时首次初始化看门狗计时器? 在 uboot 中? 在 Linux 引导期间? 等等

    此致、

    Nick

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

    您好、Nick。


    感谢您的提问。

    1.构建配置如下:
    BB_VERSION ="1.46.0"
    BUILD_SYS ="x86_64 Linux"
    NATIVELSBSTRING ="Ubuntu-18.04"
    TARGET_SYS ="arm-linux-gnueabi"
    MACHINE ="AM335x-EVM"
    DISTRO ="Arago"
    DISTRO_VERSION ="2021.09"

    2.我没有在应用中主动使用看门狗计时器、这可能是一个可行的故障排除选项。 (根据我的内核配置、启用看门狗计时器支持(`CONFIG_WATCHDOG=y`)、但没有针对 OMAP_WDT 或硬件看门狗的特定初始化。)

    3.看门狗定时器似乎没有在 U-Boot 中进行初始化。 在 Linux 引导期间、我会看到一个与 NMI 看门狗相关的日志条目、但`OMAP_WDT`或硬件看门狗没有具体的初始化。 驱动程序似乎在引导期间未自动加载。

    谢谢!  我希望这有助于澄清问题。 如果您需要更多信息、可以随时提问。

    此致、
    CCF

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

    您好!

    您是否使用 AM335x Linux SDK? 或者、您是否从其他地方抓取 Linux 和 uboot?
    https://www.ti.com/tool/download/PROCESSOR-SDK-LINUX AM335X 

    如果您没有使用看门狗计时器(即"WDT")、我们在 Linux 和 uboot devicetree"文件中将其禁用、看看您的挂起是否停止。

    此致、

    Nick

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

    您好、Nick。

    很抱歉在上一个回复中遗漏了 AM335x Linux SDK 信息。 我使用的是版本08.02.00.006-RT。

    关于器件树、我使用`AM335x-evmsk.dts`文件、但未向其添加任何 WDT 配置。 根据错误消息、我 在`am33xx-L4.dtsi`中找到了`WDT`配置、如下一节所示:

    ```μ A
    WDT2:WDT@0{
    兼容="ti、OMAP3-WDT";
    REG =<0x0 0x1000>;
    Interrupts =<91>;
    };
    ```μ A

    从器件树中删除`WDT2`配置后、系统在关机期间不再挂起。 因此、配置似乎是导致了问题的原因。 但是、更改后会遇到其他错误。

    因此、我想问一下以不同的方式禁用该器件是否更好、例如在设备树中显式禁用该器件、或者是否有其他方法更有效。

    您能否建议处理此问题的最佳方法或建议任何其他潜在的解决方案?

    非常感谢!

    此致、
    CCF

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

    您好!

    一般而言、我建议保留处理器级.dtsi 文件、并在顶部电路板级.dts 文件中进行所有更改。 这样、您就可以确保所做的更改不会被包含.dtsi 文件的后续.dts 文件覆盖。

    我建议将其添加到板级.dts 文件中以禁用看门狗驱动器:

    &wdt2 {
        status = "disabled";
    };

    如果您仍遇到错误、请将这些错误发布到您的终端输出中。

    此致、

    Nick

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

    您好、Nick。

    按照您的建议对板级.dts 文件进行更改并正确禁用看门狗之后、该功能运行良好。 此外,我意识到,我误解了其他错误的根源。 (只是在关断期间转储的内核消息不是由对看门狗的更改引起的。)

    非常感谢!