Linux字符设备New_Rule_Table_Device正确写入文件路径查询
正确写入路径
你尝试写入的/sys/class/New_Rule_Table_Class/New_Rule_Table_Class_New_Rule_Table_Device是sysfs文件系统下的设备属性目录,本身是目录结构,不支持直接写入操作,也不是字符设备的访问入口。
你注册的字符设备的默认访问路径是/dev/New_Rule_Table_Class_New_Rule_Table_Device,对该路径执行写入操作就会触发你驱动中实现的rule_table_write回调逻辑。
补充说明
- 加载驱动后可以执行
ls /dev | grep New_Rule_Table命令确认设备节点是否正常生成 - 如果系统没有自动创建设备节点,你可以先执行
cat /proc/devices找到New_Rule_Table_Device对应的主设备号,再通过mknod /dev/自定义设备名 c 主设备号 0手动创建设备节点 - 你的驱动代码存在隐藏问题:信号量
sem没有初始化就直接使用,建议在rule_table_init函数中添加sema_init(&sem, 1);语句,否则打开设备时会触发异常。
内容的提问来源于stack exchange,提问作者QueryMan
相关产品推荐
相关产品推荐

