红联Linux门户
Linux帮助

轻松掌握RHEL 4内核编译

发布时间:2011-05-26 21:01:36来源:网络收集作者:未知

在RHEL 4操作系统中各个部分几乎都是很尖端的,当然在内核上也不列外。内核是操作系统最基本的部分。所以RHEL 4内核各个方面都是经过很多考验的。下面就来给大家详细的介绍一下RHEL 4内核。


一、RHEL 4内核准备

首先下载内核的压缩包,注意需要完整的压缩包,而不是文件名里有patch的那种,那种是用来升级的。用升级包来升级的话出错就进不了系统,无法调整所以风险较大,这里不予讨论。将压缩包解压后得到类似linux-2.6.14的文件夹,将这一文件夹移动到 /usr/src/ 下。此时确保你已经正确安装gcc,编译工作马上就可以开始了。


二、RHEL 4内核编译

[paul@ParhWorkStation ~]$ su
Password:获得root的权限。
[root@ParhWorkStation paul]#cd /usr/src/linux-2.6.14,进入内核目录。
[root@ParhWorkStation linux-2.6.14]#make mrproper,清除从前编译遗迹,注意这一步必不可少,少了这一步会导致编译出错。                    
[root@ParhWorkStation linux-2.6.14]#make gconfig,打开图形化的配置菜单,Gnome的用户执行make gconfig(基于Gtk),KDE的用户执行make xconfig(基于Qt)。


当然还可以选择make menuconfig或make config,如果你想体验一下linux前辈们的辛苦的话。


在配置的过程中,有几点要提一下。配置的选项大部分是对硬件的支持,你一定对自己电脑的硬件很熟悉,那么那些多余的乱七八糟的驱动就可以去掉了。每一次对选项的双击会使选项遵循由Y-->M-->N的循环,Y是编译进内核,M是编译成模块,N是不进行编译。Y的话是钩,M 的话是杠,N的话就是空的啦。编译进内核的话就是只要系统在跑,编译的功能就在运行,而编译成模块则是用的着的时候才加载到内核中运行,用不着的时候可以从内核中卸载以释放内存,这显然是Linux内核的一个巨大优点。因此一般的硬件驱动都可以编译成模块,只有几个例外,其中就有硬盘控制器的驱动。


为什么硬盘控制器不能编译成模块当你最初引导内核的时候,引导的其实是一个驻留在/boot下的内核的压缩镜像,由这个镜像挂载硬盘分区和文件系统,进而读取分区上的数据,同时加载模块。如果没有将硬盘控制器驱动编译进内核,内核就无法读取分区,更不可能加载模块了!怎么?还没理解?想想先有鸡还是先有蛋吧!因此,要特别注意选项里对SCSI或是IDE硬盘的支持,根据自己的情况将选项选为Y,同时建议将主分区(即挂载在/上的分区)分区格式的支持也编译进内核。例如ext3。在新的内核中ntfs分区格式的支持已经包括,很好用。


另外要提的一点是'development', 'experimental', 'debugging'这几个在'kernel hacking'下的选项,除非你真的需要,(不过反过来,如果你需要的话就不会来看本文这么初级的文章了)不要选它们。它们会使你的内核更大,也更慢。


配置好之后可以选择 'Save as...'l来以文本的形式备份所作的配置,这样如果需要再次编译,就不用重新一项项选了。最后保存,关掉窗口。


◆[root@ParhWorkStation linux-2.6.14]#make,开始编译,这时可以吃点零食犒劳一下,或者去床上数几只绵羊。这个过程会持续一会儿,长度与你电脑的内存成反比。


◆[root@ParhWorkStation linux-2.6.14]#make modules_install,编译好后执行这个命令安装模块,这个过程快多了。好了,编译就到这里。


三、RHEL 4内核安装

◆[root@ParhWorkStation linux-2.6.14]#cp /usr/src/linux-2.6.14/arch/i386/boot/bzImage /boot/vmlinuz-2.6.14


◆[root@ParhWorkStation linux-2.6.14]#cp System.map /boot/System.map-2.6.14


这是将编译过程中产生的镜像复制到/boot分区下,使Grub(假定你安装时选择默认的引导器)能够引导。


◆[root@ParhWorkStation linux-2.6.14]#/sbin/new-kernel-pkg --mkinitrd --depmod --install 2.6.14,redhat提供这么一个工具用来生成引导时的initrd文件,里  面包含了启动系统的初始信息。同时,--install参数更新了/boot /grub/grub.conf 中的信息,添加了新内核的引导项。如果你不满意默认的引导标题等等,可以自己  vim /boot/grub/grub.conf,那个配置文件可读性很强的,不会有问题。如果有激活SELinux,那么请vim /etc/selinux/config,将SELinux disable掉,因为新内核可能无法加载SELinux。


四、重新启动

上述就是笔者对于RHEL 4内核的详细介绍和解析,RHEL 4内核可是说是非常简单和方便的,希望通过笔者的介绍可以帮助到大家对RHEL 4内核的了解和认识。