随笔 - 11  文章 - 7 评论 - 0 阅读 - 6681
< 2025年7月 >
29 30 1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31 1 2
3 4 5 6 7 8 9

0、所先,人文要求:有打不死的小强精神,会折腾.

1、参考网站:http://linux-sunxi.org/Android

2、系统要求,64位ubuntu,32位的可以编译,但不能打包live suite 所需的 img镜像,我用的是ubuntu 12.04。(其间遇到很多问题,jdk各个版本试了个遍,在32位系统与64位系统来回试,茶不思,饭不想,睡不香

3、 jdk java1.6.22 64bit。

4、需要安装64系统调用32位程序所需的包

sudo apt-get install ia32-libs  

5、在ubuntu 10.04下 repo sync 会出错,是git 版本过低造成的,想办法升级之,再repo sync

6、按照要求编译系统,其间会出现xx命令找不到,用sudo apt-get install xx 基本能解决问题,再不行必应google 之。

7、编译若干小时后,发现某些java程序编译不过去,比如编译~/cubie_android_ics/packages/apps/Camera/src/com/android/camera/Camera.java 时会提示找不到符号,把/~/cubie_android_ics/packages/apps/Camera/Android.mk  改成 /home/lynd/cubie_android_ics/packages/apps/Camera/Android.m_k,把~/cubie_android_ics/packages/apps/Camera/tests/Android.mk 改成/home/lynd/cubie_android_ics/packages/apps/Camera/tests/Android.m_k ,再次make 就不会把该目录下的文件编译进去了,如果你实在要编译进去,从其他版本上去拷过来吧,这几个文件确实有错误。

8、编译完,就开始打包live suite 镜像了

./tools/pack-cm.sh

可惜,也出现问题了,提示找不到u-boot.bin,ok,这个问题好解决,从http://linux-sunxi.org/FirstSteps里头去整一个u-boot.bin,但是呢,该uboot 只支持mmc启动,不支持nand ,启动时会提示找不到mmc,这是后面发现的。

用必应搜一下 “A10 boot”,真不错,搜出来的第一条就是答案 ,用百度打死都找不出来。

http://rhombus-tech.net/allwinner_a10/u-boot/

git clone http://git.hands.com/u-boot.git
cd u-boot
git checkout lichee-dev
make sun4i CROSS_COMPILE=arm-linux-gnueabihf-

然后把编译出来的uboot.bin放到cubie_android_ics/out目录下

再次

./tools/pack-cm.sh

哎,什么东东呢,又是failed,最怕failed

.....................笔者注取后面几行.................
c:\sprite
c:\magic.bin
find magic !! 
RealLen=0x6A1400
CPlugin Free lib 
CPlugin Free lib 
FileLength=6a1400 FileSizeHigh=0
FileLength=40000 FileSizeHigh=0
FileLength=447000 FileSizeHigh=0
 CreateFile failed 2
FileLength=5ef000 FileSizeHigh=0
/home/lynd/cubie_android_ics/tools/pack/pctools/linux/eDragonEx//home/lynd/cubie_android_ics/tools/pack/outFile system.fex Not ExistBuildImg 360
Dragon execute image.cfg Failed ! 360
CPlugin Free lib 
CPlugin Free lib 

弄了好久,也找不出结果,

百度google必应都不灵了,

...无数failed过后...

但是呢,也许我运气还是好一点,我猜想这可能也是pack时,某个文件没找到,有可能就是那个最重要的system.img,

然后鬼使神差地:

cp out/target/product/generic/system.img  out/target/product/cubieboard/

再一次

./tools/pack-cm.sh

不敢相信自己的眼睛,结果成功了:

c:\sprite
c:\magic.bin
find magic !! 
RealLen=0x6A1400
CPlugin Free lib 
CPlugin Free lib 
FileLength=6a1400 FileSizeHigh=0
FileLength=40000 FileSizeHigh=0
FileLength=447000 FileSizeHigh=0
FileLength=9559140 FileSizeHigh=0
FileLength=5ef000 FileSizeHigh=0
/home/lynd/cubie_android_ics/tools/pack/pctools/linux/eDragonEx//home/lynd/cubie_android_ics/tools/pack/outBuildImg 0
Dragon execute image.cfg SUCCESS !
CPlugin Free lib 
CPlugin Free lib 
---------image is at-------------

/home/lynd/cubie_android_ics/tools/pack/sun4i_crane_cubieboard.img

 

 

 

 

posted @ 2012-12-19 21:33 林德伟 阅读(1320) 评论(0) 推荐(0)
摘要: #define PRINT_INT( n ) printf( #n " = %d\n", n )#define PRINT_STRING( s ) printf( #s " = %s\n", s )//使用方法void test(void){ int a = 0; char str[] = "test string"; a++; PRINT_INT(a); PRINT_STRING(str);} 阅读全文
posted @ 2012-10-24 23:14 林德伟 阅读(205) 评论(0) 推荐(0)
摘要: 一、open#include <sys/types.h>#include <sys/stat.h>#include <fcntl.h>int open(const char *pathname, int flags);int open(const char *pathname, int flags, mode_t mode);//返回值:成功返回新分配的文件描述符,出错返回-1并设置errnoopen函数在C代码里面的实际声明为int open(const char *pathname, int flags, ...);其中flags的主先参数有,O_RDO 阅读全文
posted @ 2012-10-23 22:22 林德伟 阅读(288) 评论(0) 推荐(0)
摘要: __LINE__ 当前语句所在的行号, 以10进制整数标注.__FILE__ 当前源文件的文件名, 以字符串常量标注.__DATE__ 程序被编译的日期, 以"Mmm dd yyyy"格式的字符串标注.__TIME__ 程序被编译的时间, 以"hh:mm:ss"格式的字符串标注, 该时间由asctime返回. 阅读全文
posted @ 2012-10-18 22:27 林德伟 阅读(196) 评论(0) 推荐(0)
摘要: 在编写嵌入式设备程序的时候,往往需要用printf函数来跟踪程序的运行情况,但当程序越来越大时,printf就用得越多,打印的信息也就多了起来。程序发布之前,我们又往往会把printf去掉。这种做法不仅费时,而且是对工作成果的一种浪费,如果下一次想要查看调试信息的时候,就回不来了。 我们现在就用宏来解决这个问题//log.h#ifndef LOG_H#define LOG_H//#define LOG_FILE //以文件的形式输出#define LOG_PRINT //以printf的形式输出 //如果都不定义,则不输出#if... 阅读全文
posted @ 2012-10-18 21:56 林德伟 阅读(771) 评论(0) 推荐(0)
摘要: C语言标准文件操作函数的头文件为 stdio.h1、FILE *fopen(const char *path, const char *mode);/*成功则返回文件指针,出错返回NULL并设置errno*/打开方式mode 有6种,分别是"r",只读"w",只写,如果文件不存在则创建,如果文件存在则把文件截断为0字节再重新写"a",只能在文件尾追加数据,如果不存在则创建"r+",允读和写,文件必须存在"w+",允许读和写,如果文件不存在,则创建,如果存在,则把件截断为0字节再重新写" 阅读全文
posted @ 2012-09-05 22:51 林德伟 阅读(475) 评论(0) 推荐(0)
摘要: 到目前为止,C语言作为我的工作的方式已经整整三年,照说应该很熟练才是,但事实非如此,一些常用的操作根本没去记,要用的时候才去查,就导致了编程变慢了,还是记一记吧。1、meset, memcmp,memcpy,strcpy,这几个熟了,pass2、size_t strlen(const char *s);//取字符串的长度C语言的字符串就是一个数组,并以'\0'结束,比如strlen("hello")返回值为5,而sizeof("hello")则为6。strlen没把'\0'算进去。java 的字符串是一个对像,其实也就是一 阅读全文
posted @ 2012-09-04 23:14 林德伟 阅读(237) 评论(0) 推荐(0)
摘要: loader.c 加载文件用法Loader_Handle Loader_create(Char *fileName, Loader_Attrs *attrs);/*创建loader*/Int Loader_prime(Loader_Handle hLoader, Buffer_Handle *hBufPtr);/*读第一帧*/Int Loader_readData(Loader_Handle hLoader);/*读帧*/关键结构体/* Internal object holding the state of the Loader */typedef struct Loader_Object 阅读全文
posted @ 2011-12-22 15:42 林德伟 阅读(678) 评论(0) 推荐(0)
摘要: ffmpeg 开发视频截图 http://blog.csdn.net/bluestn/article/details/6132981 阅读全文
posted @ 2011-12-13 23:27 林德伟 阅读(198) 评论(0) 推荐(0)
摘要: ffmpeg aac+h264=>mp4ffmpeg -i "track1.h264" -i "track2.aac" -vcodec copy -acodec copy -absf aac_adtstoasc "res.mp4" 阅读全文
posted @ 2011-12-13 17:25 林德伟 阅读(995) 评论(0) 推荐(0)
点击右上角即可分享
微信分享提示