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 (也可以直接在终端输入,表明当前对当前用户有效)

[email protected]:/etc# gedit /root/.bashrc

[email protected]:/etc# source /root/.bashrc

[email protected]:/etc# echo $PATH

/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/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

[email protected]:~$ 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)

(3)执行编译命令

转到 andriod 目录

在 android 代码目录下,执行如下命令:

对于 32 位系统,

./build_android_32.sh

对于 64 位系统,

./build_android_64.sh

问题一:

frameworks/base/libs/utils/RefBase.cpp:483:67:

error: passing ‘const android::RefBase::weakref_impl’ as ‘this’ argument of ‘void android::RefBase::weakref_impl::trackMe(bool, bool)’ discards qualifiers [-fpermissive]

原因:Ubuntu 11.10的gcc 4.6版本太高了,android编译需要gcc 4.4

解决办法:更换gcc、g++版本4.6为4.4

sudo apt-get install gcc-4.4

sudo apt-get install g++-4.4

sudo rm -rf /usr/bin/gcc /usr/bin/g++

sudo ln -s /usr/bin/gcc-4.4 /usr/bin/gcc

sudo ln -s /usr/bin/g++-4.4 /usr/bin/g++

问题2:

g++: 错误: –fpermissive:没有那个文件或目录

make: *** [out/host/linux-x86/obj/STATIC_LIBRARIES/libutils_intermediates/RefBase.o] Error 1

解决办法:sudo apt-get install g++-4.4-multilib

经过此操作编译可顺利进行。

>./build_android_32.sh     (不需要管理权限也行)

Total compile time is 1731 seconds

[[[[[[[ Make ramdisk image for u-boot ]]]]]]]

Image Name:   ramdisk Created:      Fri Aug 14 20:09:51 2015 Image Type:   ARM Linux RAMDisk Image (uncompressed) Data Size:    1340861 Bytes = 1309.43 kB = 1.28 MB Load Address: 30800000 Entry Point:  30800000

[[[[[[[ Make additional images for fastboot ]]]]]]]

No zImage is found at ../android-kernel-samsung-dev/arch/arm/boot   Please set KERNEL_DIR if you want to make additional images   Ex.) export KERNEL_DIR=~ID/android_kernel_smdkv210 ok success !!!

在/home/work/QT210/android-samsung-dev-full-rtl81XX/out/target/product/smdkv210可以看到

ramdisk-uboot.img和system.img和userdata.img三个文件

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 的安装。

(2)安装java6(之前已经安装过)

(3)安装库文件(这里没有更新,因为后面的步骤没有没有编译android4.0的步骤,所以暂时不用做)

(4)搭建交叉编译环境,(之前已经搭建好)
           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 [email protected]:jackyh/qt210_ics_uboot.git

(6)编译u-boot:cd ./qt210_ics_uboot make smdkv210single_config     make  生成u-boot.bin

(7)拷贝uboot目录下的mkimage到/usr/bin:   >sudo cp /home/work/QT210/qt210_ics_uboot/tools/mkimage /usr/bin/   (其实就是设置环境变量,之前有类似的操作)

(7)下载kernel ,在/home/work/QT210目录下: >git clone [email protected]:jackyh/qt210_ics_kernel3.0.8.git

(8)编译kernel:  cd qt210_ics_kernel3.0.8/   cp config_capacity .config    make -j2 uImage 生成uImage

(9)编译android4.0(此步骤因为缺少文件无法进行从略)

编辑:2015-08-15-by-chsry

出处:http://www.cnblogs.com/chsry/

时间: 2025-01-10 02:30:57

QT210 android2.3 和android4.0 烧写编译日记的相关文章

[odroid-pc] ubuntu12.04 64bit Android4.0.3 源代码编译报错及解决办法

第一个错误: host Executable: cmu2nuance (out/host/linux-x86/obj/EXECUTABLES/cmu2nuance_intermediates/cmu2nuance) /usr/bin/ld: cannot find -lncurses collect2: ld returned 1 exit status make: *** [out/host/linux-x86/obj/EXECUTABLES/adb_intermediates/adb] Er

Ubuntu12.04编译Android4.0.1源码全过程-----附wubi安装ubuntu编译android源码硬盘空间不够的问题解决

本文转至  http://blog.csdn.net/yanzi1225627/article/details/9263097 昨晚在编译源码,make一段时间之后报错如下: [html] view plaincopyprint? # A fatal error has been detected by the Java Runtime Environment: # #  SIGSEGV (0xb) at pc=0x40362d33, pid=12195, tid=2835454784 # # 

