硬件平臺:iTOP-6818開發板
一、使用搭建好的編譯環境
4418/6818-Android7.1 的源碼編譯需要 Ubuntu14.04 及以上的版本。在網盤資料中有已經搭建好的 Ubuntu14.04 編譯環境。具體的使用方法參考 4418/6818 開發板使用手冊。
二、Android 源碼編譯
Android 源碼需要先在 Windows 下解壓得到 4418/6818-android7.1-20191121.tar.gz 一個單獨的壓縮包。
將 4418-android7.1-20191121.tar.gz 拷貝到 Ubuntu 下解壓得到 nexell_nougat_r2 文件夾。
注意:Android7.1 源碼編譯完成大約需要 60G 空間。
1、搭建編譯環境
1.1缺少 dtc 編譯工具
解決:安裝 dtc 編譯工具:apt-get install device-tree-compiler
1.2openjbk 版本問題
安裝 OpenJdk1.8
add-apt-repository ppa:openjdk-r/ppa
apt-get update
apt-get install openjdk-8-jdk在多個 JDK 版本中切換 JDK:
update-alternatives --config java
update-alternatives --config javac
update-alternatives --config javadoc
檢查版本號:
java -version
2、Android 源碼編譯
注意:編譯 Android 必須保證給 Ubuntu 系統提供 4G 以上內存。這裏“提供 4G 以
上內存”的意思,不僅僅是指在 VMware Workstations 虛擬機中設置分配 4G 內存。
例如, 用戶在編譯的時候,PC 機的內存一共是 6G,在虛擬機中設置分配 4G 內存,但是
在 Windows 系統下,開着 QQ,殺毒軟件,音樂播放器,瀏覽器等等,這樣在 Windows 下
佔用的內存就 快 2G 了,那麼虛擬機會自動調整到只佔用 3G,甚至不到 3G 的內存,這
樣就有可能沒法編譯 通過。後面的單獨編譯 Android 也是需要 4G 以上內存。
正確的分配內存方法是,首先給虛擬機分配 4G 以上內存,然後在 Windows 下關掉盡
量 多的不必要的應用,關掉儘量多應用的後臺程序。 當然,如果用戶的 PC 是 8G 或者
16G 內存,隨意就成。
在 nexell_nougat_r2 目錄下有編譯腳本。如下圖所示:
根據不同核心板不同內存選擇編譯腳本執行。
4418 腳本編譯命令:
./4418_create_1G.sh android
./4418_create_1G.sh qt
./4418_create_1G.sh Ubuntu
6818 腳本編譯命令:
./6818_create_1G.sh android
./6818_create_1G.sh qt
./6818_create_1G.sh Ubuntu
Android 源碼編譯過程:
Android 編譯完成在 nexell_nougat_r2 下生成 result-s5p4418-topeet4418_ref 文件夾。裏
麪包含需要已經編譯好的鏡像文件。
如果使用 6818 編譯腳本則會生成 result-s5p6818-topeet6818_ref 文件夾。包含已經編譯好的
景象。
3、內核配置文件
4418 路徑:nexell_nougat_r2/kernel/arch/arm/configs 下有不同的配置文件
有 Android、qt 和 Ubuntu 的配置文件,編譯 Android 需要 Android 的配置文件。
執行命令:
cp
s5p4418_topeet4418_ref_nougat_defconfig-android
s5p4418_topeet4418_ref_nougat_defconfig
特別注意,如果用戶想使用 menuconfig 配置缺省文件,請先在控制檯輸入“export
ARCH=arm”,再使用 menuconfig 工具。
6818 內核配置路徑:kernel/arch/arm64/configs
有 Android、qt 和 Ubuntu 的配置文件,編譯 Android 需要 Android 的配置文件。
執行命令 :
cp
s5p6818_topeet6818_ref_nougat_defconfig_android
s5p6818_topeet6818_ref_nougat_defconfig
特別注意,如果用戶想使用 menuconfig 配置缺省文件,在 kernel 目錄下可執行下面命
令進行內核配置:
make s5p6818_topeet6818_ref_nougat_defconfig
make ARCH=arm64 menuconfig
4、S5p6818-2G 下鎂光內存和三星內存
S5p6818-2G 核心板上內存芯片有兩種,分別是三星和鎂光。這兩種內存芯片鏡像文件
有所不同。在網盤資料中有分別對應這兩種內存芯片的鏡像文件。
在網盤資料的 Android 源碼中默認配置的是鎂光芯片。如果要編譯三星內存芯片的鏡像
需要修改文件:device/nexell/bl1/bl1-s5p6818/src/configs/s5p6818_avn_ref.h_2G
鎂光內存芯片配置:
三星內存芯片配置:
轉自:迅爲網盤資料-Android7.1系統資料。