我正在学习如何编写字符设备驱动程序,使用内核模块编程指南并使用mknod
在/dev
中创建了一个节点来与我的驱动程序通信。
然而,在查看手册页和观察到rmnod
不存在的情况下,我找不到任何明显的方法来删除它。
什么是正确的方法来撤销mknod
的效果,安全地移除在/dev
中创建的节点?
我正在学习如何编写字符设备驱动程序,使用内核模块编程指南并使用mknod
在/dev
中创建了一个节点来与我的驱动程序通信。
然而,在查看手册页和观察到rmnod
不存在的情况下,我找不到任何明显的方法来删除它。
什么是正确的方法来撤销mknod
的效果,安全地移除在/dev
中创建的节点?
正确的命令只是rm
:)
mknod
创建的设备节点只是包含设备主要和次要编号的文件。当您第一次访问该文件时,Linux会查找广告该主/次要的驱动程序并加载它。然后,您的驱动程序处理与该文件的所有I/O。
当您删除设备节点时,通常的Un * x文件行为适用:Linux将等待直到没有对该文件的更多引用,然后它将从磁盘中删除。
您的驱动程序实际上不会注意到这一点。Linux不会自动卸载模块。您的驱动程序将不再接收任何请求但将准备好以防有人重新创建设备节点。
rm
。 - Keith Thompson