8.4. 配置文件

为了要建立自定义核心配置文件并编译自定义核心,必须先安装完整的FreeBSD源码树。

/usr/src/目录不存在或者是空的,代表尚未安装。源码可以使用Subversion并依据第 A.3 节 “使用Subversion中的操作说明来安装。

安装源代码后,请查看/usr/src/sys的内容。此目录包含许多子目录,包括那些表示以下受支持的体系结构的子目录:amd64, i386, powerpc, 和 sparc64。特定体系结构目录中的所有内容仅处理该体系结构,代码的其余部分是所有平台共有的独立于机器的代码。每个受支持的体系结构都有一个conf子目录,其中包含该体系结构的GENERIC内核配置文件。

请不要直接对GENERIC档案做编辑。复制该档案为另一个名称,并对复制出来的档案做编辑,习惯上文件名会全部使用大写字元。当维护多台安装不同的硬件的FreeBSD机器时,将文件名后方加上机器的主机名称(Host name)是个不错的方法。以下示例使用amd64构架的GENERIC配置文件建立了一个复本名称为MYKERNEL

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

现在可以使用任何ASCII文字编辑器来自定义MYKERNEL。预设的编辑器为vi,在FreeBSD也内置一个易于初学者使用的编辑器叫做ee

核心配置文件的格式很简单,每一行会含有代表装置(Device)或子系统(Subsystem)的关键字、参数以及简短的说明。任何在#符号之后的文字会被当做注释并且略过。要移除核心对某个装置或子系统的支持,仅需要在代表该装置或子系统的行前加上#符号。请不要在您还不了解用途的行前加上或移除#符号。

警告:

移除对装置或选项的支持很容易会造成核心损坏。例如,若从核心配置文件ata(4)驱动程序,那么使用ATA磁盘驱动程序的系统便会无法开机。因此当您不确定时,请在核心保留该项目的支持。

除了在配置文件中提供的简短说明之外,尚有其他的说明在NOTES档案中,可在与该构架GENERIC相同的目录底下找到。要查看所有构架通用的选项,请参考/ usr/src/sys/conf/NOTES

提示:

当完成自定义的核心配置文件,请备份到/usr/src位置之外。

或者,将核心配置文件放在其他地方,然后建立一个符号连接(Symbolic link)至该档案:

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

配置文件中可以使用include指令(Directive)。该指令可以引用其他配置文件到目前的配置文件,这让只需根据现有档案设定做些微调整时更简单。若只有少量的额外选项或驱动程序需要设定,该指令可引用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 && make LINT

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

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

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