繁体   English   中英

linux:看门狗节点未在/ dev目录中创建

[英]linux: watchdog node is not created in /dev directory

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

我在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目录中创建看门狗节点。

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

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

menuconfig看门狗

布尔“看门狗定时器支持”

默认Y

如果看门狗

配置WATCHDOG_CORE

布尔“ WatchDog计时器驱动程序核心”

默认Y

我从这里找到了代码。 我的答案是基于此代码的。

设备驱动程序可以在/dev以及/sys上生成节点。 因此,我们必须检查/sys/dev

关于/ sys上的节点

/sys上创建节点的功能很多。 函数之一是device_create_file() 此代码中 ,如果init_watchdog_work()并调用device_create_file()则该代码将创建看门狗的节点disable

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

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

find /sys -name '*watchdog*'

即使您的代码与不同,也许您也可以看到在watchdog驱动程序中调用了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上没有节点。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM