关于linux中设备节点的创建问题
我做的是一个虚拟命名管道(FIFO)的字符设备,程序完成后通过编译生成了个vfifo.o文件,然后通过insmod vfifo.o命令加载模块,成功,最后通过mknod /dev/vfifo c 241 0 实现文件节点的创建,但显示:mknod: ‘vfifo’: 文件已存在
请问这是什么问题,求解,我是菜鸟、刚接触linux不久。。。
望高手解答啊、、本人感激不尽~~~
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
内核模块编译出来不是.ko文件吗?
到/dev目录看看有没有vfifo节点。
有可能你的源码没有自动创建节点的功能,所以需要自己mknod,这种情况下,你rmmod的时候,它不会自己去掉节点的,不过可以直接使用,如果major和minor不变的话。
如果改变了的话,你可以rm它就可以了。
回复 2# RoverMo
老内核是.o的
.o肯定是不正确 的。如果存在,用rm 删除就可以了。
回复 5# bin_linux96
2.4版linux驱动模块就是.o文件
是不是你的程序中已经实现自动创建设备节点啊