内核模块insmod、rmmod过程中问题解决Device or resource busy

内核模块insmod、rmmod过程中问题解决Device or resource busy

  • 内核模块insmod加载时没有问题,卸载时显示Device or resource busy:
    • 排查过程1:一般当你已经加载了模块,再次insmod XXX.ko时,会出现insmod:ERROR:could not insert module demo.ko:File exists![](https://img-blog.csdnimg.cn/20200724145859116.png)
    • 排查过程2:但是我自己明明是第一次卸载这个模块为什么会报错:
    • 解决方法:

内核模块insmod加载时没有问题,卸载时显示Device or resource busy:

一般产生这种问题,insmod加载时没有问题,说明程序中模块入口module_init执行成功了,但是出口module_exit执行失败,其实终极解决方案就是将ubuntu重新启动,就可解决,但是总不能一直重启吧,后来找了找资料发现是编译器的问题,编译的内核模块和内核不兼容。因为我是在ubuntu里加载,那就是我的gcc编译器的版本和ubuntu内核不兼容,所以我用了板子测试,内核版本kernel-3.4.39,编译器版本toolchain-4.5.1,在板子上完全没有问题,于是更新了ubuntu的编译器版本搞定了:内核模块insmod、rmmod过程中问题解决Device or resource busy_第1张图片

排查过程1:一般当你已经加载了模块,再次insmod XXX.ko时,会出现insmod:ERROR:could not insert module demo.ko:File exists

排查过程2:但是我自己明明是第一次卸载这个模块为什么会报错:

我用lsmod查看了所有的模块,发现我自己的demo显示permanent,也就是永久的,只能重新给ubuntu升级编译器版本内核模块insmod、rmmod过程中问题解决Device or resource busy_第2张图片

解决方法:

升级ubuntu的编译器版本

你可能感兴趣的:(linux)