九浅一深高通android平台_2
Android(2)
林耕书
针对qualcomm msm7627平台的环境搭建
九浅一深android之实战篇系列
Mail:booklinbook@hotmail.com
TEL :13167032980
Agenda
MSM7627平台说明
Android Arm11端环境的搭建和编译
Amss Arm9端环境的搭建和编译
先看一幅图
Msm7627 chip
ARM9
modem部分的
代码(负责通
讯协议等~~~)
就跑在这个内
核上。
--AMSS
ARM11
android...
Android(2)
林耕书
针对qualcomm msm7627平台的环境搭建
九浅一深android之实战篇系列
Mail:booklinbook@hotmail.com
TEL :13167032980
Agenda
MSM7627平台说明
Android Arm11端环境的搭建和编译
Amss Arm9端环境的搭建和编译
先看一幅图
Msm7627 chip
ARM9
modem部分的
代码(负责通
讯协议等~~~)
就跑在这个内
核上。
--AMSS
ARM11
android部分就跑在
这个内核上。
--android
其他部分,
如dsp之类。
先不用关心。
Arm9和arm11 这两个核通过share memory的方式来通讯
正如前面的图所示:msm7627有两个核:一个
arm9,一个arm11,分别跑amss(modem)和android。
这两部分的代码是分开的,编译也不一样。
下面分别说明,先说arm11端android部分怎么编
译,这个比较简单一些。
步骤:
1.访问:
https://www.codeaurora.org/wiki/QAEP
选出你所选要的版本。
Branch
(分支)
Tag platform
$ repo init -u git://codeaurora.org/platform/manifest.git -b eclair -m M76XXTSNCJNLYA5210.xml
$ repo sync
怎么选版本
2.以eclair M76XXTSNCJNLYA5210.xml这个
版本为例,下载android代码到你的机器上。
$ repo init -u git://codeaurora.org/platform/manifest.git -b eclair -m
M76XXTSNCJNLYA5210.xml
$ repo sync
3.找你的领导索取一个对应的qualcomm
patch。
针对5210版本的patch:HY11-VU969-3_5.2.10
把qcom-proprietary这个目录拷贝到android
下的vendor中去。
4.开始编译,命令如下:
<1> source build/envsetup.sh
<2> choosecombo 1 1 9 3
<3> make –j2
如果一切顺利编译成功的话,就会在
out/target/product/msm7627_surf下生
成这么几个关键的img文件:
(1)bootloader
(2)appsboot.mbn
(3)appsboothd.mbn
(4)boot.img
(5)recover.img
(6)system.img
Android这部分的编译讲完了。稍微总结一下。一共4步。
1. 通过https://www.codeaurora.org/wiki/QAEP这个网站选
取版本。
2.下载代码
<1> repo init -u git://codeaurora.org/platform/manifest.git -b eclair -m
M76XXTSNCJNLYA5210.xml
<2> repo sync
3.打patch到android的vendor目录下。
4.通过
<1> source build/envsetup.sh
<2> choosecombo 1 1 7 3
<3> make –j2
这三条命令来编译
接下来讲Amss(arm9)编译
Amss的编译
Amss编译环境的搭建相当的麻烦,非常的麻
烦,不是一般的麻烦。对工具的选用,对工具版本
的要求也很苛刻。非常不friendly。好几次都想把
机器砸了。而且编译时间很长,刚开始我用虚拟机
编译花了整整10个小时,编出来的结果还是错的。
也许这些都是qualcomm刻意制造出的麻烦,为
了提高准入门槛,这一点正好和m(jb)k提供的方
便,便捷,容易上手,降低准入门槛的turn-key
solution理念不一样。
罗嗦两句
工欲善其事必先利其器
你需要以下这些东西:
1.一台Intel系列的电脑,不能用AMD机器(如果你用的
ARM编译工具RVCT是正版的话,就没有这个要求)
2.ARM编译套件RVCT2.2和它的build 593的patch。
3.ActivePerl工具,这里用它的5.8.6.811的版本。
4.Cygwin最新版本。(在window提供linux运行环境的一套工具)
5.Python工具,版本必须是2.4.3(一种脚本语言,在linux下广泛应用)
Amss的编译是在window下进行的。
1. 先装cygwin,有一个地方要注意一下,就是不要安
装Cygwin里的python。具体的看一下图解。
从本地安装。
安装在c盘下面
本地安装包
用鼠标右击标
出的地方,选
成Install模式,
不要default模
式
Python不要
安装,等一
会儿要单独
安装。
点击下一步
开始安装,
需要点时间
2.安装python2.4.3,步骤看以下图解和说明
安装包python2.4.3是python的源代
码,我们需要在cygwin下编译它,并
安装其于usr/local/bin下面。
编译python
在cygwin下,进入python-2.4.3文件夹,
先打 “./configure” 命令,然后打“make”,
最后打“make install”。需要一些时间。
成功后在usr/local/bin 下面就会生成python
工具。
Python安装好后,最后做一步工作。
进入usr/local/bin目录,把python.exe(1kb大小)
这个文件重命名为python_old.exe(当然你也可以
把它删掉)。然后把python2.4.exe这个文件复制
一份命名为python.exe. (真tnn的麻烦,我都要吐
了)。最后结果如下图。
最后敲打 Python -V
这个命令,如果出现
Python 2.4.3,就算安装成功
3.安装RVCT
Rvct我们用的是盗版的,要用intel
机器,安装在c盘根目录下C:\ARM。
安装好之后,先用crack\keygen.exe工具生成
一个license,并安装license。这个大家很清楚怎么
做,就不多讲了。
接着把安装包内windows目录下的这几个build
593的patch文件覆盖相应的目录中文件。
然后运行crack\patch.exe工具破解相应
文件,参照crack下的readme.txt。
最后通过cmd.exe运行以下命令:
cd c:\arm\rvct\programs\2.2\349\win_32-pentium
copy armcc.exe tcc.exe
copy armcc.exe armccp.exe
copy armcc.exe tcpp.exe
装好了
通过敲左边截图
中的命令来检验一
下,rvct装的有没
有问题,patch有
没有打成功
以上完成了amss在window下的编译环境的搭
建,下面开始编译。编译有两种方法,一种是
在cygwin下编译,一种是在dos下编译。前一
种方法简单一些。下面分别介绍一下。
在cygwin下编译:
1.cygwin下环境变量的设置。
在cygwin/home/xxx../.bashrc中最末尾添加以下环境变量:
export ARMROOT=C:\\ARM
export ARMINCLUDE=$ARMROOT\\RVCT\\Data\\2.2\\349\\include\\windows
export ARMTOOLS=RVCT221
export ARMLIB=$ARMROOT\\RVCT\\Data\\2.2\\349\\lib
export ARMINC=$ARMINCLUDE
export ARMBIN=$ARMROOT\\RVCT\\Programs\\2.2\\349\\win_32-pentium
export PATH=$PYTHON_PATH:$ARMBIN:$PATHexport ARMHOME=$ARMROOT
2.打开cygwin,进入../AMSS/products/76XX/build/ms
然后敲 ./TFNCKNLYM.cmd 就可以开始编译了
可能在你编译过程中会报一个hostdl_gen的错误,
解决方法是删除
..\AMSS\products\76XX\drivers\flash\tools\src\hos
tdl\hostdl_gen即可.
在dos来编译麻烦一些,需要修改代码。接下来介绍用dos的编译方法。
1.需要修改代码的地方有:
a.修改amss\products\76xx\build\ms\rvct22.bat
如后面一页所示。
@echo off
REM ======================================================
rem Sets path for RVDS210, GNU and PERL
set ARMTOOLS=RVCT221
set ROOT_DRIVE=C:
set APPS_DIR=ARM
set APPS_PATH=%ROOT_DRIVE%\%APPS_DIR%
set ARMROOT=%APPS_PATH%
set UTILROOT=%ROOT_DRIVE%
set GNUPATH=%UTILROOT%\cygwin\bin
set PERLPATH=%UTILROOT%\perl\bin
set ARMPATH=%ARMROOT%\RVCT\Programs\2.2\349\win_32-pentium
set EMAKE_ROOT=../../../../..
rem
rem ARM Include and Path Variables
rem
set ARMLIB=%ARMROOT%\RVCT\Data\2.2\349\lib
set ARMINCLUDE=%ARMROOT%\RVCT\Data\2.2\349\include\windows
set ARMINC=%ARMROOT%\RVCT\Data\2.2\349\include\windows
set ARMBIN=%ARMROOT%\RVCT\Programs\2.2\349\win_32-pentium
REM set ARMCONF=%ARMROOT%\RDI\armperip\1.3\50
REM set ARMDLL=%ARMROOT%\RDI\rdimsvr\1.3.1\91\win_32-pentium;%ARMROOT%\RDI\Targets\Remote_A\1.3.1\98\win_32-pentium
set ARMHOME=%ARMROOT%
REM this is for BOULDER only!
REM set ARMLMD_LICENSE_FILE=8224@redcloud
REM San Diego's advertised program RVCT 2.0 installer should set this:
REM set ARMLMD_LICENSE_FILE=7117@license-ice1;7117@license-ice2;7117@license-ice3
rem
rem Path for RVCT, GNU, Perl tools
rem
set path=.;%PERLPATH%;%PYTHONPATH%;%GNUPATH%;%ARMPATH%;%UTILROOT%;%path%
REM ======================================================
b.修改amss\products\76xx\build\ms\TSNCJNLYM.cmd文件,把其中的
BUILD_UNIX=yes 和 USES_BUILD_NATIVELINUX_MODEM=yes 这两个删掉。
c.找出以下文件:
\AMSS\products\76XX\secboot\cfg_data\Config_Gen.mak
\AMSS\products\76XX\services\fota\tools\fotapacker.mak
\AMSS\products\76XX\tools\headergen\image_auth.mak
\AMSS\products\76XX\tools\headergen\image_header.mak
\AMSS\products\76XX\tools\headergen\norimgtool.mak
\AMSS\products\76XX\tools\headergen\pboot_utils.mak
把这些文件中的“-mno-cygwin”这个关键字全部删掉。
2.终于可以开始编译了。打开dos cmd界面,打命令如下:
cd amss\products\76xx\build\ms\
rvct22.bat
TSNCJNLYM
3.接下来等待编译。如果编译成功的话。在
amss\products\76xx\build\ms\ 下会生成bin文件夹,里面就是
所需的烧写文件。
在windows下面编译
arm9代码不方便,也不方
便git管理。下一个
,
介绍一个缺德的方法,让
你在ubuntu下编译arm9
的代码,超快。
Android(2)
Agenda
先看一幅图
Amss的编译
工欲善其事必先利其器
本地安装包
Python不要安装,等一会儿要单独安装。��点击下一步开始安装,需要点时间
本文档为【九浅一深高通android平台_2】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。