4418/6818-Android7.1 的源碼編譯需要 Ubuntu14.04 及以上的版本。iTOP-4418 的 Android7.1 資料在“iTOP4418 開發板資料匯總(不含光盤部分)\10_iTOP-4418 開發板-Android7.1 資料-20200811”目錄下。在網盤資料中有已經搭建好的 Ubuntu14.04 編譯環境。路徑是“iTOP4418 開發板資料匯總(不含光盤部分)\02_iTOP-4418開發板編譯系統所需要的工具包等\02-Ubuntu系統安裝包\04_搭建好開發環境的Ubuntu14.04虛擬機鏡像”,具體的使用方法參考安裝 ubuntu 虛擬機的相關章節。 Android 源碼需要先在 Windows 下解壓得到 4418/6818-android7.1-20191121.tar.gz 一個單獨的壓縮包。 將 4418-android7.1-20191121.tar.gz 拷貝到 Ubuntu 下解壓得到 nexell_nougat_r2 文件夾。 注意: Android7.1 源碼編譯完成大約需要 60G 空間。 ![]() 10.1 搭建編譯環境 10.1.1 缺少 dtc ![]() 安裝 dtc 編譯工具: apt-get install device-tree-compiler 10.1.2 openjdk 版本問題 ![]() 安裝 Openjdk1.8: add-apt-repository 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 ![]() 10.2 Android7.1 源碼編譯 注意:編譯 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 Android 源碼編譯過程: ![]() Android 編譯完成在 nexell_nougat_r2 下生成 result-s5p4418-topeet4418_ref 文件夾。里面包含需要已經編譯好的鏡像文件。 ![]() 10.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 然后執行以下命令 export ARCH=arm make s5p4418_topeet4418_ref_nougat_defconfig 特別注意,如果用戶想使用 menuconfig 配置缺省文件,請先在控制臺輸入“export ARCH=arm”,再使用 menuconfig 工具。 ![]() 10.4 修改屏幕 一 、 uboot 修改 4418 文件: nexell_nougat_r2/device/nexell/u-boot/u-boot-2016.01/arch/arm/dts/s5p4418-topeet4418-ref.dts ![]() 二、 內核修改 內核設備樹修改 4418 文件: nexell_nougat_r2/kernel/arch/arm/boot/dts/s5p4418-topeet4418_ref-common.dtsi 在文件開始有關于屏幕尺寸的宏定義,根據不同的屏幕選擇不同的宏定義 ![]() 三、 內核配置 根據不同系統和屏幕尺寸選擇不同的內核配置,進入 kernel 目錄執行 export ARCH=arm make menuconfig 4.3 寸屏配置: Device Drivers ---> Input device support ---> Touchscreens ---> <*> TSC2007 based touchscreens <> GTP911 based touchscreens 10.1 寸屏幕配置; Device Drivers ---> Input device support ---> Touchscreens ---> <*> GTP911 based touchscreens 其他屏幕配置: Device Drivers ---> Input device support ---> Touchscreens ---> <> GTP911 based touchscreens <*> select FT5X0X based touchscreens select ft5x0x system (android system) ---> (X) android system ( ) QT system select lcd type (lvds 7.0) ---> (X) lvds 7.0 ( ) lvds 9.7 ( ) RGB 7.0 ( ) RGB 5.0 迅為4418開發板資料更新了 ![]() |