免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4146 | 回复: 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的。你的这种情况,怎么感觉是刚开始可以读写数据,然后就不行了呢?

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

本版积分规则 发表回复

SACC2019中国系统架构师大会

【数字转型 架构演进】SACC2019中国系统架构师大会
2019年10月31日~11月2日第11届中国系统架构师大会(SACC2019)将在北京隆重召开。四大主线并行的演讲模式,1个主会场、20个技术专场、超千人参与的会议规模,100+来自互联网、金融、制造业、电商等领域的嘉宾阵容,将为广大参会者提供一场最具价值的技术交流盛会。




----------------------------------------

大会官网>>
  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP