QT210 android2.3 和android4.0 烧写编译日记
QT210下载烧录编译android2.3过程
工作环境:ubuntu12.04.5 | QT210开发板光盘 | QT210开发板
android2.3编译环境:gcc version 4.4.7 | java version 6 | java version 5 | git version 1.7.9.5
tips by chsry:浅灰色是终端窗口运行保存的部分命令和信息,ubuntu14.04无法编译QT210 android2.3(无法安装java6)
安装好ubuntu12.04.5后,最开始的工作是更新软件。点击进入update manager将软件更新到最新的状态。等系统全部更新好软件后,继续后面。
搭建交叉编译环境,将安装所需要的 4 个文件
arm-2009q3-67-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.tar
u-boot-samsung-dev.bz2
android-kernel-samsung-dev-full.bz2
android-samsung-dev-full-rtl81xx.bz2
在/home/work/目录下建立新的文件夹“QT210”,把文件拷贝到这个目录
在终端下输入以下内容,在/usr/local 创建 arm 目录,必须加创建目录命令前面必须加 sudo
cd /usr/local
sudo mkdir arm
然后转到 QT210 目录下,解压工具链到/usr/local/arm 目录
sudo tar jxvf arm-2009q3-67-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.tar -C /usr/local/arm/
(注意!此命令在同一行上,不要用回车换行!图片上的换行是文字输入超过窗口宽度时候自动换行,以下所有操作相同。)
命令前面加 sudo,有时会要求输入用户密码,输完后回车,后续都如此操作,不再提示。
查看工具链是否安装正确,输入
ls /usr/local/arm/arm-2009q3/bin/
为了重启后也可以直接在shell编辑器运行此工具链在/root/.bashrc 文件里末尾一行添加:
export PATH=$PATH:/usr/local/arm/arm-2009q3/bin (也可以直接在终端输入,表明当前对当前用户有效)
(1)编译 U-boot
确保回到 QT210 目录,解压缩 u-boot 的源代码:
命令如下:
tar jxvf u-boot-samsung-dev.bz2
进入 u-boot 代码目录:
命令如下:
cd u-boot-samsung-dev/
清除原来的编译痕迹:
命令如下:
make clean
make distclean
配置单板类型:
make smdkv210single_config
编译:命令:
make
最后将当前目录下生成我们要烧写的目标文件'u-boot.bin'
(2)编译 Kernel
回到/home/armzone/QT210 目录
cd /home/armzone/QT210
压内核源代码包
tar jxvf android-kernel-samsung-dev-full.bz2
cd android-kernel-samsung-dev-full
把 uboot 目录下的 mkimage 文件拷贝到/usr/bin
sudo cp /home/work/QT210/u-boot-samsung-dev/tools/mkimage /usr/bin/
然后执行如下命令:
cp config_QT210_android .config
开始编译内核
编译内核命令如下:
make uImage
编完成后将生成文件'uImage',编译生成的 uImage 位于 arch/arm/boot 目录下!
(3)编译 android
(1)解压缩 android2.3.1 源代码文件,命令如下:
回到 home/work/QT210 目录
(2)安装所必须的很多库文件,这一步很重要,同时需要很耐心:
点击 Save,保存后关闭 gedit
编译过程分两步:第一步安装必要的库,第二部执行编译脚本。
添加完源之后,进行源更新,在终端输入:
sudo apt-get update
(a)库的第一部分,在终端界面里面执行如下命令 :
sudo apt-get install git-core gnupg flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl libncurses5-dev zlib1g-dev g++
(注意!此命令在同一行上,不要插入回车换行!建议把光盘中的 cmd.txt 文件拷贝到虚拟机,然后复制命令,以下操作要求相同,不再重复)
中间会出现下载提示,输入 y,回车即可继续。(后续安装过程,需要下载都会有此提示,按此操作,不再重复)
【发现错误:无法找到libwxgtk2.6-dev,修改如下:】
sudo apt-get install git-core gnupg flex bison gperf libsdl-dev libesd0-dev build-essential zip curl libncurses5-dev zlib1g-dev g++
boot$ sudo apt-get install git-core gnupg flex bison gperf libsdl-dev libesd0-dev build-essential zip curl libncurses5-dev zlib1g-dev g++
The following NEW packages will be installed: bison build-essential curl dpkg-dev esound-common flex g++ g++-4.6 git-core gperf libalgorithm-diff-perl libalgorithm-diff-xs-perl libalgorithm-merge-perl libasound2-dev libaudiofile-dev libaudiofile1 libavahi-client-dev libavahi-common-dev libbison-dev libcaca-dev libdbus-1-dev libdpkg-perl libdrm-dev libesd0 libesd0-dev libfl-dev libgl1-mesa-dev libglib2.0-dev libglu1-mesa-dev libice-dev libncurses5-dev libpcre3-dev libpcrecpp0 libpng12-dev libpthread-stubs0 libpthread-stubs0-dev libpulse-dev libsdl1.2-dev libslang2-dev libsm-dev libstdc++6-4.6-dev libtimedate-perl libtinfo-dev libx11-dev libx11-doc libxau-dev libxcb1-dev libxdmcp-dev libxext-dev libxt-dev m4 mesa-common-dev x11proto-core-dev x11proto-input-dev x11proto-kb-dev x11proto-xext-dev xorg-sgml-doctools xtrans-dev zlib1g-dev
(b)库的第二部分,在终端界面里面执行如下命令
sudo apt-get install gcc-multilib g++-multilib libc6 libc6-dev
>sudo apt-get install gcc-multilib g++-multilib libc6 libc6-dev
The following NEW packages will be installed: g++-4.6-multilib g++-multilib gcc-4.6-multilib gcc-multilib lib64gcc1 lib64gomp1 lib64quadmath0 lib64stdc++6 libc6-amd64 libc6-dev-amd64
继续安装库,在终端输入
sudo apt-get install libncursesw5 libncursesw5-dev libncurses5-dev libncurses5
>sudo apt-get install libncursesw5 libncursesw5-dev libncurses5-dev libncurses5
The following NEW packages will be installed: libncursesw5-dev
Setting up libncursesw5-dev (5.9-4) ...
继续安装库,在终端输入
(c)安装 java 库,包括 sun-java5 和 sun-java6:
首先是安装 sun-java6
在ubuntu12.04版本以下按照的办法(JDK6在ubuntu14.04版本无法使用!!!!)
>sudo gedit /etc/apt/sources.list
末尾添加deb http://old-releases.ubuntu.com/ubuntu/ hardy multiverse
$ sudo add-apt-repository "deb http://old-releases.ubuntu.com/ubuntu/ hardy multiverse" (如果按照上面的设置此行代码就不用了)
$ sudo apt-get update
$ sudo apt-get install sun-java6-jdk
>sudo apt-get install sun-java6-jdk
The following NEW packages will be installed: gsfonts-x11 java-common libodbc1 odbcinst odbcinst1debian2 sun-java6-bin sun-java6-jdk sun-java6-jre unixodbc
在安装过程需要接受 Java 的协议,会自动跳出协议的界面,按“Tab”键选中“OK”选中时为红色背景。
按回车或者空格确认。
->java -version
java version "1.6.0_06"
Java(TM) SE Runtime Environment (build 1.6.0_06-b02)
Java HotSpot(TM) Client VM (build 10.0-b22, mixed mode, sharing)
然后安装 sun-java5
在终端界面里面执行如下命令:
sudo apt-get install sun-java5-jdk
>sudo apt-get install sun-java5-jdk
The following NEW packages will be installed: sun-java5-bin sun-java5-demo sun-java5-jdk sun-java5-jre
(3)执行编译命令
转到 andriod 目录
在 android 代码目录下,执行如下命令:
对于 32 位系统,
./build_android_32.sh
对于 64 位系统,
./build_android_64.sh
QT210下载烧录编译android4.0过程
工作环境:ubuntu12.04.5 | 光盘中的arm-2009q3-67-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.tar文件
android4.0编译环境:gcc version 4.4.7 | java version 6 | git version 1.7.9.5(因为无法编译android4.0,所以无法验证此环境的是否正确,等待日后修正)
(1)打开终端,输入:apt-get update 更新完毕后,然后输入:apt-get install git 即可完成git 的安装。
cd /usr/local mkdir arm sudo tar jxvf arm-2009q3-67-arm-none-linux-gnueabi-i686-pc-linux-gnu.tar.tar -C /usr/local/arm/
gedit /root/.bashrc 文件里末尾一行添加 export PATH=$PATH:/usr/local/arm/arm-2009q3/bin
(5)在github下载u-boot文件:在/home/work/QT210目录下:>git clone git@github.com:jackyh/qt210_ics_uboot.git
下载编译android-4.0需注意
环境要求改变。
现在要求内存1.5G左右,硬盘25G以上,以前1G、10G就够了。
官方说明“Note: The source download is approximately 6GB in size. You will need 25GB free to complete a single build, and up to 80GB (or more) for a full set of builds.”
错一:
host SharedLib: libbcc (out/host/linux-x86/obj/lib/libbcc.so)
collect2: ld terminated with signal 9 [Killed]
make: *** [out/target/common/obj/JAVA_LIBRARIES/core_intermediates/noproguard.classes-with-local.dex] Killed
make: *** Waiting for unfinished jobs….
make: *** [out/host/linux-x86/obj/EXECUTABLES/llvm-rs-cc_intermediates/llvm-rs-cc] Error 1
collect2: ld terminated with signal 9 [Killed]
collect2: ld terminated with signal 9 [Killed]
make: *** [out/host/linux-x86/obj/lib/libbcc.so] Error 1
make: *** [out/host/linux-x86/obj/EXECUTABLES/clang_intermediates/clang] Error 1
weihongcsu@ubuntu:~/disk2/android-4.0.1_r1$
错二:
target Dex: framework
make: *** [out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/noproguard.classes-with-local.dex] Killed
weihongcsu@ubuntu:~/disk2/android-4.0.1_r1$
错三:
arm-eabi-g++: Internal error: Killed (program cc1plus)
解决办法:
这些错误都是 linux的OOM killer 导致,“内存1.5G左右,硬盘25G”就可以解决,我为了保险,把make -j4改成了make.编译5个小时以上吧,out目录大小:12G。
以上的办法没有试,我修改了虚拟机的内核为4,然后内存改为2G,就可以正常编译了。
作者:chsry
出处:www.cnblogs.com/chsry
日期:2015-08-18
本博客文章,大多系个人整理开发,转载请注明出处
QT210 android2.3 和android4.0 烧写编译日记的更多相关文章
- QT210 Android4.0源码编译和烧录文档整理
开发环境说明: Ubuntu 12.04 LTS 32bit 源码文件目录: 勤研光盘2013-5-4\4.0 https://github.com/jackyh (建议在Linux环境下通过git下 ...
- 在Ubuntu下获取Android4.0源代码并编译(一)
搞了几个月的Android应用开发,勉强算是个Android开发者了吧,Android本就是开源的,还是把源代码下载下来自己编译一下,看看是个什么东西,出于好奇,和以后的职业发展,开始了无休止的And ...
- 利用样式——android2.3实现android4.0风格的edittext
先看效果: 思路:在源码里找到4.0风格的图片作为背景,xml文件定义点击时候边框变化 步骤: ①.在F:\sdk\sdk\platforms\android-14\data\res\drawable ...
- Ubuntu12.04编译Android4.0.1源码全过程-----附wubi安装ubuntu编译android源码硬盘空间不够的问题解决
昨晚在编译源码,make一段时间之后报错如下: # A fatal error has been detected by the Java Runtime Environment: # # SIGSE ...
- 痞子衡嵌入式:飞思卡尔i.MX RT系列MCU启动那些事(5)- 再聊eFUSE及其烧写方法
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是飞思卡尔i.MX RT系列MCU的eFUSE. 在i.MXRT启动系列第二篇文章 Boot配置(BOOT Pin, eFUSE) 里痞子 ...
- 驱动开发学习笔记. 0.02 基于EASYARM-IMX283 烧写uboot和linux系统
驱动开发读书笔记. 0.02 基于EASYARM-IMX283 怎么烧写自己裁剪的linux内核?(非所有arm9通用) 手上有一块tq2440,但是不知道什么原因,没有办法烧boot进norflas ...
- 迅为IMX6Q PLUS开发板烧写Android6.0系统方法
平台:迅为IMX6Q PLUS开发板工具:MfgTool2 工具 镜像文件在光盘目录“03 镜像_android 6.0.1 文件系统”下.其中商业级核心板为 2G内存镜像,工业级核心板为 1G 内存 ...
- 【原】webapp开发中兼容Android4.0以下版本的css hack
话说现在的手机型号越来越多,主要还是android和ios这2个巨头称霸了江湖,而他们自带的浏览器内核是webkit,那对于做移动网页开发的同事来说,一般只要做好webkit内核浏览器的展现效果就行了 ...
- OTG 接口烧写最小Linux的方法
通过该方式可以烧写Android4.0.3 系统和Linux-QT 系统. 需要准备一根OTG 线,绝大多数智能手机和PC 机相连接的线都是OTG线,都是通用的. 这种方式比TF卡烧写方式要快一些,我 ...
随机推荐
- [Q&A] 应用程序清单生成失败
当在 Silverlight 客户端属性里(如下图),添加"允许在浏览器外运行应用程序"和"在浏览器内运行时需要提升的信任"时, 图1 目录下会自动生成如下两个 ...
- VirtualBox动态添加虚拟硬盘
本文非技术类文章,仅作为记录. 因为使用VirtualBox时遇到这样的问题:原本虚拟机分配存储的80G已经足够了,但是随着使用的文件越来越多,需要的空间也越来越大,因此不得不扩展虚拟机的磁盘容量. ...
- Unity3D 5.x 简单实例 - 脚本编写
1,Vector3 类型变量存储向量坐标值 Vector3.forward Vector3(0,0,1) Vector3.up Vector3(0,1,0) Vector3.right Vector3 ...
- 仿饿了点餐界面2个ListView联动
如图是效果图 是仿饿了的点餐界面 1.点击左侧的ListView,通过在在适配器中设置Item来改变颜色,再通过notifyDataSetInvalidated来刷新并用lv_home.setSele ...
- spring入门(六)【springMVC中各数据源配置】
在使用spring进行javaWeb开发的过程中,需要和数据库进行数据交换,为此要经常获取数据库连接,使用JDBC的方式获取数据库连接,使用完毕之后再释放连接,这种过程对系统资源的消耗无疑是很大的,这 ...
- 今天写项目时,突然发现canvas的一些公式不记得了,所以整理了一番,分享给大家。
Canvas 标签<canvas></canvas> 默认宽300,高150,不用用Css设置宽高 获取方法var ctx = cas.getcontext("2d& ...
- (转)SQL 优化原则
一.问题的提出 在应用系统开发初期,由于开发数据库数据比较少,对于查询SQL语句,复杂视图的的编写等体会不出SQL语句各种写法的性能优劣,但是如果将应用 系统提交实际应用后,随着数据库中数据的增加,系 ...
- 使用ssh连接gitHub
github每次pull/push代码时要求推送代码的用户是合法的,所以每次推送时候都要输入账号密码用以验证用户是否为合法用户,而ssh是一种安全的传输模式,可以代替用户的这一"输入账号密码 ...
- JavaScript基本语法(二)
上篇博文写到JavaScript的数据类型.JavaScript包括了字符串(String).数字(Number).布尔(Boolean).数组(Array).对象(Object).空(Null).未 ...
- 赞一个 kindle电子书有最新的计算机图书可买了【Docker技术入门与实战】
最近对docker这个比较感兴趣,找一个比较完整的书籍看看,在z.cn上找到了电子书,jd dangdang看来要加油啊 Docker技术入门与实战 [Kindle电子书] ~ 杨保华 戴王剑 曹亚仑 ...