Chinaunix首页 | 论坛 | 博客
  • 博客访问: 772964
  • 博文数量: 215
  • 博客积分: 291
  • 博客等级: 二等列兵
  • 技术积分: 1031
  • 用 户 组: 普通用户
  • 注册时间: 2010-05-12 18:17
文章分类

全部博文(215)

文章存档

2016年(16)

2015年(16)

2014年(123)

2013年(60)

分类: LINUX

2014-06-30 14:43:06

因为本文着重描述编译内核的步骤,关于内核的配置就不介绍了。本文使用:

        ~$  make  O=/home/build/kernel  localmodconfig

        该命令为你的电脑创建一个与当前系统配置相同的的配置。命令执行,会出现一些选项,这些选项会添加一些模块和驱动,根据需要添加。具体的用法自己上网上找 一下,有很多介绍的。此命令执行完成后,/home/build/kernel/目录下不再为空,生成了makefile文件等一些配置文件项。

        有不少资料提到命令:make defconfig,说会创建一个默认的配置,但是我最初编译内核的时候总是出错,没办法引导,黑白屏显示错误信息:
        drm/i915 can't work without intel_agp module
        mount:mounting none on /dev         failed : no such device
        could not mount the platform /dev/sda1
        … ...

        网上找了许多有关错误的说明以及解决办法,但是相关的不是很多,能解决问题的几乎没有。于是自己仔细分析了下原因,根据错误信息,应该是缺少相关模块,没 办法发现驱动和设备。于是仔细跟踪每一步编译过程,观察系统产生的变化,增加了哪些文件,修改了哪些文件信息。每次编译后,发现/lib/modules /2.6.36/kernel/driver目录下只有很少的几个驱动文件夹,而原系统的相关目录/lib/modules/2.6.35- generic/kernel/driver下有数十个文件夹。再进一步,发现实际是每次在编译模块的时候make modules 后终端只显示编译了3个module,也就是说编译的驱动模块太少了。最后,追根溯源,我觉得是内核配置出了问题,被选择添加进内核的功能模块太少了。但 是又不想过于繁重地选择内核的各个模块,在网上搜了一下,找到了 make localmodconfig命令以及简单用法。
        也就是说我在用make defconfig 的时候出了问题,并没有选择足够的模块,但是README以及网上的说法都是说make defconfig是可以的,我也不太清楚究竟问题出在哪,又不想一个一个地选择各个模块,因为毕竟不太清楚那些模块的具体作用,所以采用了make localmodconfig的方法简单地定制模块。如果有哪位高手了解情况,请帮忙解答哈。
阅读(1646) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~