LINUX下可加载模块的几个工具

    当我们在make menuconfig把一些源码文件以作为编译控制项时,表示不编译内核,而是以模块(.ko)存在.此时,要生成.ko模块文件,需要借助下面的命令:

bash> cd /usr/src/linux-X.Y.Z
bash> make modules

    上述命令帮助我们生成目标内核的.ko模块文件.如果需要安装.ko文件,则需要借助下面的命令:

bash>make modules_install

    当然,上述一般在PC上才如此智能,如果是在嵌入式平台,一般需要手动加载.

   

    通常与模块(.ko)相关的工具有:insmod、rmmod、lsmod、modprobe、modinfo和depmod.

 

    1.insmod:

        常用的模块加载工具.

 

    2.rmmod:

        常用的模块卸载工具.

 

    3.lsmod:

        罗列当前系统所装载的模块.

 

    4.modprobe:

        modprobe是一个比insmod更智能的版本,它先分析/lib/modules/X.Y.Z/modules.dep文件再加载它所依赖的模块.例如要挂载一个USB笔式驱动器上的VFAT(Virtual File Allocation Table,虚拟文件根本表)分区,可以使用modprobe加载VFAT文件系统驱动程序:

bash>modprobe vfat
bash>lsmod
Modle          Size      Used  by
vfat           14208     0
fat            49052     1     vfat
nls_base       9728      2     vfat, fat

       lsmod一下,发现modprobe加载的是三个而不是一个模块.modprobe首先发现它不得不加载/lib/modules/X.Y.Z/kernel/fs/vfat/vfat.ko,当查看/lib/modules/X.Y.Z/modules.dep模块依赖文件的时候,它发现了如下代码并由此意识到自己必须首先加载另外2个模块:

/lib/modules/X.Y.Z/kernel/fs/vfat.ko
/lib/modules/X.Y.Z/kernel/fs/fat/fat.ko
/lib/modules/X.Y.Z/kernel/fs/nls/nls_base.ko

    于是它先加载了fat.ko和nls_base.ko这2个模块,之后加载vfat.ko,这样,所有挂载VFAT分区时所需要的模块都被自动加载了.

 

    5.modinfo:

        提取刚加载的模块的信息:

bash>modinfo vfat
filename: /lib/modules/X.Y.Z/kernel/fs/vfat/vfat.ko
license:GPL
description:VFAT filesystem support
...
depends: fat,nls_base


    6.depmod
        创建模块依赖关系的列表.常用选项如下:

# depmod -a 注:为所有列在/etc/modprobe.conf 或/etc/modules.conf 中的所有模块创建依赖关系,并且写入到modules.dep文件;
# depmod -e 注:列出已挂载但不可用的模块;
# depmod -n 注:列出所有模块的依赖关系,但仅仅是输出出来 (Write the dependency file on stdout only)




 

你可能感兴趣的:(Ldd)