用mknod建立的device无法被访问

发布于 2022-09-18 19:06:02 字数 220 浏览 24 评论 0

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(8

謌踐踏愛綪 2022-09-25 19:06:02

mknod /dev/memory c 60 0

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

顾挽 2022-09-25 19:06:02

驱动是不是写得有问题?

错々过的事 2022-09-25 19:06:02

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

难忘№最初的完美 2022-09-25 19:06:02

原帖由 tulip0425 于 2009-3-14 23:13 发表
建立一个字符设备文件,主设备号60,次设备号为0,确定在/dev目录下该设备好没有被占用

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

倾`听者〃 2022-09-25 19:06:02

LZ写的字符模块是否成功的insmod。可以在你的module_init中,printk出来一些信息啊

女皇必胜 2022-09-25 19:06:02

原帖由 Godbach 于 2009-3-14 23:57 发表
LZ写的字符模块是否成功的insmod。可以在你的module_init中,printk出来一些信息啊

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

情定在深秋 2022-09-25 19:06:02

这个程序是按照您的庖丁解牛系列来写的,驱动正常加载,没有报任何错误,然后我继续用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 编辑 ]

终难愈 2022-09-25 19:06:02

然后我继续用echo向该memory_device中写字符,用cat确实可以显示出来,但是后面仍然会有no such device or address的提示。

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

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

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

贴出你的源程序看一下吧。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文