RHEL5.1系统内核版本2.6.18升级到内核版本2.6.30

由于要编译X86平台上的linux模块,原操作系统上面没有配备内核源代码,所以无法编译内核,更不能进行内核模块的实验了。参考了很多的资料,决定对运行的linux的内核版本进行升级。最后升级成功。下面把方法总结如下:

一、环境

红帽子企业版5,在linux下进入root用户

#uname -r

2.6.18-53.el5

二、升级过程

1)        下载内核

升级之前到www.kernel.org看看有没有最新的内核,目前为止最新的是2.6.30,下载地址是:http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.30.tar.bz2

2)    将linux-2.6.30.tar.bz2拷贝到/usr/src目录下面,使用下面的命令解压,得到文件夹linux-2.6.30

tar xjvf linux-2.6.30.tar.bz2

3)        make mrproper

假如是第一次编译,这一步骤可以省掉的。

4)      复制原有的config文件到linux-2.6.30目录

#cd /usr/src/linux-2.6.30

# cp /boot/config-2.6.18-53.el5  .config

5)        make menuconfig

选择Load an Alternate Configuration File,导入.config文件,更加自己的需要添加功能或者进行精简。

注:内核配置有两种方法,一种是直接置入内核* ;另一种是编成模块M ;两种方法各有优点;直接编入内核的,比如设备的启动,不再需要加载模块的这一过程了;而编译成模块,则需要加载设备的内核支持的模块;但直接把所有的东西都编入内核也不是可行的,内核体积会变大,系统负载也会过重。我们编内核时最好把极为重要的编入内核;其它的如果您不明白的,最好用默认。

6)        编译内核

make bzImage

7)    编译内核模块

make modules

8)      安装内核模块

make modules_install

(PS:将编译好的内核模块从内核源代码目录copy至/lib/modules下)

9)    制作init ramdisk

mkinitrd  initrd-2.6.30  2.6.30

(PS:2.6.30必须要在/lib/modules下可以找到)

10)  cp  arch/x86/boot/bzImage /boot/vmlinuz-2.6.30

(PS: vmlinuz-2.6.30这个名字是可以随便取的)

11)  cp initrd-2.6.30 /boot/

12)    vi /etc/grub.conf

(PS:主要是复制源内核那部分的,然后进行修改,主要修改部分为title和kernel和initrd)

13)    reboot

 

相关推荐