戴文的Linux内核专题:05 配置内核 (1)

北京服务器托管公司

北京服务器托管公司

现在我们已经了解了内核,现在我们可以进入主要工作:配置并编译内核代码。配置内核代码并不会花费太长时间。配置工具会询问许多问题并且允许开发者配置内核的每个方面。如果你有不确定的问题或者特性,你最好使用配置工具提供的默认值。本系列教程会使读者逐步了解配置内核的整个过程。

配置代码前需要在源文件的文件夹内打开一个终端。当终端打开后,基于你喜好的配置界面,这里有几种不同的配置方法:

  • make config – 纯文本界面 (最常用的选择)。
  • make menuconfig – 基于文本彩色菜单和单选列表。这个选项可以加快开发者开发速度。需要安装ncurses(ncurses-devel)。
  • make nconfig – 基于文本的彩色菜单。需要安装curses (libcdk5-dev)。
  • make xconfig – QT/X-windows 界面。需要安装QT。
  • make gconfig – Gtk/X-windows 界面。需要安装GTK。
  • make oldconfig – 纯文本界面,但是其默认的问题是基于已有的本地配置文件。
  • make silentoldconfig – 和oldconfig相似,但是不会显示配置文件中已有的问题的回答。
  • make olddefconfig -和silentoldconfig相似,但有些问题已经以它们的默认值选择。
  • make defconfig – 这个选项将会创建一份以当前系统架构为基础的默认设置文件。
  • make ${PLATFORM}defconfig – 创建一份使用arch/$ARCH/configs/${PLATFORM}defconfig中的值的配置文件。
  • make allyesconfig – 这个选项将会创建一份尽可能多的问题回答都为‘yes’的配置文件。
  • make allmodconfig – 这个选项将会创建一份将尽可能多的内核部分配置为模块的配置文件。

注意:内核代码可以放进内核自身,也可以成为一个模块。例如,用户可以将蓝牙驱动作为一个模块加入(独立于内核),或者直接放到内核栗,或者完全不加蓝牙驱动。当代码放到内核本身时,内核将会请求更多的内存并且启动会花费更长的时间。然而,内核会执行的更好。如果代码作为模块加入,代码将会一直存在于硬盘上直到被需要时加载。接着模块被加载到内存中。这可以减少内核的内存使用并减少启动的时间。然而,因为内核和模块在内存上相互独立所以会影响内核的性能。另一种选择是不添加一些代码。举例来说,内核开发人员假如知道系统永远都不会使用蓝牙设备,因此这个驱动就可以不加到内核中。这提升了内核的性能。然而,如果用户之后需要蓝牙设备,那么他么需要安装蓝牙模块或者升级内核才行。

  • make allnoconfig – 这个选项只会生成内核所必要代码的配置文件。它对尽可能多的问题都回答no。这有时会导致内核无法工作在为编译该内核的硬件上。
  • make randconfig – 这个选项会对内核选项随机选择(译注:这是做什么用途的?!)。
  • make localmodconfig – 这个选项会根据当前已加载模块列表和系统配置来生成配置文件。
  • make localyesconfig – 将所有可装载模块(LKM)都编译进内核(译者注:这里与原文 ‘This will set all module

本文出自linux中国


发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注