您的位置:首页 > 运维架构 > Linux

centos 4 内核编译步骤(测试已经通过)

2012-06-27 17:35 549 查看
测试环境: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=参数

大功告成!

  

  

  

本文出自 “决胜千里之外” 博客,请务必保留此出处http://lubing.blog.51cto.com/5293532/910894
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: