10.4.配置文件

为了创建自定义内核配置文件并构建自定义内核,必须首先安装完整的 FreeBSD 源代码。

如果 /usr/src/ 不存在或为空,则尚未安装源代码。可以使用 Git 安装源代码,方法在 “使用 Git” 中有说明。

安装源代码后,请查看 /usr/src/sys 的内容。此目录包含许多子目录,包括表示以下支持的架构的子目录:amd64i386powerpcsparc64。特定架构目录内的所有内容仅涉及该架构,而其余代码是所有平台通用的机器无关代码。每个受支持的架构都有一个包含该架构的 GENERIC 内核配置文件的 conf 子目录。

不要对 GENERIC 进行编辑。而应该将该文件复制为不同的名称再对副本进行编辑。惯例是使用全大写的名称。当维护具有不同硬件的多台 FreeBSD 计算机时,建议使用机器的主机名命名它。以下示例创建了 amd64 架构的 GENERIC 配置文件的一个副本,命名为 MYKERNEL

# cd /usr/src/sys/amd64/conf
# cp GENERIC MYKERNEL

MYKERNEL 现在可以使用任何 ASCII 文本编辑器进行自定义。默认编辑器是 vi,但也安装了 FreeBSD 中对初学者更容易的编辑器 ee。

内核配置文件的格式很简单。每一行包含一个关键字,表示一个设备或子系统,一个参数和一个简要描述。# 后的任何文本都被视为注释并被忽略。要删除对设备或子系统的内核支持,请在表示该设备或子系统的行的开头放置 #。不要为任何不理解的行添加或删除 #

警告

删除对设备或参数的支持可能导致内核无法正常工作,这一点需要特别注意。例如,如果从内核配置文件中删除了 ata(4) 驱动程序,则使用 ATA 磁盘驱动程序的系统可能无法引导。如果有疑问,只需保留对内核的支持。

除了此文件中提供的简要描述外,附加描述包含在 NOTES 中,该文件位于与该架构的 GENERIC 相同的目录中。对于与架构无关的选项,请参考 /usr/src/sys/conf/NOTES

技巧

在完成自定义内核配置文件的定制后,将备份副本保存到 /usr/src 之外的位置。或者,将内核配置文件保存在其他位置,并创建指向该文件的符号链接:

# cd /usr/src/sys/amd64/conf
# mkdir /root/kernels
# cp GENERIC /root/kernels/MYKERNEL
# ln -s /root/kernels/MYKERNEL

内核配置文件中提供了一个 include 指令,可用于配置文件中。这可使在当前配置文件中包含另一个配置文件,使得相对于现有文件容易维护小的更改。如果只需要少量额外的选项或驱动程序,则允许相对于 GENERIC 保持一个增量,如以下示例所示:

include GENERIC
ident MYKERNEL

options         IPFIREWALL
options         DUMMYNET
options         IPFIREWALL_DEFAULT_TO_ACCEPT
options         IPDIVERT

使用此方法,本地配置文件表达了相对于 GENERIC 内核的本地差异。随着升级的执行,添加到 GENERIC 的新功能也将添加到本地内核,除非使用 nooptionsnodevice 明确阻止它们。可以在 config(5) 中找到配置指令及其描述的综合列表。

注意

要构建一个包含所有可用参数的文件,请以 root 身份运行以下命令:

# cd /usr/src/sys/arch/conf

最后更新于

FreeBSD 中文社区