快速业务通道

Cygwin下vivi和kernel编译全攻略

作者 佚名技术 来源 Linux系统 浏览 发布时间 2012-04-21

  4、编译kernel:

  这是最痛苦的一步,开发中心里虽然有这个条目,但还没放上去.只好自己摸,搞了好几天.

  kernel的源程序在上面编译vivi时已经解到/friendly-arm/kernel中了.这个程序包已在Linux中编译过,有一些中间和目标代码和Cygwin是不兼容的.先处理一下,否则不能正常进行编译.

  ,还是把kennel里所有的“*.o”和“*.o.flag”文件删掉,以免不必要的麻烦.然后进入/friendly-arm/kernel目录,可以输一下“make menuconfig”试试.结果提示出错.这是配置脚本已在Linux中编译过,在scripts/lxdialog里产生了一个Linux下的可执行程序lxdialog.在Cygwin里这是个坏东西,它既不能执行,还会阻止可执行程序的生成.把它删掉.类似的文件如下:

Empire CMS,phome.net

  /friendly-arm/kernel/scripts/lxdialog/lxdialog

  /friendly-arm/kernel/scripts/mkdep

  /friendly-arm/kernel/scripts/split-include

  /friendly-arm/kernel/drivers/char/conmakehash

  /friendly-arm/kernel/drivers/net/hamradio/soundmodem/gentbl

  这几个文件删掉,注重是没有扩展名的文件,不要把源文件“*.c”删掉!

  现在应该可以用“make menuconfig”进行配置了.这里的选项太多,先Load包里的config.friendly配置,待会儿再慢慢研究各个选项吧.同样,Exit时一定要选“Yes”保存配置.

  下面可以开始编译了.输入“make zImage”,可以看见开始一个个模块的编译.但是过了一、二分钟,就会报一个错,大概是说“/friendly-arm/kernel/include/asm/arch/ide.h”没找到.这个问题很希奇,按理说头文件丢失是个低级错误,不可能发现不了,不知道RH9中编译是否也有同样问题.可以这样解决,从别的地方复制一个ide.h过来,只要其中有相应的两个函数定义就可以了.比如:

  cp /friendly-arm/kernel/include/asm/arch-l7200/ide.h /friendly-arm/kernel/include/asm/arch/ide.h

  再执行“make zImage”应该可以完成编译了.不过时间比较长,得要好几分钟.不报错的话,在/friendly-arm/kernel/arch/arm/boot目录里会生成你编译的zImage .

  接下来,也许你打算自己修改一下“make menuconfig”里的配置.这里有个比较麻烦的问题,你最好先把“/friendly-arm/kernel/.hdepend”这个文件备份一下.问题是这样的:当你修改了某些比较要害的选项后,会提示你进行“make dep”.此时即使你直接进行“make zImage”,该过程亦会自动先运行.一旦执行到一个要生成“.hdepend”的命令时会提示命令参数太长.再看.hdepend已成了一个空文件. arm开发论坛

  这个“.hdepend”真是个头痛的问题,估计在RH9里应该没这种事,否则这编译根本进行不下去.开始想把Cygwin的设置改一下应该就可以了,可找了半天也没找到有关的设置.求助杨工,倒是给了一个办法,可还是不顶用.直到现在,这个问题仍没有很好的解决.不过,把我自己用的两个方法写出来给大家参考一下:

  a)把备份好的“.hdepend”复制回来,修改“/friendly-arm/kernel/Makefile”,将其中一行“scripts/mkdep -- `find $(FINDHPATH) -name SCCS -prune -o -follow -name *.h ! -name modversions.h -print` > .hdepend”的行首加一个“#”字符.实际上就是直接使用原有的“.hdepend”,编译时跳过重新生成该文件.此法已经试过,是可以的.但有什么副作用不知道!

Empire CMS,phome.net

  b)仍然要把“Makefile”中生成“.hdepend”那一行去掉,换成下面三个命令行:

  scripts/mkdep -- `find $(HPATH)/asm -name SCCS -prune -o -follow -name *.h ! -name modversions.h -print` > .hdepend

  scripts/mkdep -- `find $(HPATH)/linux -name SCCS -prune -o -follow -name *.h ! -name modve

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号