2 FreeBSD手册——配置FreeBSD内核( 四 )


* 不使用bus_dma接口设备驱动,在使用了PAE支持的内核上,可能引起data corruption,
并且不被推荐 使用此类驱动 。因此,在支持PAE的5 。x中,内核将拒绝所有对PAE而言
无法识别的驱动 。
* 有些系统参数能依据总的可用内存调节系统内存资源的使用 。这些微调不需要依据PAE
系统的内存大 小来分配 。举一个kern.maxvnodes sysctl的例子,它控制了内核最大允许的
vnodes数 。调整它以及其它类似 参数需要慎重考虑,以设置为一个合理的数值 。
* 也许应该增大内核虚拟地址空间或者说是减少所有对内核资源的严重消耗,以避免KVM不
够用 。内核参 数KVA_PAGES 能用来增加KVA空间的大小.
对于所关心的性能及稳定性的问题,可以查看tuning的man手册 。pae的man手册有FreeBSD的
PAE支持最新信息。
----------------------------------------------------------------------
9.5 Making Device Nodes
注意:5 。0或其后续版本的用户应该略过这一节 。因为它们使用devfs来自动的分派设备节点 。
几乎内核中的每个设备在/dev 目录下都有对应的节点 。这些节点看上去是些普通文件,
但事实上是程序在使用对应的设备时,与内核联系的接入点 。当你一开始安装操作系统时,
脚本/dev/MAKEDEV就已经执行,并创建了常见的支持的设备节点 。然而,它并没有建立
所有设备,所以当你加入对新设备的支持时,注意确信对应的节点在这个目录下 。如果没有,
就加入它们 。这儿是一个简单的例子:
假设在内核中加入IDE CD-ROM 的支持 。可以这样加入:
device acd0
这意味着你该在/dev 目录下找一些以acd0 为文件名的开头的文件,通常是后面跟一个字母,
象c或是以r开头(表示这是一个raw 设备).那些文件不存在,则必须到/dev目录执行以下命令:
# sh MAKEDEV acd0
当这些脚本完成后,在/dev 目录下有acd0c 和racd0c 等几个入口文件,表示程序已经正确执行 。
以下是加入声卡节点的例子:
# sh MAKEDEV snd0
注意:当创建完诸如声卡这样的设备节点时,如果其它人有权访问你的机器,可能有
必要在/etc/fbtab 文件中添加这些节点来保护系统安全 。具体实施可以参考fstab的手册页 。
依上述的方法,建立所有不在GENERIC 里的硬件设备节点 。
注意: 所有的SCSI 控制器都使用一样的设备节点,所以你无须重新建立节点 。另外,
网卡与SLIP/PPP 虚拟设备并没有任何设备节点,所以你不必担心节点问题 。
----------------------------------------------------------------------
9.6 出现问题怎么办?
在定制一个内核时,可能会出现五类问题 。它们是:
配置错误:
当你给config 命令传递你的内核描述时出错,你可能在某个地方发生了一个小错误 。
幸运的是,config会显示出错的那一行的行号,你能很快找到出错地点并用vi
编辑器做修改 。例如,如果你 看到:
config: line 17: syntax error
你可以在vi 的命令模式输入17G 来跳到17 行(也就是出错的那行) 。和比较GENERIC
内核或其它参考资料,以确定你没有打字错误 。
编译错误:
如果编译命令失败,通常会在你的内核描述中提示一个错误,但config并没有能力找出
错误 。另外,查看一下你的配置信息,如果你仍然无法解决这个问题,可以把你的
内核配置文件发到FreeBSD 常规问题邮件列表
它将很快地被解决 。
安装新内核失败:
如果内核编译成功,但安装失败(make install 或是 make installkernel 命令失败),
第一件要检查的事情就是你的系统运行的安全级别是否是 1或更高 。内核的安装需要

推荐阅读