首 页文章中心

Linux学习网

您的位置Linux学习网 > Linux综合 > 文章内容

终于成功编译了redhat as4的内核

作者:佚名  来源:不详  发布时间:2007-12-21 16:36:00
class="content" id="BodyLabel" style="PADDING-RIGHT: 10px; DISPLAY: block; PADDING-LEFT: 10px; PADDING-BOTTOM: 0px; PADDING-TOP: 0px">真是颇费周章,不过经过这次内核升级,我对于linux的认识又深入了一层,高兴。ekgLinux联盟
数次升级失败后(大于5次),本来我都没有勇气再升级了,但是每当看到高手们介绍iptables扩展模块的强大ekgLinux联盟
功能,还是令我怦然心动,而且linux的使用者如果不会内核升级,就无法进入新的阶段,于是决定:屡败屡ekgLinux联盟
战,再来一次!ekgLinux联盟
注:凡是输入命令的地方我前面都会加上##,和脚本注释的#加以区别ekgLinux联盟
首先从http://www.kernel.org/pub/linux/kernel/v2.6/上下载最新的内核,ekgLinux联盟
这次我下载的是linux-2.6.18.tar.gz  ekgLinux联盟
把这个文件放在/root/目录下ekgLinux联盟
##tar zxvf linux-2.6.18.tar.gz  ekgLinux联盟
生成一个目录linux-2.6.18ekgLinux联盟
##cd linux-2.6.18ekgLinux联盟
##make mrproperekgLinux联盟
这个命令的作用是清理以前编译内核的痕迹,其实如果是新解压的,不用这个命令应该也可以。你可以对比ekgLinux联盟
看一下make menuconfig的前后,编译完成的前后目录中文件的变化。ekgLinux联盟
我当前运行的是redhat as4 update1,内核版本是2.6.9-11.EL,我对自己的硬件配置并不是特别清楚,所以还是ekgLinux联盟
保留原有配置的好,我想要的只是让我的内核能支持新的netfilter模块功能而已。(查看当前内核版本可以用ekgLinux联盟
这个命令uname -a )所以ekgLinux联盟
##ls -al /bootekgLinux联盟
能够看到下面有个文件,类似config-2.6.9-11.EL,这就是现在的内核对应的.config文件了,把它考到新内核ekgLinux联盟
所在的目录下ekgLinux联盟
##cp /boot/config-2.6.9-11.EL /root/linux-2.6.18/.configekgLinux联盟
如果这个目录下已经有.config这个文件了……当然覆盖掉了。然后开始编译ekgLinux联盟
##make menuconfigekgLinux联盟
make menuconfig 需要安装libcurses5-dev支持,如果是redhat比较新的版本比如as4或者fc4,可能是需要ncurses-5.4-13.i386.rpm和ncurses-devel-5.4-13.i386.rpm这两个文件,请先确认你已经装上了这两个软件包……ekgLinux联盟
(本来以为不需要说明的,但是看来问的不少,为什么新手们不选择完全安装呢,起码能省我很多事情)ekgLinux联盟
……ekgLinux联盟
进去以后,选择菜单很靠下的选项"Load an Alternate Configuration File"ekgLinux联盟
然后select,会问你是否要提取.config,当然了。ekgLinux联盟
然后你的基本配置信息就已经被保存了,如果没有什么不满意的地方,不用改动了,除非你很清楚你到底改ekgLinux联盟
了什么(比如我修改了Networking  ---> 的部分,增加了很多模块;改了电源管理中的一部分,因为从前的内ekgLinux联盟
核会导致reboot命令不能重启,所有程序关掉后会卡住;改了文件系统中的对ntfs系统的写支持;processor里ekgLinux联盟
面也改了,把原来的Pentium-III/Celeron(Coppermine)/Pentium-III Xeon改成Pentium-4/Celeron(P4-ekgLinux联盟
based)/Pentium-4 M/Xeon,本来我的celeron就是2.1g的么,为什么要工作在奔三的状态下呢,浪费),配置完ekgLinux联盟
成后,选择exit退出,会问你是否保存,当然保存了。这时候就生成了新的.config文件了,可以开始编译内核ekgLinux联盟
了!!!ekgLinux联盟
##makeekgLinux联盟
这个时候如果没有问题,就会开始进行编译了。我感觉,linux下所有的软件(所谓的源文件啦,那种安装包ekgLinux联盟
的比如rpm等等不算)其实都是需要你自己重新配置一遍(编译,或者叫make)以适应你自己的系统,从某ekgLinux联盟
种程度上来说,是你自己为自己的硬件打造了一套系统(虽然大部分的程序都不是你写的而是linus和其他的ekgLinux联盟
linux软件开发者),是不是很神往啊?说这么多费话,当然,实际上这个编译的过程相当的长,你可以在午ekgLinux联盟
饭前输入make命令,等到吃完午饭回来看他好没好,如果你想要检验自己的水平,也可以通过仔细阅读目录ekgLinux联盟
中的README文件来让自己对linux有个更深刻的认识。ekgLinux联盟
make完成后,就要把模块都安装进系统去了!ekgLinux联盟
##make modules_install ekgLinux联盟
这个时间也挺长,但不如上面那个。新的模块都会放在/lib/modules目录下对应的内核版本目录中,以后如果ekgLinux联盟
你使用这个新编译的内核引导系统,则这个系统所使用的内核模块都在对应这个内核版本的目录中,包括你ekgLinux联盟
的驱动程序啊什么的。ekgLinux联盟
哦?模块安装完了?ok,你想不想开始使用这个内核呢?不想的话,先放这儿好了,以后慢慢来。ekgLinux联盟
如果想要立刻就用,就输入ekgLinux联盟
##make install ekgLinux联盟
这个时候会把你新编译的内核复制到/boot目录下(这个目录可是专门存放内核镜像和相关文件的地方,所以ekgLinux联盟
安装系统的时候最好把这个目录单独划分为一个分区,不要让其他程序占用这个分区的空间……至少redhat ekgLinux联盟
as4是这样的),同时还会修改你的grub.conf文件,使得引导菜单会多出一个选项,grub.conf我就不多讲了。ekgLinux联盟
所有的命令都顺利完成了?ekgLinux联盟
##rebootekgLinux联盟
重启后你会发现启动菜单中(或者说grub引导界面中)多了一个选项,我的就是linux-2.6.18这个选项了,选ekgLinux联盟
择这个选项,你就开始进入新的内核系统了。ekgLinux联盟
shit,为什么启动信息报告我的网卡没有启动?错误的irq?不同的mac地址?什么嘛?ekgLinux联盟
这时候,你的驱动程序其实都在,但是系统会从/etc/modprob.conf里面读取系统的配置ekgLinux联盟
我发现在里面有这样两行ekgLinux联盟
options via-rhine  irq=5ekgLinux联盟
alias eth1 via-rhineekgLinux联盟
原来是它们在作怪,注释掉,重新启动,哈哈,一切都好了(在此多谢bbs.chinaunix.net上的高手指导)!ekgLinux联盟
现在看看ekgLinux联盟
##uname -aekgLinux联盟
Linux linuxtest.xxx.xxx.cn 2.6.18 #1 Thu Nov 23 15:34:29 CST 2006 i686 i686 i386 GNU/LinuxekgLinux联盟
hiahiahiahia,成功了!ekgLinux联盟
祝大家好运!ekgLinux联盟
ekgLinux联盟
感觉咱们网盟新手多,这种需求可能也多些,就不发在CU那样的高手论坛上现眼了,还是发在网盟吧,希望大家用得到!ekgLinux联盟
作者iamshiyu(七夕银河)2006-11-28于网盟bbs.bitscn.comekgLinux联盟
ekgLinux联盟
忘了说,以后这个版本的很多东西就都保存在/root/linux-2.6.18里面了,所以不要删除这个目录,除非你确信你要删除掉这个内核……ekgLinux联盟
ekgLinux联盟
ekgLinux联盟
  你可能还对以下内容感兴趣:redhat as4,redhat linux as4,redhat as4 下载,redhat as4 升级,redhat as4 mysql,redhat as4 显卡,redhat as4 u2下载,redhat as4 激活码,redhat 内核升级,redhat 内核下载,编译内核,linux 内核编译,如何编译linux内核,ubuntu 编译内核,如何编译内核,debian内核编译,重新编译内核,怎样编译内核,编译内核详细步骤,编译内核 grub。
收藏本页到: 365Key | del.icio.us | | 添加到雅虎收藏+
  • 网站帮助 - 广告合作 - 网站地图