【linux命令讲解大全】028.深入了解depmod命令:模块依赖分析与构建

2024-03-02 11:34:59 浏览数 (1)

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 的示例:

代码语言:javascript复制
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.depmodules.dep.binmodules.alias.binmodules.aliasmodules.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

0 人点赞