FreeBSD handbook中文版 9 配制FreeBSD 的内核( 二 )


用的是诸如Dos 这样的系统,那GENERIC 配置文件就看起来非常困难,所以在下面的配置文
件章节将慢慢地、仔细地进行介绍 。
注意:确信经常检查/usr/src/UPDATING,在你执行任何修改之前,记得要用最新发布
的源代码来同步你的源代码树 。在这个文件中所有重要的升级都要记下来 。
/sur/src/UPDATING 总是符合你的FreeBSD 源代码版本,而且总是比手册所说的信息更加精
确 。
当你完成以上步骤之后,如果你使用的FreeBSD 是4.0 之前的版本的话,就执行下面的
第2 页FreeBSD 使用手册
命令进行编译和安装内核;如果你使用的是4.0 版或是之后的版本,你的/usr/src/目录可
能已经包含了sys/子目录了 。
注意:如果你设法从一个旧版本的FreeBSD 升级你的内核,你可能必须从你得到新内核
源代码的地方,找到新版的配制文件,重建并安装它 。
# /usr/sbin/config MYKERNEL
# cd ../../compile/MYKERNEL
# make depend
# make
# make install
如果你刚升级到一个比较新的版本,确信你已经重建了整个系统,然后运行下面的命令:
# cd /usr/src
# make buildkernel KERNCONF=MYKERNEL
# make installkernel KERNCONF=MYKERNEL
如果你还没有升级你的源代码树,那你应当按顺序执行:
config,make depend,make,make install
警告:如果你已经升级了你的源代码,你必须使用make buildkernel 方法来定制你的
内核 。否则,用旧的工具来定制内核,可能会引起错误 。如果你已经升级了源代码,不要
使用config/make 来定制内核 。
新的内核将会被拷贝到/kernel 目录下,而旧的内核将会被移到/kernel.old 。现在,
关闭系统,然后重新用你的内核启动系统 。如果发生错误,在这章结尾会有一些故障的解决
办法 。一旦你的新内核不能启动,请务必读一下有关如何恢复的章节 。
注意:如果你已经加入了新的设备(如声卡),你可能在使用之前,要先在你的/dev 目
录下加入这些设备节点 。
9.4 配置文件
内核设置的格式是很简单的,每一行包含了一个关键词(keyWord)与一个或多个参数,
而大多数的设置都只包含一个参数 。#号之后的文字都是注释,会被程序忽略掉 。下面的每
个小节,将依次介绍每个列在GENERIC 中的参数,虽然各相关主题(如网络)的关键词会放在
同一小节,但是这些关键词可能位于GENERIC 的很多地方 。详细地列出各个选项(option),
而LINT 列出了绝大部分的选项(options),比起在同一目录下的GENERIC,有更详细的解释 。
第3 页FreeBSD 使用手册
如果你不能确定某一行设定的目的是否必要,请先看看LINT 。
目前内核在处理各个选项上正转到一个比较好的模式 。一般地,设置文件中的各个选项
都转换到内核程序的Makefile 中,属于CFLAGS 的一个-D 参数 。时间一长,就造成了一个
选项处理机制的问题,没有人知道在哪个文件中参考使用了那个选项 。
在新的机制中,使用#ifdef 来参考选项的程序代码是存放在由执行config 时所产生的
opt_foo.h 。由config 所产生的有效的选项清单存储在两个文件里:独立于系统架构的选项
放在/sys/conf/options,与系统架构有关的选项则放在/sys/arch/conf/options.arch,其
中arch 的一个例子便是i386 。
数字的引号限制(Quoting numbers): 目前所有FreeBSD 版本,包括3-stable
版,其内核设置文件中如果有任何属于文字形式的数字(如i386),必须用双引号引
起来,不然执行config 时会出错 。
如果数字是表示数目、个数,如maxuser 64 这个设置,则不要加双引号 。目
前FreeBSD CURRENT 版本已经去掉上述限制,不论是哪种形式的数字都不需要加双

推荐阅读