【问题标题】:Device node getting created but device driver not getting linked设备节点已创建,但设备驱动程序未链接
【发布时间】:2012-05-28 14:19:23
【问题描述】:

我编写了一个简单的设备驱动程序。仅加载我的设备文件正在创建的模块。但是当我的应用程序尝试打开设备文件时,我收到错误-1 (operation not permitted)。当我尝试通过执行命令查看设备特性时:

 $udevadm info -a -p /sys/class/char/<devname>

我得到了输出:

KERNEL=="<devname>"
SUBSYSTEM=="char" 
DRIVER==" "

显然我的设备节点没有链接到设备驱动程序。

谁能帮帮我。

谢谢

【问题讨论】:

    标签: linux char kernel driver device


    【解决方案1】:

    你检查过udev创建的设备节点的权限吗?

    Udev 管理这些设备节点的权限,除非您以 root 身份运行,否则很可能不允许您读取/写入设备节点。

    编辑

    如果您以 root 身份运行,则设备节点上的权限不会成为影响因素。请向我们展示 /proc/devices 的内容、ls -la /dev/my-device-node 的输出以及您的代码

    【讨论】:

    • 非常感谢您的回复。我以 root 用户身份运行。创建的设备节点的权限为 crw-rw---- 。我应该如何在不使用 chmod 的情况下更改权限。
    • 当我为我的设备使用 udevadm 信息时,驱动程序字段为空,即“”,这可能是什么原因。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-14
    相关资源
    最近更新 更多