1 | depmod
|
2 | ===
|
3 |
|
4 | 分析可载入模块的相依性
|
5 |
|
6 | ## 补充说明
|
7 |
|
8 | **depmod命令** 可产生模块依赖的映射文件,在构建嵌入式系统时,需要由这个命令来生成相应的文件,由modprobe使用。
|
9 |
|
10 | ### 语法
|
11 |
|
12 | ```shell
|
13 | depmod(选项)
|
14 | ```
|
15 |
|
16 | ### 选项
|
17 |
|
18 | ```shell
|
19 | -a或--all:分析所有可用的模块;
|
20 | -d或debug:执行排错模式;
|
21 | -e:输出无法参照的符号;
|
22 | -i:不检查符号表的版本;
|
23 | -m<文件>或system-map<文件>:使用指定的符号表文件;
|
24 | -s或--system-log:在系统记录中记录错误;
|
25 | -v或--verbose:执行时显示详细的信息;
|
26 | -V或--version:显示版本信息;
|
27 | --help:显示帮助。
|
28 | ```
|
29 |
|
30 | ### 实例
|
31 |
|
32 | ```shell
|
33 | 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
|
34 | ```
|
35 |
|
36 | * `/home/windsome/EMMA3PF-KernelSource-20080626/install_pos`是我`make mod_install`后,所有模块的存放路径。
|
37 | * `./boot/System.map`是`make linux`后生成,我拷贝到此目录的。
|
38 | * `2.6.18_pro500-bcm91250-mips2_fp_be`是我build的linux的版本。
|
39 |
|
40 | 编译linux过程及执行depmod的例子:
|
41 |
|
42 | ```shell
|
43 | genkernel.sh (at linux-2.6.18_pro500)
|
44 | #######
|
45 | export INSTALL_ROOT_EMMA3PF="/home/windsome/EMMA3PF-KernelSource-20080626/install_pos"
|
46 | export INSTALL_MOD_EMMA3PF="/home/windsome/EMMA3PF-KernelSource-20080626/install_pos"
|
47 | rm /home/windsome/EMMA3PF-KernelSource-20080626/install_pos/lib -rf
|
48 | rm /home/windsome/EMMA3PF-KernelSource-20080626/install_pos/boot/* -rf
|
49 | cd <linux_src_dir>
|
50 | make
|
51 | make modules_install
|
52 | cp vmlinux System.map /home/windsome/EMMA3PF-KernelSource-20080626/install_pos/boot/ -p
|
53 | cd /home/windsome/EMMA3PF-KernelSource-20080626/install_pos
|
54 | 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
|
55 | ```
|
56 |
|
57 | 其他用法:
|
58 |
|
59 | 在linux桌面系统中,当你编译了新的驱动,为了能够用`modprobe ***`加载模块, 你需要先将模块拷贝到`/lib/modules /2.6.31-20-generic`目录下,然后运行`sudo depmod -a`将模块信息写入modules.dep、modules.dep.bin、modules.alias.bin、modules.alias和modules.pcimap文件中。
|
60 |
|
61 | 如,我编译了一个新的wifi驱动r8192se_pci.ko,将其拷贝到`/lib/modules/2.6.31-20-generic/wireless`下,然后到`/lib/modules/2.6.31-20-generic`运行`depmod -a`,之后可以在任意目录运行modprobe r8192se_pci。
|
62 |
|
63 |
|