免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 5390 | 回复: 8
打印 上一主题 下一主题

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

论坛徽章:
0
跳转到指定楼层
1 [收藏(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
2 [报告]
发表于 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
3 [报告]
发表于 2009-03-14 23:12 |只看该作者
驱动是不是写得有问题?

论坛徽章:
0
4 [报告]
发表于 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
5 [报告]
发表于 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
6 [报告]
发表于 2009-03-14 23:57 |只看该作者
LZ写的字符模块是否成功的insmod。可以在你的module_init中,printk出来一些信息啊

论坛徽章:
0
7 [报告]
发表于 2009-03-16 08:59 |只看该作者
原帖由 Godbach 于 2009-3-14 23:57 发表
LZ写的字符模块是否成功的insmod。可以在你的module_init中,printk出来一些信息啊

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

论坛徽章:
0
8 [报告]
发表于 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
9 [报告]
发表于 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的。你的这种情况,怎么感觉是刚开始可以读写数据,然后就不行了呢?

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

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP