我写了一个简单的设备驱动程序。仅加载模块我的设备文件即被创建。但是当我的应用程序尝试打开设备文件时,我收到错误-1 (operation not permitted)
。当我试图通过执行命令来查看设备特性时:
$udevadm info -a -p /sys/class/char/<devname>
我得到了输出:
KERNEL=="<devname>"
SUBSYSTEM=="char"
DRIVER==" "
显然我的设备节点没有链接到设备驱动程序。
任何人都可以帮我解决这个问题。
谢谢
答案 0 :(得分:1)
您是否检查了udev创建的设备节点上的权限?
Udev管理这些设备节点的权限,除非您以root用户身份运行,否则很可能不允许您从设备节点读取/写入设备节点。
修改强>
如果您以root身份运行,设备节点上的权限将不是一个因素。请向我们展示/ proc / devices的内容,ls -la /dev/my-device-node
的输出和您的代码。