rmmod 时出现device or resource busy

 
(解决办法:

1,  重启机器

2,  强行卸载模块rmmod –f module

需要进行内核配置:make menuconfig

可加载模块

3,  Loadable module support  --->

4,  [*] Enable loadable module support

5,  [*] Module unloading

6,  [ ]     Forced module unloading

7,  [*] Module versioning support (EXPERIMENTAL)

8,  [ ] Source checksum for all modules

9,  [*] Automatic kernel module loading

Enable loadable module support,很多人喜欢将全部功能、硬件支持一股脑的编进内核,而不是使用模块的方式。这样做非常不好(个人觉得)。其实我也做过嵌入式的开发,在针对特定硬件的平台下尽可能将内核编小,将始终是支持模块加载的。例如我们开发的防火墙就是做为内核的模块被加载的。使用模块支持,你的系统能具有更好的可扩充性。还有一个原因就是自己编写的功能模块、设备驱动模块(假设编写的质量不高)以模块方式工作引起Kernel Panic的机率要远远低于不支持模块全部编进内核的方式。讲了这么多,终于可以理直气壮的选上这一功能了。

Module unloading,不选这个功能,加载的模块就不能卸载。没什么需要多解释的,建议最好选上。

Forced module unloading,这个选项能强行卸载模块,即使内核认为这样并不安全,也就是说你可以把正在使用中的模快卸载掉。如果你不是内核开发人员或者骨灰级的玩家,不要选择这个选项。

这个模块加载上以后,可以通过查看.config文件中的MODULE_UNLOAD看是否选上。

你可能感兴趣的:(工作,Module,防火墙,嵌入式,平台)