免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1144 | 回复: 0
打印 上一主题 下一主题

rebuild kernel [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-11-17 12:28 |只看该作者 |倒序浏览

         
Contents
1 准备工作
1.1 收集硬件信息
1.2 指定唯一标志
1.3 备份config文件
2 编译内核
2.1 创建Ramdisk
3 安装内核
3.1 修改gurb
4 2.6内核编译优化
               
      
      
        
      
   
   
   
   
   
   
   
   
  
准备工作
收集硬件信息
         /sbin/lspci
可以获得usb,网卡,显卡等信息。
         cat
/proc/cpuinfo 获得cpu信息。

指定唯一标志
在Makefile中最开始的几行:

  
                 VERSION
  = 2
                 PATCHLEVEL
  = 4
                 SUBLEVEL
  = 22
                 EXTRAVERSION
  = -1
                 
  

在安装内核的时候,所有模块会被按照如下形式cp到/lib/modules下,
/lib/modules/$VERSION.$PATCHLEVEL.$SUBLEVEL-$EXTRAVERSION.
所以为了避免覆盖掉以前的系统模块,要修改EXTRAVERSION为一个有意义的唯一标示。

备份config文件

  $ cd linux
  
$ cp .config config.save
  



  
  
make mrproper --> 回到初始裝態 (移除 *.o , 清除".config")
  make clean --> 移除 *.o (不會清除 ".config")
  


编译内核

  
  
make menuconfig
  

自然是执行make menuconfig,如果有图形环境推荐使用make xconfig。
具体配置过程根据需要配置,对于每个选项的意义可以参考:
内核编译配置选项简介>>
----作者:
金步国


配置完成后,如果是2.4内核需要使用make dep生成依赖信息,在2.6内核不需要dep。在编译的时候自动会执行dep

然后执行:

  $make clean



  $make bzImage

编译后镜像在arch/i386/boot目录下

  $ make modules$ sudo make modules_install

模块会被cp到/lib/modules/KERNEL_VERSION.
创建Ramdisk
系统启动需要加载根文件系统,但是要加载跟文件系统在没有驱动之前是不能加载的,而驱动程序又在操作系统内。为解决这个问题就要使用initrd。Ramdisk镜像可以加载文件系统中的驱动。制作ramdisk

  $ mkinitrd /boot/initrd-2.6.0.img 2.6.0


安装内核

  
  $ cp arch/i386/boot/bzImage
  /boot/bzImage-KERNEL_VERSION

  $ cp System.map
  /boot/System.map-KERNEL_VERSION

  $ ln -s /boot/System.map-KERNEL_VERSION
  /boot/System.map

  

把编译生成的bzImage和System.map复制到/boot目录下,
bzImage可以改成vmlinuz也可以不改名。

修改gurb
在menu.list中添加

  title Test Kernel (2.6.0)root (hd0,1)kernel /boot/bzImage-2.6.0 ro root=LABEL=/
  
initrd /boot/initrd-2.6.0.img
  


   
   
   
   
   
   
   
   
  
2.6内核编译优化
编译2.6内核不需要这么多步骤,2.6内核作了优化,只需要执行
make
make install
make  时系统会自动完成make  
dep   和   make   bzImage   所做的工作。
sudo   mkinitrd   /boot/initrd.img-2.6.15.1     2.6.15.1也不用,
make
  install会自动作的,并且在grub中加入新内核的启动项。


本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u2/84810/showart_1420024.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP