将CentOS 5.4内核升级到2.6.38.5

Linux内核升级是学习内核的基本条件。如果自已编译的内核跑不起来,那谈linux内核学习就是镜花水月了。其实网上有很多相关的

内核编译升级教程。我这个纯粹是多余的,但是为什么很多同志升级还是老失败呢?其实网上有很多教程,撞到相关的问题问一下

google或百度就基本是可以解决的。虽然网上的解决方法很多时候不是很好,但是要编译成功并运行起来是没有太大问题的。好了,言归正传,把我的方法奉献给大家吧。首先我的linux是CentOS5.4版的,内核版本是2.6.18。其实linux内核的学习和linux发行版的关系不是太大,大家喜欢哪个版本都

没问题。然后我是在WINDOWSXP上装的vmware7,然后再在vmware上面安装的cnetos。首先你要保证你的虚拟机上有gcc、makefile等

工具,如果没有这些工具我们就编译不了内核。如果你不是老手,对linux不是很熟你就直接按默认选项安装就是了,里包含这些基

本工具的,如果是玩过的同志,,就可以定制一下。我是喜欢定制,要的东西就装上,不要的东西就不装。我们先从上下载一份源码,本文下载的是目前最新稳定版的2.6.38.5 。地址如下:

有了源码后,我们就将源码拷到我们的linux的/opt目录下。我建议大家在装linux的时候不要选择装虚拟机工具,即vmware_tools

。这会在我们后面的编译中带来不必要的麻烦。然后再执行解压缩:tar jxf linux-2.6.38.5.tar.bz2 //解压内核cd linux-2.6.38.5 //进入解压后的目录cp /boot/ config-2.6.18-164.el5 .config //将默认的内核配置文件拷贝过来make menuconfig //进入的内核配置的界面保存退出然后手工打开.config文件查找# CONFIG_SYSFS_DEPRECATED is not set并将其改为CONFIG_SYSFS_DEPRECATED保存退出打开脚本/sbin/mkinitrd 查找到函数:emit_modules。并在其中找到如下字符串:emit “echo \”Loading $fullmodule module\””emit “insmod /lib/$fullmodule $options”找到后改成下面这个样子: #add by wwhs for kernel modules load error if [ “$fullmodule” != “dm-region-hash.ko” ] ; then if [ “$fullmodule” != “dm-mirror.ko” ] ; then emit “echo \”Loading $fullmodule module\”” emit “insmod /lib/$fullmodule $options” fi fi

接下来就可以进入我们经常用的一堆内核编译命令了:cd /opt/linux-2.6.38.5makemake modules_installmake install在网上看见有很多同志加了一堆make dep什么的,其实是不需要的,你从内核官网上拿下来的是很干净的并且是2.6版的代码,没必

要加一些针对于2.4版或者是不干净代码的步骤。

成功是什么?就是走过了所有通向失败的路.只剩下一条路.那就是成功的路.

将CentOS 5.4内核升级到2.6.38.5

相关文章:

你感兴趣的文章:

标签云: