Linux Kernel HOWTO 中译版 |
|
|
|
| 2004-02-14 Brian Ward 译者: C.W.Huang & Asd L. Chen http://www.math.psu.edu/ward/ |
|
| |
可载入模组能够节省内存,而且很容易设定.模组的范围已经包含了文件系统,以太网卡驱动程序,磁带机,打印机驱动程序,还有更多.
9.1 安装模组工具
模组工具可以从你取得核心的地方找到,如 modules-x.y.z.tar.gz; 选择与你目前核心版本相等或稍低的最接近的 x.y.z.用 `tar zxvf modules-x.y.z.tar.gz' 解开. cd 到它产生的目录(modules-x.y.z),看一下 README,然后按照安装指示执行 (通常很简单,就像 make install 之类的).然后你在 /sbin 应该会有这些程序 insmod, rmmod, ksyms, lsmod, genksyms, modprobe, 以及 depmod.如果你想的话,可以用 insmod 里的范例驱动程序``hw''来测试这些工具; 参见 INSTALL 档里的细节说明.
insmod 指令将一个模组插入运行中的核心.模组通会以 .o 为结尾; 上面提到的范例程序就叫做 drv_hello.o,因此要插入此模组,就用 `insmod drv_hello.o'.要了解目前核心正在使用的模组,用 lsmod 指令.输出看起来像这样:
blah# lsmod
Module: #pages: Used by:
drv_hello 1
`drv_hello' 是这模组的域名,它用了一页 (4K) 的内存,而且目前没有其它的核心模组依赖於它.要移除此模组,用 `rmmod drv_hello'.注意 rmmod 需要的是模组域名,而不是文件域名; 就是你从 lsmod 指令列出来的.其余工具的作用在在线手册中都有说明.
9.2 与核心发行的模组
在 2.0.30 版中,几乎所有的东西都可以变成可载入模组.要使用可载入模组,首先确定你没有将其配置到正常的核心里,也就是说,在 `make config' 时不是回答 y.编译新核心并用它来开机.然后,再次 cd 到 /usr/src/linux,然后执行 `make modules'.这将编译所有你未指定在核心配置里的模组,并将其连结到 /usr/src/linux/modules.你可以直接由此目录使用,或是执行 `make modules_install' 将其安装到 /lib/modules/x.y.z,其中 x.y.z 是核心版本.
这对处理文件系统上特别便利.你可能并不经常使用 minix 或 MS-DOS 的文件系统.例如,如果我遇到一 MS-DOS 的软盘片,我会用 insmod /usr/src/linux/modules/msdos.o,并在使用完成後用 rmmod msdos 指令将其去掉.此过程大约可以节省核心 50K 左右的内存.对于 minix 文件系统有一点要注意的就是,为了要使用``急救磁盘'',你应该总是直接将它配置到核心中.
|
| |
|
|
| |
|
发表评论
关闭窗口
|
|
|
|