1/去飞思卡尔官网下载相关资料,如下链接:
需下载 imx-o8.0.0_1.0.0_ga.tar.gz 文件,链接如下: (注册下载)
https://www.nxp.com/webapp/sps/download/preDownload.jsp
2/配置环境
(android官方Ubuntu 14.04环境下所需)
sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev libgl1-mesa-dev libxml2-utils xsltproc unzip
(飞思卡尔所需软件包)
sudo apt-get install uuid uuid-dev
sudo apt-get install zliblg-dev liblz-dev
sudo apt-get install liblzo2-2 liblzo2-dev
sudo apt-get install lzop
sudo apt-get install git-core curl
sudo apt-get install u-boot-tools
sudo apt-get install mtd-utils
sudo apt-get install android-tools-fsutils
sudo apt-get install openjdk-8-jdk
sudo apt-get install device-tree-compiler
sudo apt-get install gdisk
3/配置git
git config--global user.name“first last”
git config--global user.email“[email protected]”
4/接下解压 imx-o8.0.0_1.0.0_ga.tar.gz 文件到根目录(可以复制到)
tar xzvf mx-o8.0.0_1.0.0_ga.tar.gz
5/下载源码
mkdir ~/bin
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo
export PATH=${PATH}:~/bin
source ~/imx-o8.0.0_1.0.0_ga/imx_android_setup.sh
默认情况下,imx_android_setup.sh脚本将创建源代码构建环境
在文件夹~/android_build中
漫长等待之后。。。。下载成功,如下显示
remote: Total 31731 (delta 5319), reused 31317 (delta 5319)
Receiving objects: 100% (31731/31731), 1.69 GiB | 546.00 KiB/s, done.
Resolving deltas: 100% (5319/5319), done.
From https://android.googlesource.com/platform/prebuilts/gradle-plugin
* [new tag] android-8.0.0_r25 -> android-8.0.0_r25
Fetching projects: 100% (596/596)
Fetching projects: 100% (596/596), done.
Checking out files: 100% (6639/6639), done.
Checking out files: 100% (14442/14442), done.iles: 20% (2981/14442)
Checking out files: 100% (7295/7295), done.
Checking out files: 100% (5916/5916), done.t files: 32% (1949/5916)
Checking out files: 100% (11930/11930), done.
Checking out files: 100% (38/38), done.g out files: 42% (16/38)
Checking out files: 100% (14578/14578), done.files: 44% (6485/14578)
Checking out files: 100% (914/914), done.
Checking out files: 100% (9234/9234), done.t files: 9% (855/9234)
Checking out files: 100% (962/962), done.out files: 55% (537/962)
Checking out files: 100% (8/8), done.ing out files: 100% (8/8)
Checking out files: 100% (12663/12663), done.
Checking out files: 100% (2859/2859), done.t files: 3% (103/2859)
Checking out files: 100% (9128/9128), done.ut files: 20% (1866/9128)
Checking out files: 100% (477/477), done. out files: 7% (34/477)
Checking out files: 100% (175/175), done.
Checking out files: 100% (21719/21719), done.
Checking out files: 100% (5501/5501), done.ut files: 43% (2387/5501)
Checking out files: 100% (223/223), done. out files: 4% (11/223)
Checking out files: 100% (4509/4509), done.ut files: 26% (1205/4509)
Checking out files: 100% (756/756), done. out files: 97% (740/756)
Checking out files: 100% (4289/4289), done.ut files: 72% (3126/4289)
Checking out files: 100% (8982/8982), done.ut files: 4% (385/8982)
Checking out files: 100% (2796/2796), done.ut files: 29% (825/2796)
Checking out files: 100% (4191/4191), done.ut files: 16% (695/4191)
Checking out files: 100% (25541/25541), done. files: 3% (833/25541)
Checking out files: 100% (5061/5061), done.ut files: 21% (1063/5061)
Checking out files: 100% (6161/6161), done.ut files: 90% (5599/6161)
Checking out files: 100% (3404/3404), done.ut files: 37% (1271/3404)
Checking out files: 100% (2814/2814), done.
Checking out files: 100% (3203/3203), done.ut files: 80% (2577/3203)
Checking out files: 100% (309/309), done. out files: 27% (86/309)
Checking out files: 100% (7971/7971), done.ut files: 0% (18/7971)
Checking out files: 100% (8228/8228), done.
Checking out files: 100% (28555/28555), done.
Checking out files: 100% (190/190), done. out files: 70% (133/190)
Checking out files: 100% (742/742), done.
Checking out files: 100% (247/247), done.
Checking out files: 100% (127/127), done.
Checking out files: 100% (188/188), done.
Checking out files: 100% (243/243), done. out files: 60% (148/243)
Checking out files: 100% (249/249), done.
Checking out files: 100% (128/128), done.
Checking out files: 100% (190/190), done.
Checking out files: 100% (3205/3205), done.
Checking out files: 100% (3541/3541), done.ut files: 54% (1945/3541)
Checking out files: 100% (4427/4427), done.
Checking out files: 100% (222/222), done.
Checking out files: 100% (245/245), done.
Checking out files: 100% (1765/1765), done.
Checking out files: 100% (6578/6578), done.ut files: 7% (484/6578)
Checking out files: 100% (6578/6578), done.
Checking out files: 100% (29024/29024), done.
Checking out files: 100% (8588/8588), done.
Checking out files: 100% (2056/2056), done.ut files: 2% (47/2056)
Checking out files: 100% (96785/96785), done.
Checking out files: 100% (63/63), done.
Checking out files: 100% (1887/1887), done.
Checking out files: 100% (9537/9537), done.ut files: 0% (68/9537)
Checking out files: 100% (713/713), done. out files: 14% (105/713)
Checking out files: 100% (15779/15779), done. files: 50% (7914/15779)
Checking out files: 100% (29/29), done.ng out files: 27% (8/29)
Checking out files: 100% (57086/57086), done. files: 2% (1631/57086)
Checking out files: 100% (13512/13512), done.
Android source is ready for the build
如果出现 error: Exited sync due to gc errors 的原因,除非的你的ubuntu版本真的很老,可以google解决之外。解决不了的情况下,重装系统是首要选择。我的是18.04,我由于上次下载的android8.1官方版的没有删除干净导致,浪费了太长时间在查找问题上,重装系统之后一步到位。
关于编译如下,
source build/envsetup.sh
lunch sabresd_6dq-userdebug
make 2>&1 | tee build-log.txt
编译过程中出现
build stopped: subcommand failed.问题
执行
export LC_ALL=C
然后重复上述编译过程。
。。。。。。。。。。。。。。。。。经过领导安排,由于种种原因,最终还是选择了4.4.2版本(驱动之类的已经完善,更稳定,更适配目前的硬件),所以之后不再涉及高版本的源码相关知识,或许,当硬件大升级之后,会做高版本的处理再来研究吧,后续博客会更新我的4.4.2 开发遇到得问题和困难以及如何解决问题的