您的位置:首页 > 其它

rmmod: chdir(/lib/modules): No such file or directory解决方案

2017-03-29 10:51 441 查看
在编写内核模块化驱动后,要用insmod 模块名.ko来加载该驱动,然后用rmmod 模块名(注:没有.ko)来卸载刚刚加载的模块,可是就在这个时候你可能会遇到如下错误:

rmmod: chdir(/lib/modules): No such file or directory

这时你就必须创建/lib/modules/内核版本号-用户名 这样一个空目录了,否则不能卸载ko模块但是这样到可以卸载掉模块了,不过会一直有这样一个提示:

rmmod: module 模块名' not found

初步发现,原来是编译kernel时使用make modules_install生成的一个目录,但经测试得知rmmod: module '模块名' not found来自于busybox,并不是来自kernel 解决方案如下:

使用如下源码生成rmmod命令,就可以没有任何提示的卸载ko模块了

#include

#include

#include

#include

#include

#include

int main(int argc, char *argv[])

{

const char *modname = argv[1];

int ret = -1;

int maxtry = 10;

while (maxtry-- > 0) {

ret = delete_module(modname, O_NONBLOCK | O_EXCL); //系统调用sys_delete_module

if (ret
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: