网上搜了一番找到了答案
使用如下源码生成 rmmod 命令 , 就可以没有任何提示的卸载 ko 模块了
1. #include <stdio.h>
2. #include <stdlib.h>
3. #include <unistd.h>
4. #include <fcntl.h>
5. #include <string.h>
6. #include <errno.h>
7. int main(int argc, char *argv[])
8. {
9. const char *modname = argv[1];
10. int ret =-1;
11.
12. int maxtry = 10;
13.
14. while(maxtry--> 0){
15. ret = delete_module(modname, O_NONBLOCK | O_EXCL); //系统调用sys_delete_module
16. if(ret < 0 && errno == EAGAIN)
17. usleep(500000);
18. else
19. break;
20. }
21.
22. if(ret != 0)
23. printf("Unable to unload driver module \"%s\": %s\n",
24. modname, strerror(errno));
25. }
将上述代码保存名为rmmod.c的文件
#arm-linux-gcc -static -o rmmod rmmod.c
#arm-linux-strip -s rmmod
将该程序复制到/sbin目录中,覆盖原来的rmmod命令
#cp rmmod /sbin
赋予该命令执行权限
#chmod 777 rmmod 然后再按原来的方式加载和卸载模块,一点问题都没有了
发现找不到这个文件#include <unistd.h>
不过没关系 把这一行注释掉就OK;
编译
拷贝
修改权限
然后就可以了