当前位置

A.2. 建构内核(配置)

主标签

本节的说明应用于建构定制的模块化内核。

提示:

     这个例子使用 2.6.0-1 作为内核版本(内核版本可能会有所不同)。要判定内核版本,键入 uname -r 命令,然后用返回的内核版本来代替 2.6.0-1。对于使用通用内核的用户,以您下载的内核版本为准。

要建构用于 x86 体系的内核,遵循以下步骤(已根用户身份执行):

[list=1]
[*]打开一个 shell 提示,改换到目录 /usr/src/linux-2.6.0-1 下。从此以后的命令都必须在该目录下执行。(对于使用通用内核的用户,改换到目录 /usr/src/linux-2.6.xx )
[*]你应该明确建构内核所使用的源码树的状况,这一点至关重要。因此,建议你从命令 make mrproper 开始着手。它会删除所有的配置文件,以及散落在源码树周围的从前建构的版本遗迹。如果你已有一个存在的配置文件 /usr/src/linux-2.6.0-1/.config,在运行这项命令前把它备份到另一个目录中,命令运行后再把它复制回来。
[*]推荐你从默认 Magic Linux 内核的配置着手。Magic Linux将默认的配置保存在了链接 /boot/config 所指向的位置。内核配置工具会首先尝试读取当前目录下的 .config 并作为默认配置。如果 .config 不存在,则会将/boot/config 所指向的文件作为默认配置读取。
[*]下一步,定制设置。如果 X 窗口系统可用,建议的方法是使用 [b]make xconfig [/b](基于Qt)命令来运行 Linux Kernel Configuration。
[/list]

提示:

   喜欢Gtk+ 的用户也可以使用  [b]make gconfig [/b]命令启动图形化的工具(需要Gtk+支持,Magic Linux默认安装了 Gtk+ 运行环境)

[img=576x432]http://www.magiclinux.org/drupal/images/xconfig-316.png[/img]

图 A-1. 配置内核组件(xconfig)

如图 A-1所示,点击一个类别来选择它。在每个类别中包含的是组件。选择你需要的 (y)、希望编译为模块的(m)、不需要的(n),来把它编译入内核、编译成内核模块、或不编译它。右下角的提示框中有每个组件相应的帮助文档。

提示:

    对于内核组件的选择,您可以从[url=http://www.linuxfans.org/nuke/modules.php?name=Forums&file=viewtopic&t=40011]这里[/url]得到一些参考。 

5. 完成了配置后,请保存修改并关闭配置窗口退出 Linux Kernel Configuration 程序。新创建的配置文件文件名为 .config。

即便没有对设置进行任何改变,在继续前你也需要运行 [b]make xconfig [/b]命令(或其它内核配置方法)。

其它可用的内核配置方法包括:

  • [b]make menuconfig [/b]— 文本模式、菜单驱动的程序。组件以类别菜单的格式被显示; 使用和文本模式 Magic Linux 安装程序所用的同样方法来选择想要的组件。双态切换和要包括的项目相对应的标签。这种方法不需要 X 窗口系统。
  • [b]make config [/b]— 互动文本程序。组件以线形格式出现,并被一个一个地回答。这种方法不需要运行 X 窗口系统,而且不允许你改变对前面问题的回答。
  • [b]make oldconfig [/b]— 这是一个非互动的脚本。它设置配置文件来包含默认的设置。如果系统使用的是默认 Magic Linux 内核,它会为用于该体系的 Magic Linux 包括的内核创建一个配置文件。这能够帮助你按照已知的工作默认值来设置内核,然后关闭你不想使用的功能。
  • [b]make defconfig [/b]— 这是一个非互动的脚本。它将产生一个所有选项都为预设值的配置文件。
  • [b]make allmodconfig [/b]— 这是一个非互动的脚本。它产生的配置文件中,组件都尽可能的被编译为了模块。
  • [b]make allyesconfig [/b]—这是一个非互动的脚本。它产生的配置文件中,对所有选项都回答为 y。
  • [b]make allnoconfig [/b]—这是一个非互动的脚本。产生一个最小化的配置。

提示:

   使用类似 [b]"make O=output/dir" [/b]的选项可以将所有输出重定向到您指定的目录(包括.config)。具体的用法,内核所在目录中的readme文件中有详细的说明。