必須創建/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空目錄就完全可以了.