Chinaunix首页 | 论坛 | 博客
  • 博客访问: 239444
  • 博文数量: 39
  • 博客积分: 199
  • 博客等级: 二等列兵
  • 技术积分: 426
  • 用 户 组: 普通用户
  • 注册时间: 2010-03-25 14:39
个人简介

博客已全部转移至个人站 www.jasonwho.com

文章分类

全部博文(39)

文章存档

2017年(2)

2014年(1)

2013年(28)

2010年(8)

分类: LINUX

2013-04-09 11:11:33

      操作步骤:

  • 下载准备编译的内核源代码(),本文使用的是linux-2.6.18.tar.bz2;
  • 把linux-2.6.18.tar.bz2复制到虚拟机的/usr/src目录下,本文安装的是RHEL5.3;
  • 解压linux-2.6.18.tar.bz2: tar jxvf linux-2.6.18.tar.bz2,并建立软件连接ln linux-2.6.18 linux;
  • cd linux;
  • make mrproper-Delete the current configuration, and all generated files,这是linux源码根目录下Makefile中的解释,由此可见其与一般的make clean的区别。基本上所有make操作,如果有不明白的都可以查看原始Makefile中的说明,权威而精辟,避免走弯路;
  • 编译前配置内核:make config或make menuconfig—前者是命令行文本交互,后者是图形化菜单; 说明:如果是初次练习编译内核,大可不必修改配置,全部使用默认即可;如是编写针对特别设备的程序,则需要根据实际使用   情况进行配置;三种配置选项需要说明:Y—编译进内核;N—不编译进内核;M—编译成使用时可动态加载进内核形式;
  • make clean—清理之前编译产生的历史文件;
  • 编译内核。编译内核有两种方式,一种是编译成zImage,一种是编译成bzImage;区别在于前者用于内核较小的情形,后者用于内核较大的情形,b即"big",两者都是vmlinux内核文件。本文操作时使用的是make bzImage,在interP8600 2.4G, 2G内存,32bit Win7下采用默认内核配置,编译完成耗时约16分钟。编译完成生成的bzImage位于/usr/src/linux/arch/i386/boot下;
  • 编译内核模块:make modules—编译之前配置选择的模块;
  • 安装编译好的模块:make modules_install—转移编译好的模块到系统的标准位置;注意:最好在安装前备份原内核模块文件—/lib/modules,备份内核启动文件/boot,备份系统头文件/usr/include/linux,备份重要的配置目录/etc;
  • 安装新内核:make install——该操作将把镜像文件bImage拷贝到/boot目录,并创建相应的System.map符号连接;然后,修改bootloader配置文件,调用mkinitrd程序创建内核的initrd镜像;通常会在GRUB配置文件中增加相应的镜像启动配置行;
  • 检查/boot/grub/grub.conf中的内容(示例如下),确保无误后,重启机器,进行新内核测试;
  1. # grub.conf generated by anaconda
  2. #
  3. # Note that you do not have to rerun grub after making changes to this file
  4. # NOTICE: You have a /boot partition. This means that
  5. # all kernel and initrd paths are relative to /boot/, eg.
  6. # root (hd0,0)
  7. # kernel /vmlinuz-version ro root=/dev/VolGroup00/LogVol00
  8. # initrd /initrd-version.img
  9. #boot=/dev/hda
  10. default=0
  11. timeout=5
  12. splashimage=(hd0,0)/grub/splash.xpm.gz
  13. hiddenmenu
  14. title Red Hat Enterprise Linux Server (2.6.18-128.el5)
  15. root (hd0,0)
  16. kernel /vmlinuz-2.6.18-128.el5 ro root=/dev/VolGroup00/LogVol00 rhgb quiet
  17. initrd /initrd-2.6.18-128.el5.img


阅读(2138) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~