自订 FreeBSD Kernel (系统核心)

2008-02-23 08:03:24来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折


Contributed by Jake Hamby .
6 October 1995.

这个略大的章节会讨论如何自订你的 FreeBSD kernel。
这个章节适合初学者以及经验丰富的管理者。

5.1. 为何要自订 kernel ?

5.2. 建立以及安装一个自订的 kernel

5.3. kernel 设定档

5.3.1. 一定要有的关键字
5.3.2. 一般的参数
5.3.3. 档案系统的参数
5.3.4. 基本控制卡以及介面卡
5.3.5. SCSI 装置支援
5.3.6. Console,滑鼠,及 X Server 支援
5.3.7. Serial 跟 Parallel Ports
5.3.8. 网路
5.3.9. 音效卡
5.3.10. 虚拟装置 (Pseudo-devices)
5.3.11. 摇杆、PC 喇叭及其他杂七杂八的

5.4. 建立 device nodes

5.5. 发生问题的解决方法


_________________________________________________________________
5.1. 为何要自订 kernel ?



建立一个自订的 kernel 是每个 UNIX 系统管理者所必须学习的重要课题。
这个过程虽然耗时,但是将会对你的 FreeBSD 系统带来许多好处。 一个自订的
kernel,只会包含支援你硬体的驱动程式, 而一个 GENERIC kernel
却包含大多数的硬体驱动程式以便在各种机器上执行。 自订的 kernel
将包含下列优点:



* 开机时只需要花较少的时间,因为 kernel 不需花额外的时间去侦测
你没有的硬体是否存在。

* 自订的 kernel 通常占较少的记忆体,这是很重要的。 因为 kernel
本身是一个常驻在记忆体中的程式,那些没有用到的 程式码 (如 GENERIC
kernel) 将会占去你其他程式执行时的记忆体空间。
因此,在一个记忆体较小的机器上,建立一个自订的 kernel
将是相当重要的。

* 最後,有你可以调整许多的 kernel 参数来符合你的需求, 以及奶J其他
(如音效卡的驱动程式) ,这些是 GENERIC kernel 所没有的。




_________________________________________________________________
5.2. 建立以及安装一个自订的 kernel



首先,我们先浏览一下编译 kernel 的目录。 所有的 kernel
原始程式都是放在 /usr/src/sys 以下的 (而通常我们会将 /sys 连结 (link)
到 /usr/src/sys)。 Kernel 原始程式有许多不同的目录,比方说
/sys/i386/conf, 你将会把你的 kernel 设定档放在此目录下; 还有例如
/sys/compile, 你将会在此编译你的 kernel。

注意: 如果你的系统中 没有 /usr/src/sys, 表示你尚未安装 kernel
原始程式,请参照系统安装过程来安装 kernel 原始程式。



接下来,进入 /sys/i386/conf 并且拷贝 GENERIC 档
成为你想要的档名。例如:

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

传统上这个档名都是用大写字母,如果你有许多的 FreeBSD 机器, 用大写的
hostname 来命名是区分不同机器设定的好方法。

注意: 你必须以 root 的身份执行所有的命令,否则你会得到 "permission
denied" 的错误。



现在,以你最习惯的编辑器编辑 MYKERNEL (如果你不知道用什麽好,
你可以试试 vi,虽然要解释如何使用它太过杂, 但是至少大部份的 书
都会提到它。 你必须修改或新增此档案中的设定以符合你系统的需求。

如果你曾经在 SunOS 或是其他的 BSD 系统上建立过 kernel,
那麽你将会对这个 kernel 设定档的内容十分熟悉。
如果你较熟悉其他的作业系统 (如 DOS),你可能会看不懂 kernel
设定档,麻烦你仔细阅读 kernel 设定档 。

注意: 如果你是从较旧版本的 FreeBSD 升级上来的, 你可能必须一更新
config(8)。如果你是从 FreeBSD 原始程式升级的, 你可以在
/usr/src/usr.sbin/config 中找到 config 的原始程式。



当你完成建立或修改 kernel 设定档时,执行以下命令来编译你的 kernel:

# /usr/sbin/config MYKERNEL
# cd ../../compile/MYKERNEL
# make depend
# make
# make install

:make depend; make; make install 可用 make depend all install 来替代

新编译好的 kernel 将会被安装到根目录去 (名为 /kernel), 旧的 kernel
将会被更名为 /kernel.old。 现在,关闭 (shutdown) 你的系统并重新开机
(reboot)。 如果重新开机後出了什麽问题,请阅读本文最後的
发生问题的解决方法 。 请记得阅读 以免你的 kernel 无法开机 。

注意: 如果你增s的硬体 (如音效卡), 你必须建立一些 device nodes
到你的 /dev 下。


_________________________________________________________________
5.3. kernel 设定档



这个档案的内容相当的简单。每一行都包含了一个关键字以及它的参数。
任何以 # 开头的行都被视为解而忽略。 接下来会介绍 GENERIC
(一般设定档) 中所含有的关键字。 另一个设定档 LINT
中包含绝大多数的详细关键字,LINT 中并有详细说明,
如果你有任何的疑问可以参考 LINT。

传统上 kernel 设定档中的关键字会以 -D 的方式由 CFLAGS
传递给编译器,但是这样做所有的档案都有可能被影响。

现在我们有了新的方法。config 这个程式会将那些关键字分门别类的放到
opt_foo.h,这样只有相关的原始程式才会参考到这些设定档。

5.3.1. 一定要有的关键字

5.3.2. 一般的参数

5.3.3. 档案系统的参数

5.3.4. 基本控制卡以及介面卡

5.3.5. SCSI 装置支援

5.3.6. Console,滑鼠,及 X Server 支援

5.3.7. Serial 跟 Parallel Ports

5.3.8. 网路

5.3.9. 音效卡

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:如何查看 .iso 档?

下一篇:FreeBSD下设置modem和modem的通用命令