免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4274 | 回复: 8

用mknod建立的device无法被访问 [复制链接]

论坛徽章:
0
发表于 2009-03-14 21:09 |显示全部楼层
小弟最近在做驱动开发的东西,准备按照文档先学写字符设备驱动的程序,但是我发现在我的虚拟机中用命令mknod /dev/memory c 60 0建立的节点用命令cat无法访问,提示 no such device or address,该节点的权限已设为666。同时我发现在/dev下有zero节点,该节点的权限也是666,字符型,可以用cat看: cat /dev/zero ,虽然没有显示任何东西,但是可以被访问到。请问这是怎么一回事啊?

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
发表于 2009-03-14 23:01 |显示全部楼层
mknod /dev/memory c 60 0

LZ明白这个命令是什么意思吗?

论坛徽章:
3
金牛座
日期:2014-06-14 22:04:062015年辞旧岁徽章
日期:2015-03-03 16:54:152015年迎新春徽章
日期:2015-03-04 09:49:45
发表于 2009-03-14 23:12 |显示全部楼层
驱动是不是写得有问题?

论坛徽章:
0
发表于 2009-03-14 23:13 |显示全部楼层

回复 #2 Godbach 的帖子

建立一个字符设备文件,主设备号60,次设备号为0,确定在/dev目录下该设备好没有被占用

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
发表于 2009-03-14 23:53 |显示全部楼层
原帖由 tulip0425 于 2009-3-14 23:13 发表
建立一个字符设备文件,主设备号60,次设备号为0,确定在/dev目录下该设备好没有被占用


LZ确认一下这个设备号的设备就是你注册的设备::
awk '$1==60' /proc/devices

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
发表于 2009-03-14 23:57 |显示全部楼层
LZ写的字符模块是否成功的insmod。可以在你的module_init中,printk出来一些信息啊

论坛徽章:
0
发表于 2009-03-16 08:59 |显示全部楼层
原帖由 Godbach 于 2009-3-14 23:57 发表
LZ写的字符模块是否成功的insmod。可以在你的module_init中,printk出来一些信息啊

我也怀疑楼主有没有加载模块

论坛徽章:
0
发表于 2009-03-16 09:34 |显示全部楼层

回复 #3 dreamice 的帖子

这个程序是按照您的庖丁解牛系列来写的,驱动正常加载,没有报任何错误,然后我继续用echo向该memory_device中写字符,用cat确实可以显示出来,但是后面仍然会有no such device or address的提示。之前因为没有向该memory_device中写字符,所以只有no suck device or address的提示,我误以为建立的节点是无法访问的。不过为什么会显示这个还是不明白,继续向各位大牛请教,谢谢。file:///C:/linux.bmp

[ 本帖最后由 tulip0425 于 2009-3-16 09:43 编辑 ]

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
发表于 2009-03-17 14:20 |显示全部楼层
然后我继续用echo向该memory_device中写字符,用cat确实可以显示出来,但是后面仍然会有no such device or address的提示。

加载完驱动,可以写进去数据,后面是在什么情况下出现no such device的提示呢?

之前因为没有向该memory_device中写字符,所以只有no suck device or address的提示

这个逻辑是不对的吧。如果你已经成功的建立的字符设备,而且驱动也是加载的。那么不管你有没有往里面写入数据,都可以cat的。你的这种情况,怎么感觉是刚开始可以读写数据,然后就不行了呢?

贴出你的源程序看一下吧。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

DTCC2020中国数据库技术大会 限时8.5折

【架构革新 高效可控】2020年8月17日~19日第十一届中国数据库技术大会将在北京隆重召开。

大会设置2大主会场,20+技术专场,将邀请超百位行业专家,重点围绕数据架构、AI与大数据、传统企业数据库实践和国产开源数据库等内容展开分享和探讨,为广大数据领域从业人士提供一场年度盛会和交流平台。

http://dtcc.it168.com


大会官网>>
  

北京盛拓优讯信息技术有限公司. 版权所有 16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122
中国互联网协会会员  联系我们:huangweiwei@it168.com
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP