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 開發遇到得問題和困難以及如何解決問題的