9.4. 内核驱动,子系统和模块

在编译一个制定的内核之前请三思一下这么做的理由, 如果仅是需要某个特定的硬件支持的话, 那么很可能已经存在一个现成的模块了。

内核模块存放在目录 /boot/kernel 中,并能由 kldload(8) 命令加载入正在运行的内核。 基本上所有的内核驱动都有特定的模块和手册页。比如, 下面提到的 ath 无线以太网驱动。 在这个设备的联机手册中有以下信息:

Alternatively, to load the driver as a module at boot time, place the
following line in loader.conf(5):

    if_ath_load="YES"

遵照示例,在 /boot/loader.conf 中加入 if_ath_load="YES" 则能在机器启动的时候动态加载这个模块。

某些情况下,则没有相关的模块。通常是一些子系统和非常重要的驱动, 比如,快速文件系统 (FFS) 就是一个内核必需的选项。 同样的还有网络支持 (INET)。不幸的是, 分辨一个驱动是否必需的唯一方法就是检查测试以下那个模块本身。

警告:

去除某个驱动的支持或某个选项会非常容易得到一个坏掉的内核。 举例来说,如果把 ata(4) 驱动从内核配置文件中去掉, 那么一个使用 ATA 磁盘设备的系统可能就变得无法引导,除非有在 loader.conf 中加载。当你无法确定的时候, 请检查一下那个模块并把它留在你的内核配置中。

本文档和其它文档可从这里下载: ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

如果对于FreeBSD有问题,请先阅读 文档,如不能解决再联系 <questions@FreeBSD.org>.

关于本文档的问题请发信联系 <doc@FreeBSD.org>.