《NetBSD指南-31.3.产生内核配置文件》
发表于 : 2010-03-08 3:27
本小节描述的目录是i386特有的。 其它构架的用户请自行替换为合适的目录, 参 src/sys/arch 下子目录.
内核配置文件定义了内核支持设备的类型,号码和特性以及一些内核配置选项。对i386来说, 内核配置文件在 /usr/src/sys/arch/i386/conf 目录。
请注意因为历史上的原因内核配置文件的名字全用大写字母, 所以很容易与其它文件区别:
创建新文件最简单的方法是拷贝一个已有文件并修改该拷贝。对多数平台来说最好的选择就是GENERIC的配置(原文此处一语双关,generic意为通用,这里的文件名也是GENERIC,所以这里不翻译了), 因为它包含了多数的驱动和选项。 在配置文件里用注释描述了这些选项; 更详细的描述在用户手册 options(4) 里. 所以, 一般的步骤是:
修改内核配置文件基本上包含了三个操作:
dmesg(8) 命令的输出可用来检验那些行可禁用。所有类似这样的行:
无论 XXX 还是 YYY 都必须在内核配置文件中激活。 要获得一个最小的内核配置,你可能需要反复尝试,但是在一个桌面系统中如果没有SCSI和PCMCIA设备,你的内核尺寸可以减半。
你还需测试一下内核配置文件中的选项一禁用不需要的。每个选项全带有一个简短的描述, 这些描述足以让你明白该选项的作用。 很多选项在手册 options(4) 里有更详尽的描述。你应该在CMOS clock里设置正确的本地时间。 例如:
Perl脚本 adjustkernel 可以通过pkgsrc获取, 它可以分析 dmesg(8) 的输出信息以及自动产生最小的配置文件。安装 adjustkernel 归结为:
现在你可以这样运行脚本:
这个脚本一般工作的很好, 免去了大量的手动编辑。 但请注意这个脚本仅配置有效设备: 你必须手动配置其它选项。
内核配置文件定义了内核支持设备的类型,号码和特性以及一些内核配置选项。对i386来说, 内核配置文件在 /usr/src/sys/arch/i386/conf 目录。
请注意因为历史上的原因内核配置文件的名字全用大写字母, 所以很容易与其它文件区别:
代码: 全选
$ cd /usr/src/sys/arch/i386/conf/
$ ls
CARDBUS GENERIC_PS2TINY NET4501
CVS GENERIC_TINY SWINGER
DELPHI GENERIC_VERIEXEC SWINGER.MP
DISKLESS INSTALL VIRTUALPC
GENERIC INSTALL.MP files.i386
GENERIC.FAST_IPSEC INSTALL_LAPTOP kern.ldscript
GENERIC.MP INSTALL_PS2 kern.ldscript.4MB
GENERIC.MPDEBUG INSTALL_SMALL largepages.inc
GENERIC.local INSTALL_TINY majors.i386
GENERIC_DIAGNOSTIC IOPENER std.i386
GENERIC_ISDN LAMB
GENERIC_LAPTOP Makefile.i386
代码: 全选
$ cp GENERIC MYKERNEL
$ vi MYKERNEL
- 1. 在内核中删除或保留硬件设备的支持(例如, 如果你不用scsi设备也没有必要保留对其的支持支持。)
- 2. 启用或禁用内核功能(例如, 例如启用NFS客户端支持, 启用Linux兼容新支持...)
- 3. 调整内核参数。
dmesg(8) 命令的输出可用来检验那些行可禁用。所有类似这样的行:
代码: 全选
XXX at YYY
你还需测试一下内核配置文件中的选项一禁用不需要的。每个选项全带有一个简短的描述, 这些描述足以让你明白该选项的作用。 很多选项在手册 options(4) 里有更详尽的描述。你应该在CMOS clock里设置正确的本地时间。 例如:
代码: 全选
options RTC_OFFSET=-60
代码: 全选
$ cd /usr/pkgsrc/sysutils/adjustkernel
$ make install
代码: 全选
$ cd /usr/src/sys/arch/i386/conf
$ adjustkernel GENERIC > MYKERNEL