Chinaunix首页 | 论坛 | 博客
  • 博客访问: 163793
  • 博文数量: 18
  • 博客积分: 299
  • 博客等级: 二等列兵
  • 技术积分: 731
  • 用 户 组: 普通用户
  • 注册时间: 2011-02-19 00:39
文章分类

全部博文(18)

文章存档

2013年(7)

2012年(11)

分类: 嵌入式

2012-06-13 11:14:23

纯粹把过程记录下来,备份一下。

过程比较纠结。。

首先编译了一个android2-1,内核版本是2.6.28的版本,用fedora 8gcc版本是4.1.2 ,成功编译,烧写到话机,开机,长时间黑屏,无法开机,看了一下串口输出信息,提示

Load Kernel...
Uncompressing Linux......................................................................................................................................................... done, booting the kernel.

似乎是进入kernel后就一直挂在那里了,郁闷,由于之前认为可能是代码传到svn服务器上有影响,于是又拉了一份在本地编译,编译成功,问题依然存在。之后找了Linux内核是2.6.36的编译,之后依然有问题,但是从串口显示情况看来booting kernel是成功了,后来download了一个编译好的2.3的安卓的版本,成功开机。于是放弃android 2.1 编译了android 2.3.4,至此悲剧开始了,编译之后,有诸多问题,glibc该库版本为2.5,但是提示系统需要的版本为2.11以上,由于机器不能上网,所以首先下载了glibc-2.12.1.tar.bz2 进行源码编译,configure之后,没有成功生成Make,查看config.log文件,提示缺少某个库的,我看了下/lib下面是有该库的其他版本,但是多了后缀,于是做了一个该库的软连接,之后提示依然报错,用vim搜索一下/error之后发现有个叫#include 的头文件提示不存在,于是寻找该头文件包含于哪个库当中,皆没有找到。最后google了一下找到答案:

That's a _good_ thing.  We _expect_ that compilation error, to prove

 that we are correctly detecting how your compiler detects and rejects

 broken source code that refers to a non-existent header (knowing how the

 compiler detects missing headers is essential for later tests of

 AC_CHECK_HEADERS to see which headers are present).

Not all failed compilations are bugs.

我了个去,搞了半天这个还不是错误,继续搜寻error,又有一个问题:

Unrecognized command line option "-fno-toplevel-reorder"

Unrecognized command line option "-fno-section-anchors"

提示说明gcc无法辨认当前的option,目前的gcc版本4.1.2google了一下说有这2个参数的起码要4.2版本以上才支持,于是我又下载了一个gcc-4.5-20111201.tar.bz2的包,编译了一下,又是一大堆依赖。。然后查了一下readme,在gcc/doc/install.text里面,上面说necessary to build gcc can be downloaded from 于是到该网站上下载需要的依赖包进行编译,他们分别是mpfr-2.4.2.tar.bz2, gmp-4.3.2.tar.bz2, cloog-ppl-0.15.9.tar.gz, cloog-0.16.2.tar.gz, pooma-2.3.0-gcc.tar.gz, cloog-parma-0.16.1.tar.gz,编完之后,configure依然不通过,于是继续把该网站上的所有依赖包全部下载,但是libg++-2.8.1.3.tar.gz dejagnu-20010126.tar.gz无法编译通过,提示需要其他依赖环境。之后我还尝式了用gcc-4.5.1-4.fc14.i686.rpm包安装,但是依然需要安装依赖环境,到这里我已经没想法了。。为了一个错误需要另外解决这么多依赖,这样下去没完没了了,于是我放弃了fedora 8,下载了fedora 14 dvd的版本,重新安装,然后。。。安装又有问题:由于我是硬盘安装,所以自己做了一个启动,但是启动之后提示找不到/images/install.img。。怀疑c盘下面有中文软件,怀疑启动文件格式写错,甚至怀疑u盘有问题,数据拷贝不全。。最后其实需要把images文件直接拷贝到c:\\盘下面才能进行到下一步。。之后分区,格式化,但是到了安装,又提示系统有问题。。无法安装,回到windows,将.iso整个解压下来尝试,相同的问题。一头雾水。。之后对比了fedora 8 fedora 14的文件,发现14里面很多文件都是0kb,于是感觉是不是下载的版本有问题,然后在另外一台机器的虚拟机上也安装了一下fedora14,果然提示系统缺少文件。于是到网上又下载了另外一个源。。这次安装终于对了,但是看了一下那个iso的包里,那些文件其实也是0kb。。饿,这下是歪打正着了。

回到fedora14,简单的安装了一下交叉编译环境就开始编译了,然后,又有问题。系统提示

***glibc detected *** make: free(): invalid next size (fast): 0x0e960fa0
***glibc detected *** make: malloc(): memory corruption: 0x0e960fb8

在这个提示下系统一直没有编译下去,google了一下提示说make的版本不对,需要更新,当前系统Make的版本为3.8.2,但是由于我的工作机器没有网络环境,没有办法直接yum update make ,于是我从fedora 8的包里找到了make-3.8.1rpm,首先,用yum erase make

卸载当前Make 3.8.2然后rpm -ivh make-3.8.1-10.fc8.i386.rpm下载,成功下载。

然后编译,成功编译,下载到arm板上,终于成功开机了。

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