Kernel 2.6x 编译过程

     

作者:北南南北

   提要: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了。

   对比改动过的/etc/grub.conf,我们不难发现,我们在新内核2.x中,指定root的根分区所在的位置时,没有用标签LABEL=/,而是用的是真正的分区位置。
请对Linux不太熟的弟兄,不要照搬我的分区设置。如果想知道这方面的,在基础讨论区中,有关于GRUB和分区访问的文章,在文章管理器中也有。

最后还有一点就是如果显示卡原来安装过驱动,就要在新内核中重新安装。比如我用的是NVIDIA的显卡,我下载的是LinuxSir.Org的下载区中,哈兄提供的打过补丁的NVIDIA的驱动。装上就OK了。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值