转载:http://blog.lmtw.com/b/18215/archives/2010/71074.html

depmod(depend module)

功能说明:分析可载入模块的相依性。

语  法:

depmod [-b basedir]  [-e]  [-F System.map]  [-n]  [-v]  [version]  [-A]

depmod [-e]  [-FSystem.map]  [-n]  [-v]  [version]  [filename ...]

补充说明:depmod可检测模块的相依性,供modprobe在安装模块时使用。

参  数:
 -a或--all  分析所有可用的模块。

-b              如果你的模块不是在默认路径(/lib/modules/version)下,你可以用这个选项指定所在的目录。在构建嵌入式系统中会用到。

-e             当与-F同时使用时,用以报告unresolved symbols错误

-F             后跟System.map

-v              打印过程信息

-A             快速操作

--help  显示帮助。

在构建嵌入式系统时,需要由这个命令来生成相应的文件,由modprobe使用。

例子:

depmod
-b /home/windsome/EMMA3PF-KernelSource-20080626/install_pos -e -F
./boot/System.map -v 2.6.18_pro500-bcm91250-mips2_fp_be -A -a

/home/windsome/EMMA3PF-KernelSource-20080626/install_pos 是我make mod_install 后,所有模块的存放路径。

./boot/System.map 是make linux 后生成,我拷贝到此目录的。

2.6.18_pro500-bcm91250-mips2_fp_be 是我build的linux的版本

编译linux过程及执行depmod的例子:

genkernel.sh (at linux-2.6.18_pro500)
#######
export INSTALL_ROOT_EMMA3PF="/home/windsome/EMMA3PF-KernelSource-20080626/install_pos"
export INSTALL_MOD_EMMA3PF="/home/windsome/EMMA3PF-KernelSource-20080626/install_pos"
rm /home/windsome/EMMA3PF-KernelSource-20080626/install_pos/lib -rf
rm /home/windsome/EMMA3PF-KernelSource-20080626/install_pos/boot/* -rf
cd <linux_src_dir>
make
make modules_install
cp vmlinux System.map /home/windsome/EMMA3PF-KernelSource-20080626/install_pos/boot/ -p
cd /home/windsome/EMMA3PF-KernelSource-20080626/install_pos
depmod
-b /home/windsome/EMMA3PF-KernelSource-20080626/install_pos -e -F
./boot/System.map -v 2.6.18_pro500-bcm91250-mips2_fp_be -A -a

其他用法:


linux桌面系统中,当你编译了新的驱动,为了能够用modprobe ***加载模块, 你需要先将模块拷贝到/lib/modules
/2.6.31-20-generic目录下,然后运行sudo depmod
-a将模块信息写入modules.dep,modules.dep.bin,modules.alias.bin,modules.alias和
modules.pcimap文件中。

如,我编译了一个新的wifi驱动r8192se_pci.ko,将其拷贝到/lib
/modules/2.6.31-20-generic/wireless下,然后到/lib/modules/2.6.31-20-generic运行
depmod -a,之后可以在任意目录运行modprobe r8192se_pci。

05-11 15:24