环境:Red Hat Enterprise 6
第一步:查看原系统的内核版本
第二步:安装linux内核源代码
第三步:清除临时文件、中间文件和配置文件
make clean
remove most generated files but keep the config
make mrproper
remove all generated files + config files
make distclean
mrproper + remove editor backup and patcher files
第四步:确定目标系统的软硬件配置情况,比如CPU的类型,网卡的型号,所需支持的网络协议等。
第五步:使用如下命令之一配置内核
make config : 基于文本模式的交互式配置。
make menuconfig:基于文本模式的菜单型配置。(推荐使用)
make oldconfig:使用已有的配置文件(.config),但是会询问新增的配置选项。
make xconfig:图形化配置(需安装图形化系统)。
[root@localhost linux-3.0.4]# make menuconfig
出现错误,需要安装ncurses
# rpm -ivh ncurses-5.7-3.20090208.el6.i686.rpm
# rpm -ivh ncurses-devel-5.7-3.20090208.el6.i686.rpm
安装完成后再次输入make menuconfig
可以进行配置然后保存。
配置完成后会生成一个.config的隐藏文件。
在内核源代码的arch中相应的体系结构中有默认的配置
\arch\x86\configs
可以拷贝过来然后再make menuconfig进行修改保存。
在这里我用系统现在运行内核的配置(/boot/ config-2.6.32-71.el6.i686)
然后make menuconfig
第六步:编译内核
make zImage
make bzImage
区别:在x86平台,zImage只能用于小于512k的内核
如需获取详细编译信息,可使用:
make zImage V=1
make bzImage V=1
编译好的内核位于arch/<CPU>/boot/目录下
第七步:编译内核模块
make modules
即编译前面配置选项中为M的项。
第八步:安装内核模块
make modules_install
本步的作用是将编译好的内核模块从内核代码目录copy至/lib/modules下
安装前:
安装后:
第九步:制作init ramdisk
mkinitrd initrd-$version $version
例: mkinitrd initrd-3.0.4 3.0.4
[root@localhost linux-3.0.4]# mkinitrd initrd-3.0.4 3.0.4
$version可以通过查询/lib/modules下地目录得到
第十步:安装内核
1. cp arch/x86/boot/bzImage /boot/vmlinuz-$version
[root@localhost linux-3.0.4]# cp arch/x86/boot/bzImage /boot/vmlinuz-3.0.4
2. cp $initrd /boot/
[root@localhost linux-3.0.4]# cp initrd-3.0.4 /boot/
3. 修改/etc/grub.conf或者 /etc/lilo.conf
进入系统查看版本。
至此,安装3.0.4内核安装成功