《NetBSD指南-31.3.产生内核配置文件》

NetBSD用户指南中文版、NetBSD pkgsrc指南中文版...

版主: lionux

主题已锁定
头像
leo
帖子: 2465
注册时间: 2010-01-21 3:27

《NetBSD指南-31.3.产生内核配置文件》

帖子 leo » 2010-03-08 3:27

本小节描述的目录是i386特有的。 其它构架的用户请自行替换为合适的目录, 参 src/sys/arch 下子目录.

内核配置文件定义了内核支持设备的类型,号码和特性以及一些内核配置选项。对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
创建新文件最简单的方法是拷贝一个已有文件并修改该拷贝。对多数平台来说最好的选择就是GENERIC的配置(原文此处一语双关,generic意为通用,这里的文件名也是GENERIC,所以这里不翻译了), 因为它包含了多数的驱动和选项。 在配置文件里用注释描述了这些选项; 更详细的描述在用户手册 options(4) 里. 所以, 一般的步骤是:

代码: 全选

$ cp GENERIC MYKERNEL
$ vi MYKERNEL
修改内核配置文件基本上包含了三个操作:
  • 1. 在内核中删除或保留硬件设备的支持(例如, 如果你不用scsi设备也没有必要保留对其的支持支持。)
  • 2. 启用或禁用内核功能(例如, 例如启用NFS客户端支持, 启用Linux兼容新支持...)
  • 3. 调整内核参数。
以 “#” 作为起始的行是注释; 有注释符的将禁用,要启用请移除该行的注释符。将不需要的支持注释掉比直接将此行删除掉要好一些,因以后或许还需要启用(去掉注释符).

dmesg(8) 命令的输出可用来检验那些行可禁用。所有类似这样的行:

代码: 全选

XXX at YYY
无论 XXX 还是 YYY 都必须在内核配置文件中激活。 要获得一个最小的内核配置,你可能需要反复尝试,但是在一个桌面系统中如果没有SCSI和PCMCIA设备,你的内核尺寸可以减半。

你还需测试一下内核配置文件中的选项一禁用不需要的。每个选项全带有一个简短的描述, 这些描述足以让你明白该选项的作用。 很多选项在手册 options(4) 里有更详尽的描述。你应该在CMOS clock里设置正确的本地时间。 例如:

代码: 全选

options RTC_OFFSET=-60
Perl脚本 adjustkernel 可以通过pkgsrc获取, 它可以分析 dmesg(8) 的输出信息以及自动产生最小的配置文件。安装 adjustkernel 归结为:

代码: 全选

$ cd /usr/pkgsrc/sysutils/adjustkernel
$ make install
现在你可以这样运行脚本:

代码: 全选

$ cd /usr/src/sys/arch/i386/conf
$ adjustkernel GENERIC > MYKERNEL
这个脚本一般工作的很好, 免去了大量的手动编辑。 但请注意这个脚本仅配置有效设备: 你必须手动配置其它选项。

主题已锁定

在线用户

正浏览此版面之用户: 没有注册用户 和 0 访客