Linux 内核编译安装(CentOS5)

一、系统环境。

1、CentOS 5 在虚拟机上安装

2、下载新内核源代码,版本:linux-2.6.35-rc1

二、安装过程

1、解压源代码,随便到那个目录,进入解压后的源代码目录,我的为~/linux_kernal/linux-2.6.35-rc1

2、make mrproper :这个目的是清除原先此目录下残留的.config和.o

3、make clean

注:如果是第一次编译,可以省略2、3步骤。

4、配置。

第一种方式:make defconfig:默认配置,听说是linus的配置哦,呵呵。

                  make allnoconfig : 除必须的选项外, 其它选项一律不选. (常用于嵌入式系统)

第二种方式:make menuconfig:图形界面方式配置,系统将提示你需要安装ncurses-devel包。

yum install ncurses-devel

在第二种方式下,可以使用当前的系统的核心配置(/usr/src/kernels/2.6.18-194.el5-i686/.config)

通过menuconfig菜单里的Load an Alternate Configuration File加载

我的做法是:

(1)cp  /usr/src/kernels/2.6.18-194.el5-i686/.config .

(2)make menuconfig-->Load an Alternate Configuration File-->选择.config-->Save an Alternate Configuration File

(3)vim .config

(4)编译时修改.config文件中的“CONFIG_SYSFS_DEPRECATED_V2”,默认该选项为not set,被注释掉的,将其改为y。即修改为“CONFIG_SYSFS_DEPRECATED_V2=y”。

可以避免安装完内核后,出现如下错误,导致无法启动:

mount: could not find filesystem ‘/dev/root’

5、make dep:依赖关系编译

6、make bzImage  :编译核心,bz,表示压缩。也可以zImage,但要确保核心较小。

# make bzImage

  CHK     include/linux/version.h

  CHK     include/generated/utsrelease.h

  CALL    scripts/checksyscalls.sh

  CHK     include/generated/compile.h

Kernel: arch/x86/boot/bzImage is ready  (#2)

提示已经放到了当前目录的arch/x86/boot/bzImage里
7、make modules :编译模块,模块的多少取决于你的配置