[英]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.