驱动开发读书笔记. 0.02 基于EASYARM-IMX283 烧写uboot和linux系统

驱动开发读书笔记. 0.02 基于EASYARM-IMX283 怎么烧写自己裁剪的linux内核?(非所有arm9通用) 手上有一块tq2440,但是不知道什么原因,没有办法烧boot进norflash或者nandflash:只好用另一块arm9(i.mx283a)来继续学习: 从开发教程上面可知,烧写uboot和Linux是通过各种批处理脚本和exe程序来执行的,称之为固件烧写,然而并没有需要我们选择uboot路径.Linux内核和文件系统的地方.这样的话是不是意味着只能烧写官方默认提供的文件

iTOP-4412 开发板镜像的烧写

镜像就是源代码编译并连接以后生成的可执行文件包,把这些镜像文件烧写到开发板的存储芯片里,开机就可以运行了. 烧写方式有两种,通过TF卡烧写以及使用OTG接口烧写 OTG方式:只能在WIN7 或者XP 系统下实现可以烧写Android4.0.3 系统和Linux-QT 系统,这种方式比TF 卡烧写方式要快一些. 步骤:(1)将需要烧写的镜像拷贝到“USB_fastboot_tool”-->“platform-tools”文件夹下面.(2)启动开发板,进入Uboot 模式.(3)创建eMMC 分区并

android4.0蓝牙使能的详细解析

此博客是转载过来的哦... 给自己博客定几个部分: (1)写在前面的话:一些写博客时的废话. (2)内容简介:把文章的主要内容或者核心部分作一个框架性的概括,以方便大家阅读. (3)正文:这个不需要解释了.   写在前面的话:这是csdn上的第一篇博客,希望自己能够坚持写下去,也希望能够得到大家的支持.本文可能会涉及大量的源码注释,在文字方面可能不够尽如人意,希望真正想理解该过程的同学们能够耐心看下去. 内容简介:本文详细分析了android4.0中蓝牙使能的过程,相比较android2.3,4

OTG 接口烧写最小Linux的方法

通过该方式可以烧写Android4.0.3 系统和Linux-QT 系统. 需要准备一根OTG 线,绝大多数智能手机和PC 机相连接的线都是OTG线,都是通用的. 这种方式比TF卡烧写方式要快一些,我在调试的时候采用了这种方法. OTG 烧写使用的硬件和软件平台以及烧写步骤 1.硬件平台 1)使用串口线连接开发板串口到PC 机串口 2)使用OTG 线,将开发板OTG 接口和PC 的USB 接口相连. 3)连接电源,屏幕等 2.软件平台 1)OTG 方式只能在WIN7 或者XP 系统下实现.注意,

【Android 系统开发】 编译 Android 系统 u-boot 内核 源码 并烧写到 OK-6410A 开发板上

博客地址 : http://blog.csdn.net/shulianghan/article/details/40299813  本篇文章中用到的工具源码下载 : -- ok-6410A 附带的 Android 光盘 下载地址 : http://pan.baidu.com/share/link?shareid=3662728609&uk=2754759285 ; -- 光盘所含内容 : Android 引导 u-boot 源码, Android 内核 源码, Android 系统源码, 交叉编

Android4.0中AppWidget的一些新玩意体验---RemoteViewsService

最近要把之前做的2.3上面的一些程序移植到4.0上面来,  几乎所有的AppWidget都是我一手操办, 所以这个玩意都是我弄. 我把Android2.3的代码直接拷到4.0的环境下面, 编译然后Push,  直接可以跑, 这是木有问题的.  但是我发现4.0上面有一些新东东是之前2.3上面没有的, 我也读了下官方的文档, 做了些demo, 这里总结给大家, 在以后需要做AppWidget的时候可以得心应手. 1: 应用列表中的预览图 如果你不想你的Widget在应用列表里面显示成那个丑机器人图

Android4.0 Design之设计规范的十大革新

在拜读和翻译了Android design设计指导后,对比Android 4.0,4.1,4.4版本与Android2.3及之前版本的app设计指导,总结了Android 4.0版本后设计规范的10大改变之处,在此也感谢博友对我所写文章的支持,之前重要设计理念系列的文章阅读量最近一直在暴涨,也鼓动着我继续写该系列的文章. 一.导航栏 由之前的物理按键导航(返回.菜单.搜索.主页)变成了嵌入屏幕的虚拟按键(返回.主页.最近任务). 把菜单项和搜索项从导航栏去掉,把之前通过长按主页键才出现的历史打开