EDA365电子论坛网

标题: iTOP-4412开发板android4.0代码下载和编译 [打印本页]

作者: 孤久厌闹    时间: 2020-4-14 11:26
标题: iTOP-4412开发板android4.0代码下载和编译
Android4.0 源码可以从光盘,网盘获取稳定版本,也可以从 GitHub 下载我们的开发版' D; u% y% F2 ^9 P$ D
本。GitHub 仅提供源码下载,不提供二进制下载,二进制文件存放在光盘和网盘中。
0 L; {" @! ~: N+ c! ]  i7 K基于迅为4412开发板
6 c+ ?, x' h7 S6 E& L' e- l5 }6.3.1.1 repo 下载
2 H6 u( x5 O4 |, H' yandroid 代码管理不同于 uboot,kernel,由于 Android 代码比较庞大,我们把 Android
8 e* w7 I9 ^1 ~) x- ?; m. y项目按照文件夹进行项目拆分,android 源码根目录下面的每个子目录都会划分为一个仓库或
2 G5 S) r/ V: J% r3 e2 A6 C; A者多个仓库进行版本管理,Android 的代码下载需要使用 repo 工具,repo 工具为 Git 的封/ x  g" W' C6 j. B
装,底层是使用 Git 命令进行下载的。
( a, a0 V! k' y假设将要下载的 repo 工具存放于 /media/data/gitHub 目录:
% C) }7 f8 {# ^; M* G0 b#cd /media/data/GitHub/1 {/ F3 Y, \+ a& k, w
#git clone git://aosp.tuna.tsinghua.edu.cn/android/git-repo.git/
# i1 K3 @% A3 K; Jgit-repo 仓库下载完成后会看到该文件夹内有 repo 脚本文件:% s* |( H* N. k
7 M/ M* s& Z  P* F/ P' f
6.3.1.2 Android4.0 代码下载
7 N* [7 ]4 `- C( ]+ q: s假设我们的 Android4.0 代码存放在 /media/data/GitHub/iTop4412_ICS_git 目录:) z' |, ?$ ?/ ?( \% o
# cd /media/data/GitHub/iTop4412_ICS_git; Z3 }  Z' \) `+ h9 _2 S
#../git-repo/repo init –u https://github.com/TOPEET-Develop/android.git -b2 ]" e2 O) {0 i
exynos4412_android4.0.3_master0 k/ M% g1 r+ T% u' U; K! l  b' p
注意上一条命令中,换行字符“-b”之后有空格。
* M7 k+ K4 r9 g' W$ J( K
" P: Q! x* a% @6 ~; }  F注: repo init 命令中–u 参数指定 android 仓库下载地址,-b 参数指定仓库中的下载
6 S; k6 {# g1 d3 A, F分支.8 ^) i8 T3 p2 }+ _/ b
这里我下载的是 exynos4412_android4.0.3_master 分支,该命令执行过程中需要输入8 G9 b" M9 {2 B4 z- }
相关的信息,如下图所示:" [) L6 S3 g6 h8 i) \4 W/ t

0 h) C+ _3 h' FYour Name 输入 root7 [: n% G- W6 P' p/ L6 s+ p
Your Email: 直接回车即可,然后在输入 y, 回车继续:" O2 [* X  G- G0 n: \2 @- @1 H

1 i: H8 R6 i- z3 b0 m$ S& h8 z#../git-repo/repo sync
4 N+ `9 ^2 t. g# c% T注: repo sync 开始下载 Android 代码,下载过程与网络环境有一定的关系,如果下$ Q( R$ g! S- i& v  V9 c/ {8 v
载过程中长时间没有进度显示,可以 ctrl+c 终止下载,然后执行 repo sync 命令重新开始,9 n# F6 o% x0 T
下图为源码下载过程中的进度显示:
. I" {; b# }7 b! y . E4 j0 A8 T6 Z! c6 c" Z
代码下载完成后会在 /media/data/GitHub/ iTop4412_ICS_git 目录下面显示 Android
/ _5 p7 Q+ v! C! v系统源码目录:
* [/ Y7 m5 I: I  c. H9 ^% l + {/ x- w, [2 C. a) \, a0 j. w
每个文件夹目录下面都会有一个或者多个 Git 仓库,默认这些仓库是没有分支的,我们需要
, \# P+ ~2 E" T1 T# j使用 repo star 命令创建分支,这里我们创建 master 分支,您也可以使用别的名字来定义分支3 |' j9 e* j: r6 p$ q7 M2 M
名称,repo branch 命令可以查看创建的分支:
& Q9 g( ^; G6 P% C7 u* A5 I#../git-repo/repo start master --all8 v2 o6 e, G- o
#../git-repo/repo branch7 _, P9 @* P0 O) u+ A' e

/ Z) C% i2 ]. C( D9 Z  x6.3.1.3 Android4.0 源码编译$ v% u) N0 [1 |: U* a( Z0 C% q
Android 代码下载完成后就可以进行编译了,Android 源码编译需要 kernel 支持,所
. j' |# z8 ]- d3 p+ f  ~4 z9 n以我们需要把 Android 代码与 kernel 代码放到同一目录下面:
$ e8 S$ `) H( @6 d   h, {. I5 i- E( J. H% T7 ~
注: 上图中 iTOP4412_Kernel_3.0 为 Android 的内核代码, 与 Android4.0 源码目录9 Z7 O3 ]9 h; ^3 ]1 p
iTOP4412_ICS_git 在同一级,另外编译 Android4.0 之前需要编译内核代码,在内核代码目( g) {/ Y& u5 O. W5 u% B
录执行:# ~, E$ p) E7 L
# cp config_for_android_XX_YY .config
& d+ x; A+ c8 O: r( K, \# make zImage
& l( @# }% k- O7 f# make modules' m9 m: C0 ~( x; M  a! [/ w
config_for_android_XX_YY 中的 XX 指核心板类型:scp,pop,pop2G, YY 指的是底板2 _! l% x! [8 L- s, M5 k
类型:精英版 elite,或者全能版 supper.% i$ V; B5 b+ W8 I4 a* I
make modules 会编译驱动库文件*.ko , Android4.0 会拷贝驱动库文件到 Android 的0 N4 i3 W! N7 I
目录结构,否则 Android 的某些功能无法使用。) J# K. W$ T) \8 L" @& u/ j
Android4.0 的执行编译命令:6 F1 }: `, k% f: p% [2 a. T
#cd iTop4412_ICS_git
4 j7 |6 |6 h, s# M& S) `$ m3 s# ./build_android.sh7 y0 ?  ]. o$ z5 c
另外 Android 代码下载,编译完成后,可以定期使用 repo sync 命令同步我们的 Git 仓
6 S5 w1 \' b" [库到本地,这样您的本地代码就跟我们的仓库保持同步更新了,编译后就会形成最新的系统镜7 ]$ b* Q; G5 F! A0 Y, t- d; O* `( ]
像.- p, y% g# O, q5 c
我们的 Android4.0 代码区分精英版和全能版,默认我们下载的代码编译形成的镜像可以- U' h& ]" s/ }: |# {5 A# Y. }
在精英板运行,要编译全能板版本,只需要修改一项配置即可:9 V% e/ U+ I8 y
文件路径:iTop4412_ICS_git/device/samsung/smdk4x12/BoardConfig.mk
9 B$ w; I" u/ L- u4 P6 W配置项:BOARD_HAVE_MPU6050 ,该值配置成 false 代表编译版本是精英板版本,如果; G' o' p) g+ V: U
设置成 true,则会编译全能板版本。
$ U  C4 l: X( h  }" w精英版配置:# d" `0 j+ i0 a3 J3 V! e

& ?7 ^. G. m2 p, W8 p5 a! v全能版配置:
+ ^1 S* V2 g% T% R2 d% T
6 Z) _2 ^% O1 D完成,更多内容关注:迅为电子% d$ l% }4 e$ c* P& i

作者: ExxNEN    时间: 2020-4-14 18:22
你是卖开发板的吗?




欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/) Powered by Discuz! X3.2