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