测试环境:centos4  (编译前内核是:2.6.9-42   新内核是:2.6.26.2)
1  确保系统中已经安装  ncurses-devel
2 下载内核源代码包   http://kernel.org/pub/linux/kernel/v2.6/
3 下载后 cp 到/usr/src/kernels目录下  并解压
4 做一link    ln -s linux-2.6.26.2 linux
5 cd llinux    make mrproper (如果是第一次编译,此不可省略) 
6 make menuconfig   (配置内核)
  #make config (基于文本的最为传统的配置界面)
[newpage]
#make menuconfig (基于文本选单的配置界面)

#make xconfig (基于图形窗口模式的配置界面)

#make oldconfig (如果只想在原来内核配置的基础上修改一些小地方,会省去不少麻烦)
[newpage]

进行配置时,大部分选项可以使用其缺省值,只有小部分需要根据用户不同的需要选择。例如,如果需要内核支持DOS分区的文件系统,则要在文件系统部分选择FAT或DOS系统支持;系统如果配有网卡、PCMCIA卡等,需要在网络配置中选择相应卡的类型。

“Y”- 将该功能编译进内核
  “N”- 不将该功能编译进内核       

“M”- 将该功能编译成可以在需要时动态插入到内核中的模块。


注意:编译配置

在这一部分涉及几个重要模块的配置请,特别注意.一般用"make menuconfig"命令来配置内核.

输入以上命令后出现一个菜单界面,用户可以对需要的模块.下面着重讲几个重要的配置


1)文件系统

请务必要选中ext3文件系统,

  File systems--->

  [*] Ext3 journalling file system support

  [*] Ext3 Security Labels

  [*] JBD (ext3) debugging support

  以上三项一定要选上,而且要内建(即标*). 这个非常重要,在配置完后一定要检查一下.config文件有没有"CONFIG_EXT3_FS=y"这一项. 如果不是"CONFIG_EXT3_FS=y"而是"CONFIG_EXT3_FS=m",你在运行内核时就会遇上以下错误: pivotroot: pivot_root(/sysroot,/sysroot/initrd) failed

  

2)网卡驱动   (没有找到 稍微配置了下 最后也成功了)

  请务必把自己网卡对应的驱动编译进内核,比较普遍的网卡是realtek 8139,以下就是这种网卡的配置,以供参考

  Device Drivers--->

  Networking support--->

  Ethernet (10 or 100Mbit) --->

   <*> RealTek RTL-8139 C+ PCI Fast Ethernet Adapter support (EXPERIMENTAL)

   <*> RealTek RTL-8139 PCI Fast Ethernet Adapter support

3)声卡驱动  (用*都给选上了)

  也要选择自己声卡对应的驱动编译进内核,比较普遍的声卡是i810_audio,以下就是这种声卡的配置,以供参考

  Device Drivers --->

  Sound --->

   <*> Sound card support

  Advanced Linux Sound Architecture --->

   <*> Advanced Linux Sound Architecture

   <*> Sequencer support

   < > Sequencer dummy client

   <*> OSS Mixer API

   <*> OSS PCM (digital audio) API[*] OSS Sequencer API

   <*> RTC Timer support

  PCI devices --->

   <*> Intel i8x0/MX440, SiS 7012; Ali 5455; NForce Audio; AMD768/8111

  Open Sound System --->

   < > Open Sound System (DEPRECATED)

以上三项配置关系到新内核能否正常运行,请备加注意.其他的配置如果不是很了解,大可以按默认的选择.

7     make clean (确保所有有关文件都处于最新版本状态)
       make bzImage   (编译的时间与机器的硬件条件及内核的配置等因素有关,所获得的内核的位置在/usr/src/Linux/arch/i386/boot目录下,当然这里假设用户的CPU是x86型的。)
        make modules (编译选择的模块)
       make modules_install   (将编译后的模块转移到系统标准位置, 这将把上一步构建出来的内核放入一个模块子目录中:/lib/modules/your_kernel_version)

[newpage]
8 编辑 /boot/grub/grub.conf

注释掉 hildenmenu


9 reboot  

内核启动顺序可以设置   vi /etc/grub.confi    有个default=参数

大功告成!