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



 

 

 

 

必须创建/lib/modules/2.6.30.4这样一个空目录,否则不能卸载ko模块.
# rmmod nls_cp936
rmmod: chdir(/lib/modules): No such file or directory
但是这样倒是可以卸载nls_cp936,不过会一直有这样一个提示:
rmmod: module 'nls_cp936' not found

 

 

 

 

初步发现,原来这是编译kernel时使用make modules_install生成的一个目录,

但是经测试得知,rmmod: module 'nls_cp936' not found来自于busybox,并不是来自kernel,

1.创建/lib/modules/2.6.30空目录就.

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

#include <stdio.h>

#include <stdlib.h>

#include <unistd.h>

#include <fcntl.h>

#include <string.h>

#include <errno.h>

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 < 0 && errno == EAGAIN)

usleep(500000);

else

break;

}

if (ret != 0)

printf("Unable to unload driver module \"%s\": %s\n",

modname, strerror(errno));

}

 

3.把生成的命令复制到文件系统

# arm-linux-gcc -static -o rmmod rmmod.c

# arm-linux-strip -s rmmod

# cp rmmod /nfs/

cp /nfs/rmmod /sbin

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/qiaoliang328/archive/2010/01/15/5191821.aspx

你可能感兴趣的:(linux驱动)