作者:北南南北
来自:linuxsir.org
提要:在kernel 2.6x和以前的版本的编译方法有点区别,所以就简单的把编译过程写出来,主要是帮助初学linux的兄弟。
kernle 2.6x 编译比较简单,最适合我等菜鸟!!
本文是以redhat为例,内版本是2.6.0-test8
一、下载
http://www.kernel.org
二、解压
1.把下载好的内核放到/usr/src目录中,比如我下载的是linux-2.6.0-test8.tar.bz2
#mv linux-2.6.0-test8.tar.bz2 /usr/src
#tar jxvf linux-2.6.0-test8.tar.bz2
2.进入相应的目录编译和安装,进入内核选项设置
#cd linux-2.6.0-test8
#make mrproper
#make menuconfig
进入内核选项卡,m是以模快方式编译,*是直接编入内核
致于哪些要编入内核,哪些要编译成模块。在文章管理器和基础讨论区的帖子中都有,自己试着找一找。另外内核中的doc也有相应的文档
3.编译和安装内核
#make
#sudo make install
这个过程是编译和安装内核的过程,系统自动为我们做了哪些事?
1]系统会在/usr/src/linux/arch/i386/boot/目录中产生bzimage,并把bzimage复制为vmlinuz-2.6.0-test8到/boot目录中,并创建议vmlinuz-2.6.0-test8的链接vmlinuz;
2]在/boot目录中,系统会产生system.map-2.6.0-test8,以及创建它的链接system.map;
3]在/boot目录中,自动生为initrd-2.6.0-test8.img;
4]修改/etc/grub.conf 文件,加入了新内核的启动项。
[注]经大熊宝宝兄的提示,怕初学的弟兄不明白这个过程,所以就把这个过程详细的写出来,所以我也做了补充。以上的四点都是系统自动安装内核时所做的任务。查看一下/boot目录中的文件以及/etc/grub.conf就明白了。这一点和以往2.4.x不一样的地方。做个比喻就是2.4.x还是半自动的,上面的东西要执行好多个命令,而在2.6.x中,一步就到位,是全自动的!
4.编译和安装模快
#make modules
#make modules_install
5.设置/etc/grub.conf,我不用lilo,更确切的来说,我不太懂,所以只能说grub的设置办法。
为什么要设置这个呢?其实在编译和安装内核的过程中,系统已经自动把新内核的启动项直接添加到了/etc/grub.conf中。当我们不对/etc/grub.conf进行改动,直接启用新内核会发现vfs错误之类的提示。
下面的是我安装后新内核后,没有改动过的/etc/grub.conf
title fedora core (2.6.0-test8)
root (hd0,7)
kernel /boot/vmlinuz-2.6.0-test8 ro root=label=/
initrd /boot/initrd-2.6.0-test8.img
title fedora core (2.4.22-1.2061.nptl)
lock
root (hd0,7)
kernel /boot/vmlinuz-2.4.22-1.2061.nptl ro root=label=/
initrd /boot/initrd-2.4.22-1.2061.nptl.img
改动后的就是
title fedora core (2.6.0-test8)
root (hd0,7)
kernel /boot/vmlinuz-2.6.0-test8 ro root=/dev/hda8
initrd /boot/initrd-2.6.0-test8.img
title fedora core (2.4.22-1.2061.nptl)
lock
root (hd0,7)
kernel /boot/vmlinuz-2.4.22-1.2061.nptl ro root=label=/
initrd /boot/initrd-2.4.22-1.2061.nptl.img
对比改动过的/etc/grub.conf,我们不难发现,我们在新内核2.x中,指定root的根分区所在的位置时,没有用标签label=/,而是用的是真正的分区位置。
请对linux不太熟的弟兄,不要照搬我的分区设置。如果想知道这方面的,在基础讨论区中,有关于grub和分区访问的文章,在文章管理器中也有。
最后还有一点就是如果显示卡原来安装过驱动,就要在新内核中重新安装。比如我用的是nvidia的显卡,我下载的是linuxsir.org的下载区中,哈兄提供的打过补丁的nvidia的驱动。装上就ok了。
可能文中有不少错误,请大家指正。
多谢
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器