系统核心 自订 FreeBSD Kernel( 八 )



PC 摇杆的支援 。
pseudo-device speaker

支援 IBM BASIC 格式的 PC 喇叭音效 。有些有趣的程式 (如
/usr/sbin/splrtest、/usr/games/piano) 会使用到它 。
有关 PC 喇叭的的数位音效请参阅 pca0。

_________________________________________________________________
5.4. 建立 device nodes
几乎所有 kernel 支援的装置,都有一个在 /dev 下的 ``node""
来相对应 。这些 nodes 看起来像是一般的档案,
但是实际上应用程式可以透过这些 nodes 来存取 kernel 的资料 。你可以用
shell script /dev/MAKEDEV 来帮助你建立 nodes 。
虽然在安装过程中已经帮你建立一些必备的 nodes,
是你一定会想再新增你所需要的
nodes,尤其是增s功能或安装新硬体的时候 。假A想新增一台 IDE
CD-ROM,你必须在 kernel 设定档中奶J相关的钏w,如G
controller wcd0
这表示你必须看看在 /dev 下有没有 wcd0 的 nodes 。比方说是
wcd0c、rwcd0c 等等 。假设没有这些 nodes,你必须建立它们:
# cd /dev; sh MAKEDEV wcd0
当这个 script 执行完毕时,你应该会看到 wcd0c 或 rwcd0c 等 nodes 。
又例如新增音效卡的 nodes:
# cd /dev; sh MAKEDEV snd0
这样将会建立音效卡所需的 nodes 。
_________________________________________________________________
5.5. 发生问题的解决方法
再建立自订 kernel 时,有四种问题可能发生:
Config 发生错误

如果 config 抱怨这个错误时,你的 kernel 设定档可能有错误,
config 会指出哪些行错了,请重新检查那些行 。比方说你看到:

config: line 17: syntax error
表示你的 kernel 设定档的 17 行有错误,请用编辑器修正 。
Make 失败

如果执行 make 时发生错误,有可能是你的 kernel 设定档有错误,
但是 config 程式并没有检查出来,请再检查 kernel
设定档是否有错误, 或是缺少该有的参数 。如果在编译过程中发生
"compiler internal error" 或 "signal 11" 等等,
可能你的硬体设备不是很稳定 。
Kernel 无法开机

如果你的新 kernel 无法开机,或是无法侦测到你新左熊w体装置,
你可以在开机时,键入其他 kernel 的名称 (如 boot: /kernel.old),
如果连其他 kernel 都无法开机,你可以试试 kernel.GENERIC 。
在用旧的 kernel 开机後,检查你的 kernel 钏w档是否有误,
修改後再重新编译一个新的 kernel 。你可以参考 /var/log/messages
中的开机记录,或是执行 dmesg(8) 。
注意: 在 FreeBSD 中有另一种 file flag 来保护重要档案,
如果你无法移动或删除 /kernel,你可以执行:
# chflags noschg /kernel
【系统核心 自订 FreeBSD Kernel】 如果你想保护 /kernel 避免人为疏失破坏它,请执行:
# chflags schg /kernel
Kernel 可以开机,但 ps 或是 w 发生错误

如果你更新 kernel 原始程式 (如从 2.1.0-RELEASE 升级到
2.2-CURRENT),你必须一更新 (或重新编译) 一些重要的档案, 如
ps(1)、vmstat(8)或是libkvm 。

推荐阅读