depmod
分析可载入模块的相依性
补充说明
depmod
命令可产生模块依赖的映射文件,用于构建嵌入式系统。这些生成的文件将被modprobe
命令使用。
语法
代码语言:javascript复制depmod [选项]
选项
-a
或--all
:分析所有可用的模块;-d
或--debug
:执行排错模式;-e
:输出无法参照的符号;-i
:不检查符号表的版本;-m <文件>
或--system-map <文件>
:使用指定的符号表文件;-s
或--system-log
:在系统记录中记录错误;-v
或--verbose
:执行时显示详细的信息;-V
或--version
:显示版本信息;--help
:显示帮助。
实例
代码语言:javascript复制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
是我编译的 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
。