星期二, 十二月 05, 2006

HOWTO Compile Kernel

安装内核源代码

代码: 安装内核源代码
$ USE=symlink emerge gentoo-sources

使用symlink的目的是建立符号连接/usr/src/linux,以指向安装好的内核源代码目录。

警告: 目前使用上面的命令装的是2.6内核,下面的命令也适用于2.6内核,但不一定适用于2.4内核。不过现在没有必要再用2.4内核。特别是在目前glibc 2.4已经稳定了的情况下,已经根本无法再用2.4内核。

配置

配置内核对于新手来说是一个噩梦。不过事实上,配置过程要远比一般人想象的容易。只是有些技巧了解的人不多。

配置命令介绍

make defconfig

非交互式命令,作用是生成一个缺省的配置文件。这个配置文件里各内核组件基本完整,只需修改硬件和文件系统即可。仅在第一次配置时使用。

make menuconfig

最通用的配置方式。它的运行几乎不限环境,远程登录也可以用它配置,所以我们重点介绍。

交互式命令。用法如下:

  • 方向键选择菜单项/按钮
  • 回车进入子菜单
  • 按高亮字母直接选择相应菜单项
  • Y键包含,N键排除,M键配置成模块
  • 退出,?键查看当前菜单项帮助信息,/键搜索
  • 图例:[*] 包含 [ ] 排除 模块 < > 可配置成模块

make oldconfig

交互式命令。利用已有的.config来生成新的.config。如果遇到新内核新增的选项,会挨个提示你是否启用。建议选择默认,即直接按回车。同时记录下有疑问的选项,以便下面再make menuconfig手工配置。仅在升级配置时使用。


第一次配置

代码: 第一次配置
$ cd /usr/src/linux
$ make defconfig
$ make menuconfig

make menuconfig这一步就是要修改硬件和文件配置。可能需要改动的主要有这么几个部分,分别是

  • CPU类型(默认是CONFIG_MK7)
  • IDE驱动(CONFIG_BLK_DEV_VIA82CXXX)
  • 网卡(CONFIG_E100)
  • AGP(CONFIG_AGP_VIA)
  • DRM(CONFIG_DRM_RADEON,建议不要启用,使用portage里的x11-drm)
  • Framebuffer(CONFIG_FB_RADEON)
  • 声卡(CONFIG_SND_VIA82XX)
  • 文件系统(只有CONFIG_EXT2_FS/CONFIG_[V]FAT_FS,ext3/reiserfs/xfs/jfs均未设置)
  • NLS CODEPAGE(需手工增加CONFIG_NLS_CODEPAGE_936)

以上括号里是默认配置情况。虽然不知道这是谁的配置,不过可以看出这个人的CPU是AMD的,主板是VIA的,显卡是ATI Radeon,只用ext2/fat32文件系统,且不是中文用户。

注意: 善用make menuconfig的搜索功能来搜索某选项(CONFIG_...)相关的菜单项的位置。如果你需要使用内核的其他功能,请参阅相关的官方文档或wiki,一般这样的文章里都有内核配置相关章节。如果实在不知道应该配置哪个选项,可以利用Linux内核配置档案

升级时配置

代码: 升级时配置
$ cd /usr/src/linux
$ cp /boot/config .config
$ make oldconfig
$ make menuconfig[可选]

编译和安装

代码: 编译和安装
$ make
$ make modules_install
$ make install
注意: make install时如已有同名文件,原文件会被改名,文件名后会添加一个.old。如果确认不需要保留这些旧文件,可以自行删除。

0 意見: