Linux 内核模块的相关操作命令
## lsmod
查看已经安装的模块
```
lsmod
Module SizeUsed by
binfmt_misc 204801
vmw_vsock_vmci_transport 286722
vsock 368643 vmw_vsock_vmci_transport
snd_ens1371 286722
snd_ac97_codec 1310721 snd_ens1371
gameport 163841 snd_ens1371
ac97_bus 163841 snd_ac97_codec
...
```
## modinfo
显示模块信息
```
modinfo nfs.ko
filename: /home/matt/test/kernel/linux-3.2.0-psp04.06.00.11/fs/nfs/nfs.ko
license: GPL
author: Olaf Kirch <okir@monad.swb.de>
depends: sunrpc,lockd
intree: Y
vermagic: 3.2.0 mod_unload modversions ARMv7 p2v8
parm: cache_getent:Path to the client cache upcall program (string)
parm: cache_getent_timeout:Timeout (in seconds) after which the cache upcall is assumed to have failed (ulong)
parm: enable_ino64:bool
parm: nfs4_disable_idmapping:Turn off NFSv4 idmapping when using 'sec=sys' (bool)
```
depends 显示出了模块的依赖项
## insmod
加载指定位置的模块
```
insmod /path-to-file/nfs.ko
```
如果依赖模块没有安装会提示 Unknown symbol...
使用时要指定模块的绝对路径。
## rmmod
卸载驱动模块
```
rmmod <module_name>
```
注意其中 ”module_name” 是 lsmod 显示的模块名称,而不是对应的 ko 文件名
## modprobe
用于挂载内核模块,挂载模块时不用指定模块文件的路径,也不用带文件的后缀。
modprobe nfs
相比 insmod 更智能些,不过限定了 ko 文件的位置。
实例:
```
modprobe nfs
RPC: Registered named UNIX socket transport module.
RPC: Registered udp transport module.
RPC: Registered tcp transport module.
RPC: Registered tcp NFSv4.1 backchannel transport module.
```
卸载模块:
```
modprobe -r nfs
modprobe: remove RPC: Unregistered named UNIX socket transport module.
'sunrpc': Resou RPC: Unregistered udp transport module.
rce temporarily RPC: Unregistered tcp transport module.
unavailable
RPC: Unregistered tcp NFSv4.1 backchannel transport module.
```
## depmod
用于分析可载入模块的相依性,供 modprobe 在安装模块时使用。
depmod 通过读取 `/lib/modules/$(uname -r)` 目录下的每一个模块来创建一个记录模块相依性的列表。
页:
[1]