For the complete documentation index, see llms.txt. This page is also available as Markdown.

10.4.配置文件

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

如果 /usr/src/ 目录不存在或为空,则说明源代码未安装。可以按照 "使用 Git" 中的说明通过 Git 安装源代码。

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

不要直接编辑 GENERIC 文件。相反,应将文件复制并编辑复制的文件。命名惯例是使用全大写字母的名称。在管理多台具有不同硬件的 FreeBSD 机器时,建议将其命名为机器的主机名。以下示例为 amd64 架构的 GENERIC 配置文件创建名为 MYKERNEL 的副本:

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

现在可以使用任何 ASCII 文本编辑器自定义 MYKERNEL。默认编辑器是 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 的差异,如下所示:

使用这种方法,本地配置文件表示与 GENERIC 内核的本地差异。在执行升级时,除非使用 nooptionsnodevice 明确防止,否则 GENERIC 中新增的特性也会添加到本地内核中。有关配置指令及其说明的完整列表,请参阅 config(5)

注意

要构建包含所有可用选项的文件,请以 root 用户身份运行以下命令:

最后更新于