免费注册 查看新帖 |

Chinaunix

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

请问如何在卸载驱动程序时删除设备节点 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-07-16 10:29 |只看该作者 |倒序浏览

驱动开发与调试过程中:

在驱动的exit,我unregister_chrdev了设备。
但重新insmod驱动时,会提示错误,因为前一次装载驱动时创建在/dev下的device_name还在。
必须删掉才能再次insmod。


网上搜索,答案是:

“ 除了卸载模块,你还经常需要在卸载驱动程序时删除设备节点。我们用加载模块时使用的一对脚本中的另一个来完成这项工作。对于我们的样例设备,脚本scull_unload完成这个工作,作为选择,你也可以调用scull.init中的stop。”

在嵌入式的平台文件系统中,找了没有scull.ini这个文件
请问具体是如何做,thanks,感谢!

论坛徽章:
0
2 [报告]
发表于 2008-07-16 13:44 |只看该作者

回复 #1 robotlee2002 的帖子

卸载模块之后,用 rm 命令删除设备节点

论坛徽章:
0
3 [报告]
发表于 2008-07-16 14:31 |只看该作者

不能rm掉


thanks to seaquester

可能是由于文件系统的缘故,设备节点不能rm掉

#rm -f /dev/uart2/rs422-dma
rm: unable to remove `/dev/uart2/rs422-dma': Operation not permitted


请问:

网上搜索,答案是:
“ 除了卸载模块,你还经常需要在卸载驱动程序时删除设备节点。我们用加载模块时使用的一对脚本中的另一个来完成这项工作。对于我们的样例设备,脚本scull_unload完成这个工作,作为选择,你也可以调用scull.init中的stop。”


怎么具体做的呢? 感谢




[ 本帖最后由 robotlee2002 于 2008-7-16 14:33 编辑 ]

论坛徽章:
0
4 [报告]
发表于 2008-07-16 15:15 |只看该作者
你可以下载ldd3的源代码包,看看scull_unload是怎么工作的

其实就是一个rm操作

论坛徽章:
0
5 [报告]
发表于 2008-07-16 16:39 |只看该作者
模块成功卸掉了吗?用lsmod看看

scull_unload 就是先rmmod模块,然后rm 设备节点

论坛徽章:
0
6 [报告]
发表于 2008-07-18 21:08 |只看该作者

谢谢各位。

问题还没有解决,搞得现在调试很麻烦。每次装载一次驱动,卸载后,
下一次insomod,得重启一下ARM板。

论坛徽章:
0
7 [报告]
发表于 2008-07-18 21:42 |只看该作者
为什么删除不了?能说明一下吗?用的是什么文件系统
以后遇到这种问题也好预防一下

论坛徽章:
0
8 [报告]
发表于 2008-07-24 23:47 |只看该作者
设备节点 何所使用的文件系统无关。

你的设备节点是有 udev/mdev 维护的吗?

论坛徽章:
0
9 [报告]
发表于 2011-11-01 11:54 |只看该作者
回复 1# robotlee2002


    你需要先卸载驱动程序,也就是 rmmod ****
然后再rm /dev/***  这样就可以了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP