内核编译(一)

大致流程为:下载内核代码 -> 修改内核配置(make menuconfig/gconfig/xconfig) -> 构建内核( make  ) -> 安装内核( make modules_install -> make install )


此次编译只为熟悉流程了解原理

修改内核配置  采用默认配置.  此处应该正确选择驱动的类型

构建内核 直接用make, 将生成vmlinux, 未压缩的静态内核, 还 会在arch/i386/boot下生成bzImage经压缩后的内核( 事实上, 该文件仅为一个符号, 会指向的原型位于config定义的体系文件下, 如x86/boot/bzImagne. 在编译的过程中, 由于GCC的版本较高(4.7版本), 出现了些编译问题, 参考:gcc4.7编译linux2.6.30的错误解决方法.

安装内核 首先要确定装有module-init-tools工具, 否则在make modules_install会出现错误 -- 无法找到/lib/modules/2.6.30/modules.builtin这个文件, 只要装上这个工具, 就可以了, 但搞笑的是, 这个缺失的文件仍然没有, 也不会再有这个错误, 难道这个是安装过程中的临时文件吗?

另外在安装module-init-tools时, 出现了这样的问题:

[root@(none) m]# rpm -ivhmodule-init-tools-3.16-5.fc17.i686.rpm

error: Failed dependencies:

       module-init-tools < 4.0-1 is obsoleted by (installed)kmod-7-1.fc17.i686

明明Kmod代替了module-init-tools, 但似乎编译过程不能识别, 总之, 使用--nodeps --force选项能解决问题就不管了

最后, Make install中已经包含了修改bootloader的功能, 无需手动修改. 这里需要注意的是, grub2的实现与grub有很大不同了, 首先, 没有了menu.lst这个文件, 而且 grub.conf也改为叫grub.cfg, 另外, /boot/下的grub.cfg位于grub2下, 而非grub, 最主要的是grub.cfg的语法格式有较大不同, 不过可读性也很好. 

这样, 直接重启后, 在grub上即可选择新内核进入, 但由于此次在配置内核时采用的默认配置, 故启动后卡死在了Loading initial ramdisk处, 接下来将学习如何定制内核.

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值