Linux 2.6.34内核编译步骤

本文介绍了如何编译Linux 2.6.34内核,包括下载新版本内核源码,进行make,make modules_install及make install等关键步骤,适用于对Linux内核感兴趣的开发者。

  因为想使用26sec相关的东西,所以想下载个新版本的kernel玩玩。


  基础知识:
  uname -r
  2.6.18-164.e15xen
  [主版本].[次版本].[发布版本(release)]-[修改版本]
     2    .   6    .     18            - 164
  次版本为奇数是“测试性质的”如2.3, 2.5
  次版本为偶数的“稳定版本”如2.4,2.6

   基础设施:
   VMWare + CentOS 5.4 2.6.18-164.el5xen
   终端:AbsoluteTelnet(编译内核时还是不要用终端,直接进VMware编译,不然终端一挂,编译过程就中断)

   相同的主次版本表示使用的函数库差不多,可以直接升级到较高的发布版本。
   所以由2.6.18->2.6.34可直接升级。
 
  编译步骤:
  1,下载内核源码,最新貌似为2.6.38(2012-04-22),因为上不了网,还是上回下载的2.6.34,就使用34吧。
  2,tar -jxvf linux2.6.34.tar.bz2   (gz压缩格式使用-zxvf解压)
  3,make menuconfig 配置内核
     这次只关注Ipsec,所以在Networking里把Ipsec的所有选项以模块M的形式编进内核即可(默认已经是M)。
     *表示编进核心。
      其它选项没好好研究过,有空有需要了再看看吧。可以参考《鸟哥私房菜:基础学习》、《Linux内核修炼之道》
  4,编译内核,执行make -j2(听说可以加快编译速度)。前两年编过一回内核,大概得40多分钟,现在不知道要多长时间?(1个半小时……)
  5,安装内核模块,执行make modules_install
  6,安装内核,make install
     Linux所谓的安装即是拷贝下文件,修改下配置文件,rpm -ivh安装rpm包时也是同理,所以把相关配置文件和内核文件拷走放到其它2.6内核中即可。
     (1),复制内核映像到/boot,编译成功后生成的内核映像文件bzImage放在arch/x86/boot/中,该文件复制到
         /boot后重命名为vmlinuxz-<kernal-version>
     (2),生成initrd-<kernal-version>.img文件  
     (3),配置引导程序(一般是/boot/grub/grub.conf,还有一种LILO没遇见过)
  7,reboot进入新内核。

上面那些就依葫芦画瓢没什么难度,关键时编译和启动过程出现了问题:
1,ld: unrecognized option '--build-id'
 编译不过

  CHK     include/generated/compile.h
  UPD     include/generated/compile.h
  CC      init/version.o
  LD      init/built-in.o
  LD      .tmp_vm
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值