Yocto 在Linux中,如何添加更多的原因标志,以便使用watchdog重新启动?

Yocto 在Linux中,如何添加更多的原因标志,以便使用watchdog重新启动?,yocto,flags,reboot,watchdog,nxp-microcontroller,Yocto,Flags,Reboot,Watchdog,Nxp Microcontroller,我正在使用iMX8MM和Yocto。我正试图找出用看门狗重启的原因 我找到了watchdog.h,那里有很多旗帜: #define WDIOF_OVERHEAT 0x0001 /* Reset due to CPU overheat */ #define WDIOF_FANFAULT 0x0002 /* Fan failed */ #define WDIOF_EXTERN1 0x0004 /* External relay 1 */ #define WDIOF_EXTERN2 0x0008 /*

我正在使用iMX8MM和Yocto。我正试图找出用看门狗重启的原因

我找到了watchdog.h,那里有很多旗帜:

#define WDIOF_OVERHEAT 0x0001 /* Reset due to CPU overheat */
#define WDIOF_FANFAULT 0x0002 /* Fan failed */
#define WDIOF_EXTERN1 0x0004 /* External relay 1 */
#define WDIOF_EXTERN2 0x0008 /* External relay 2 */
#define WDIOF_POWERUNDER 0x0010 /* Power bad/power fault */
#define WDIOF_CARDRESET 0x0020 /* Card previously reset the CPU */
#define WDIOF_POWEROVER 0x0040 /* Power over voltage */
#define WDIOF_SETTIMEOUT 0x0080 /* Set timeout (in seconds) */
#define WDIOF_MAGICCLOSE 0x0100 /* Supports magic close char */
#define WDIOF_PRETIMEOUT 0x0200 /* Pretimeout (in seconds), get/set */
#define WDIOF_KEEPALIVEPING 0x8000 /* Keep alive ping reply */
但当我使用命令检查时,我只得到4个标志:

$ wdctl

Device: /dev/watchdog
Identity: imx2+ watchdog [version 0]
Timeout: 60 seconds
Pre-timeout: 0 seconds
FLAG                   DESCRIPTION                          STATUS           BOOT-STATUS
KEEPALIVEPING          Keep alive ping reply                  1                   0
MAGICCLOSE             Supports magic close char              0                   0
PRETIMEOUT             Pretimeout (in seconds)                0                   0
SETTIMEOUT             Set timeout (in seconds)               0                   0
如何使用更多的标志?

您在看门狗中看到的宏(标志)。h是完整的列表。但是,应用程序实用程序(此处为
wdctl
)正在从内核读取驱动程序功能实现

您看到的另一个标志
WDIOF_overhet
和其他标志应该由内核驱动程序支持,然后只有它才可用于
wdctl
列表

查看
wdctl
的源代码,其工作方式如下。它正在调用
read\u watchdog\u from\u device
API来获取实现的标志(环境监控)

请从i.MX8MM看门狗
imx2_wdt.c
检查相应驱动程序中的标志

参考资料:

这就是我解决上述问题的方法

  • 查找有关imx2+看门狗软件包的所有文件

  • 通过添加更多标志作为watchdog.h文件进行修改

  • 访问Yocto中的menuconfig,并打开看门狗部分中的一些选项。此操作确保bitbake识别驱动程序中的更改

  • 重建并生成操作系统映像


  • 我还尝试向wdctl添加标志。当我执行wdctl命令时,我可以看到所有的标志。我正在进行测试。最简单的情况是过热,它的工作方式似乎是错误的。我的设备没有重新启动,它已关闭。而且我也无法读取上次重新启动的原因。