【北京迅為】iTOP-i.MX6開發(fā)板使用手冊(cè)第四部分固件編譯第十四章非設(shè)備樹Android4.4系統(tǒng)編譯
可根據(jù)用戶需求更換,百變定制,高端產(chǎn)品無憂!
迅為IMX6Q兼容四核商業(yè)級(jí) 、雙核商業(yè)級(jí)、四核工業(yè)級(jí) 、更可提供i.MX6Q家族PLUS版本核心板。
核心板采用十層PCB沉金盲埋設(shè)計(jì),更能保證電磁兼容與系統(tǒng)穩(wěn)定。
公眾號(hào):迅為電子
-----------------------------------------
第十四章 非設(shè)備樹Android4.4系統(tǒng)編譯
設(shè)備樹簡單理解就是描述設(shè)備信息(資源)的一棵樹,如下圖所示。那么本章節(jié)編譯的Android4.4描述設(shè)備信息不是采用設(shè)備樹的形式,而是采用傳統(tǒng)的方式描述設(shè)備。
Android4.4 源碼在網(wǎng)盤目錄“iTOP-i.MX6Q 開發(fā)板\IMX6Q 非設(shè)備樹內(nèi)核光盤資料(刻盤)\V2.6 底板\20200703(最新日期)\imx6q android4.4 光盤資料\04 源碼_android 4.4 文件系統(tǒng)”下。
本章節(jié)是在迅為提供的“搭建好的 Ubuntu12.04 環(huán)境。”基礎(chǔ)上進(jìn)行編譯的,如果您使用的 Ubuntu 編譯環(huán)境不是迅為提供的,請(qǐng)參考第十三章節(jié)進(jìn)行搭建或者自行百度。
14.1整體編譯Android4.4
本節(jié)介紹如何將 Android 4.4 源碼整體編譯,即將 uboot,kernel,Android 鏡像一次性全部編譯出來。
注意的問題編譯 Android 系統(tǒng)必須保證給 Ubuntu系統(tǒng)提供 4G 以上內(nèi)存。這里“提供 4G 以上內(nèi)存”的意思,不僅僅是指在 VMware Workstations 虛擬機(jī)中設(shè)置分配 4G 內(nèi)存。例如,用戶在編譯的時(shí)候,PC 機(jī)的內(nèi)存一共是 6G,在虛擬機(jī)中設(shè)置分配 4G 內(nèi)存,但是在 Windows 系統(tǒng)下,開著 QQ,殺毒軟件,音樂播放器,瀏覽器等等,這樣在 Windows 下占用的內(nèi)存就快 2G 了,那么虛擬機(jī)會(huì)自動(dòng)調(diào)整到只占用 2G,甚至不到 2G 的內(nèi)存,這樣就有可能沒法編譯通過。
正確的分配內(nèi)存方法是,首先給虛擬機(jī)分配 4G 以上內(nèi)存,然后在 Windows 下關(guān)掉盡量多的不必要的應(yīng)用,關(guān)掉盡量多應(yīng)用的后臺(tái)程序。
1輸入以下命令查看java的版本,如果顯示版本是1.6版本則設(shè)置jdk版本成功,如果設(shè)置失敗請(qǐng)參考第十 三章13.2.3章節(jié)安裝jdk,java -version
2 Android4.4 壓縮包要先在 windows 下解壓,解壓之后得到單獨(dú)的壓縮包
iTOP-iMX6_android4.4.2_20200703.tar.gz,如下圖所示:
3 將賬戶切換為 root 用戶,將“iTOP-iMX6_android4.4.2_20200703.tar.gz”壓縮包(使用最新日期的 壓縮包即可)解壓到 Ubuntu 下,作者放在了 Ubuntu 的/home/topeet/imx6 目錄下,
4 使用以下命令解壓源碼,如下圖所示:
tar -vxf iTOP-iMX6_android4.4.2_20200703.tar.gz
5 解壓之后得到“iTOP-iMX6_android4.4.2”文件夾,
6 如下圖所示,使用 ls 命令,可以看到編譯腳本“create.sh”。
create.sh_imx6q是編譯ITOP-IMX6Q(工業(yè)級(jí)1G+8G)和TOP-IMX6Q(商業(yè)級(jí)2G+16G)的腳本,
create.sh_imx6dl是編譯ITOP-IMX6D(商業(yè)級(jí)1G+8G)的腳本。
我們?cè)诰幾g之前要根據(jù)自己手里核心板的型號(hào)選擇對(duì)應(yīng)的編譯腳本,然后覆蓋掉編譯腳本 create.sh,如下表所示:
7 ITOP-IMX6Q(商業(yè)級(jí)2G+16G)整體編譯 Android4.4
8ITOP-IMX6D(商業(yè)級(jí)1G+8G)整體編譯 Android4.4
9ITOP-IMX6Q(工業(yè)級(jí)1G+8G)整體編譯 Android4.4
10編譯完成之后,
11 輸入以下命令進(jìn)入鏡像目錄,使用 ls 命令,可以看到生成了“u-boot.bin”,“boot.img”,“system.img”, “recovery.img”等鏡像文件,cd out/target/product/topeet_6dq
ls
14.2單獨(dú)編譯uboot
1 進(jìn)入源碼解壓得到的“/iTOP-iMX6_android4.4.2/bootable/bootloader/uboot-imx/”目錄下,如下圖所示,可以看到腳本“build_uboot.sh”。
2 請(qǐng)大家工具自己手里的核心板型號(hào),輸入編譯命令,如下表所示,一種顏色的代碼代表一條命令:
3ITOP-IMX6Q(商業(yè)級(jí)2G+16G)單獨(dú)編譯uboot,
4ITOP-IMX6D(商業(yè)級(jí)1G+8G)單獨(dú)編譯uboot,
5 ITOP-IMX6Q(工業(yè)級(jí)1G+8G)單獨(dú)編譯uboot,
6 編譯完成,如下圖所示,生成了“u-boot.bin”文件,就是 uboot 的鏡像。
14.3單獨(dú)編譯Android4.4內(nèi)核
1 如果我們只需要單獨(dú)編譯Android4.4kernel,則進(jìn)入源碼解壓的 iTOP-iMX6_android4.4.2/kernel_imx
目錄下,
2 不區(qū)分核心板的型號(hào),全部使用以下命令開始編譯內(nèi)核 。
./build_android_kernel.sh
3 如下圖所示,開始編譯。
4 如下圖所示,編譯完成。
5 如下圖所示,在“iTOP-iMX6_android4.4.2/kernel_imx/arch/arm/boot”目錄下生成 uImage,即是內(nèi)核鏡像。
6 但是 iMX6 的內(nèi)核燒寫文件比較特殊,需要再次經(jīng)過打包壓縮,所以還需要重新運(yùn)行整體編譯 android 4.4的腳本,才能生成“boot.img”,android 編譯一次之后,后面編譯就非常快了。整體編譯 android 4.4
請(qǐng)參考 14.1 章節(jié)整體編譯 Android4.4。
14.4單獨(dú)編譯Linux內(nèi)核
編譯出來的 Linux 內(nèi)核鏡像適用于 QT,最小文件系統(tǒng),
Ubuntu12.04,Debian,Yocto 系統(tǒng),和 Android4.4
公用一套源碼。
1 如果我們需要單獨(dú)編譯 Linux 系統(tǒng)用的內(nèi)核鏡像,則進(jìn)入源碼“iTOP-iMX6_android4.4.2/kernel_imx”
目錄下,
2 使用以下命令,開始編譯內(nèi)核,如下圖所示:
./build_qt_kernel.sh
3 開始編譯,
4 編譯完成,
5 如下圖所示,在“iTOP-iMX6_android4.4.2/kernel_imx/arch/arm/boot”目錄下生成 uImage,即是內(nèi)核鏡像。
-
Android
+關(guān)注
關(guān)注
12文章
3917瀏覽量
127036 -
開發(fā)板
+關(guān)注
關(guān)注
25文章
4895瀏覽量
97055 -
設(shè)備樹
+關(guān)注
關(guān)注
0文章
38瀏覽量
3105
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論