请问如何在卸载驱动程序时删除设备节点

发布于 2022-09-19 13:40:27 字数 484 浏览 7 评论 0


驱动开发与调试过程中:

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

网上搜索,答案是:

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

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

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

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

发布评论

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

评论(8

守护在此方 2022-09-26 13:40:27

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

羞稚 2022-09-26 13:40:27


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 编辑 ]

翻了热茶 2022-09-26 13:40:27

你可以下载ldd3的源代码包,看看scull_unload是怎么工作的

其实就是一个rm操作

莳間冲淡了誓言ζ 2022-09-26 13:40:27

模块成功卸掉了吗?用lsmod看看

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

淤浪 2022-09-26 13:40:27

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

肤浅与狂妄 2022-09-26 13:40:27

为什么删除不了?能说明一下吗?用的是什么文件系统
以后遇到这种问题也好预防一下

简单 2022-09-26 13:40:27

设备节点 何所使用的文件系统无关。

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

凡尘雨 2022-09-26 13:40:27

回复 1# robotlee2002

    你需要先卸载驱动程序,也就是 rmmod ****
然后再rm /dev/***  这样就可以了。

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