gpt4 book ai didi

c - Linux : watchdog node is not created in/dev directory

转载 作者:太空宇宙 更新时间:2023-11-03 23:59:17 28 4
gpt4 key购买 nike

我想在我的应用程序中使用看门狗定时器。

我在 msm8953 平台上使用 yocto 构建系统。

根据 .dtsi 文件中的兼容字段,相应的驱动程序在 .defconfig 文件中配置(即 CONFIG_MSM_WATCHDOG_V2 = y),我得到以下 dmesg:

[ 0.270444] msm_watchdog b017000.qcom,wdt: wdog absent resource not present
[ 0.270845] msm_watchdog b017000.qcom,wdt: MSM Watchdog Initialized

但是,/dev目录下并没有创建watchdog节点。

我还在 Kconfig 文件中将 WATCHDOG 和 WATCHDOG_CORE 驱动程序配置为默认驱动程序,但是 /dev 目录中仍然没有看门狗节点。

编辑 1:在/drivers/watchdog/Kconfig 中添加默认值 Y

菜单配置看门狗

bool "看门狗定时器支持"

默认 Y

如果看门狗

配置看门狗内核

bool "看门狗定时器驱动核心"

默认 Y

最佳答案

我从 here 找到了代码.我的答案是基于这段代码。

设备驱动程序可以在/dev/sys 上生成一个节点。所以我们必须同时检查 /sys/dev

关于/sys 上的节点

/sys 上创建节点有很多函数。其中一个函数是 device_create_file()。在 this code ,如果 init_watchdog_work() 被调用并且 device_create_file() 被调用,watchdog 的节点,disable 将由此代码创建。

error = device_create_file(wdog_dd->dev, &dev_attr_disable);

您可以在msm watchdog 目录中找到disable 节点。您可以使用 find 找到 msm watchdog 目录。

find /sys -name '*watchdog*'

即使您的代码与 this 不同,也许你可以看到在看门狗驱动中调用了device_create_file()。因此,您可以按照我说的找到一个节点。

关于/dev 上的节点

一般情况下,您可以使用device_create()/dev上创建一个节点。如果调用device_create(),则在/dev上创建节点,否则不创建。

msm_rotator驱动程序在 /dev 上创建 msm_rotator 节点。

#define DRIVER_NAME "msm_rotator"
...
msm_rotator_dev->device = device_create(msm_rotator_dev->class, NULL,
msm_rotator_dev->dev_num, NULL,
DRIVER_NAME);

如果在您的代码中调用了device_create(),您可以在/dev 上找到该节点。如果不调用该函数,则/dev上没有节点。

关于c - Linux : watchdog node is not created in/dev directory,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51184957/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com