转载: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。