开发板上rmmod卸载模块必须创建/lib /modules/2.6.30.4这样一个空目录
2010-05-03 16:47
316 查看
必须创建/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生成的一个目录,
luther@gliethttp:/vobs/works/linux-2.6.30.4$
make modules_install INSTALL_MOD_PATH=/vobs/gliethttp
luther@gliethttp:/vobs/works/linux-2.6.30.4$
tree /vobs/gliethttp/
/vobs/gliethttp/
`-- lib
`-- modules
`-- 2.6.30.4
|-- build -> /vobs/works/linux-2.6.30.4
|-- kernel
| |-- drivers
| | `--
scsi
| | `-- scsi_wait_scan.ko
|
`-- fs
| `-- nls
| `--
nls_cp936.ko
|-- modules.alias
|--
modules.ccwmap
|-- modules.dep
|--
modules.ieee1394map
|-- modules.inputmap
|-- modules.isapnpmap
|-- modules.ofmap
|-- modules.order
|-- modules.pcimap
|--
modules.seriomap
|-- modules.symbols
|--
modules.usbmap
`-- source ->
/vobs/works/linux-2.6.30.4
10 directories, 14 files
然后将上面生成的
modules目录拷贝到开发板的/lib下即可.
也可以直接释放到initramfs中
luther@gliethttp:/vobs/works/linux-2.6.30.4$
make modules_install INSTALL_MOD_PATH
=/vobs/initramfs
但
是kernel目录下的包含了所有.ko,这是我所不期望的,因为我把.ko放在一个我们独立的存储区,
但是将kernel目录删除之后,就又会
提示:rmmod: module 'nls_cp936' not found
,
当然模块是已经卸载了,但有这种提示总让人感觉怪怪的,
所以上面的拷贝就没有了意义,
luther@gliethttp:/vobs/initramfs/lib/modules/2.6.30.4$
rm -rf build kernel source
后来发现提示:rmmod:
module 'nls_cp936' not found来自于busybox,
并不是来自kernel,
所以使用如下源码生成rmmod命
令,就可以没有任何提示的卸载ko模块了[luther.gliethttp]
luther@gliethttp:/vobs/tmp$
arm-linux-gcc -o rmmod rmmod.c
luther@gliethttp:/vobs/tmp$
arm-linux-strip -s rmmod
luther@gliethttp:/vobs/tmp$ cp rmmod
/vobs/nfs/
这样只需要创建/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生成的一个目录,
luther@gliethttp:/vobs/works/linux-2.6.30.4$
make modules_install INSTALL_MOD_PATH=/vobs/gliethttp
luther@gliethttp:/vobs/works/linux-2.6.30.4$
tree /vobs/gliethttp/
/vobs/gliethttp/
`-- lib
`-- modules
`-- 2.6.30.4
|-- build -> /vobs/works/linux-2.6.30.4
|-- kernel
| |-- drivers
| | `--
scsi
| | `-- scsi_wait_scan.ko
|
`-- fs
| `-- nls
| `--
nls_cp936.ko
|-- modules.alias
|--
modules.ccwmap
|-- modules.dep
|--
modules.ieee1394map
|-- modules.inputmap
|-- modules.isapnpmap
|-- modules.ofmap
|-- modules.order
|-- modules.pcimap
|--
modules.seriomap
|-- modules.symbols
|--
modules.usbmap
`-- source ->
/vobs/works/linux-2.6.30.4
10 directories, 14 files
然后将上面生成的
modules目录拷贝到开发板的/lib下即可.
也可以直接释放到initramfs中
luther@gliethttp:/vobs/works/linux-2.6.30.4$
make modules_install INSTALL_MOD_PATH
=/vobs/initramfs
但
是kernel目录下的包含了所有.ko,这是我所不期望的,因为我把.ko放在一个我们独立的存储区,
但是将kernel目录删除之后,就又会
提示:rmmod: module 'nls_cp936' not found
,
当然模块是已经卸载了,但有这种提示总让人感觉怪怪的,
所以上面的拷贝就没有了意义,
luther@gliethttp:/vobs/initramfs/lib/modules/2.6.30.4$
rm -rf build kernel source
后来发现提示:rmmod:
module 'nls_cp936' not found来自于busybox,
并不是来自kernel,
所以使用如下源码生成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 ) ) ; } |
arm-linux-gcc -o rmmod rmmod.c
luther@gliethttp:/vobs/tmp$
arm-linux-strip -s rmmod
luther@gliethttp:/vobs/tmp$ cp rmmod
/vobs/nfs/
这样只需要创建/lib/modules/2.6.30.4空目录就完全可以了.
相关文章推荐
- 卸载驱动模块时,提示出错: rmmod: chdir(/lib/modules): No such file or directory
- 卸载内核模块失败 rmmod '/lib/modules': No such file or directory
- OK6410开发板下rmmod: chdir(/lib/modules): No such file or directory 解决方法
- 卸载驱动出现:rmmod: can't change directory to '/lib/modules': No such file or directory
- 以前的某个程序安装在计算机上创建挂起文件操作,运SQL_server卸载了重装,往往是装不了.在安装SQL200的时候有个提示出现“以前的某个程序安装在计算机上创建挂起文件操作,运行安装程序之前必须重新启动计算机”,重起以后同样是这样..是什么原因阿?"后
- 卸载驱动出现:rmmod: can't change directory to '/lib/modules': No such file or directory
- yii 学习笔记五、通过gii创建modules(模块)
- 自己制作一个node_modules的模块
- rmmod: chdir(/lib/modules): No such file or directory 解决方法
- IDEA中创建war类型的maven项目中有一个src目录而Eclipse创建的war类型的项目有两个src
- 《PHP---自定义创建目录文件方法》----如果目录已存在,该目录必须为空才可继续创建
- 因祸得福--学会了怎样创建并使用一个公用的模块类
- 初识node 创建或者删除一个文件目录
- rmmod 无法卸载模块问题
- rmmod: chdir(/lib/modules): No such file or directory 解决方法
- rmmod: chdir(/lib/modules): No such file or directory 解决方法
- 通过Eclipse创建一个Project ,Java Project 和Tomcat Project 生成的目录和文件
- rmmod: chdir(/lib/modules): No such file or directory 解决方法
- Android在SDCard创建目录_卸载应用同时删除工程创建的文件
- 02-创建一个ROS的WorkSpace目录