A40i 開發板 Android 系統編譯
Android系統編譯
A40i &T3 板卡用戶可以通過飛凌嵌入式提供的網盤鏈接獲取OKA40i-C開發板軟件和硬件的文檔及源碼。軟件和硬件的文檔及源碼下載方法不清楚的可聯系飛凌嵌入式客服索取。
硬件平臺:OKA40i-C 開發板
注:本文介紹安卓編譯方法也適用于飛凌嵌入式 OKT3-C開發板,其它平臺僅供參考使用。
一、安裝Ubuntu 14.04 x64bit及編譯環境
在這里建議用戶使用Ubuntu真機進行編譯,飛凌提供Android 7.1.1的代碼在Ubuntu14.04 LTS 64位系統docker下編譯測試通過。
注:推薦電腦配置處理器:Core(TM) i7 內存:8G以上;
由于android7編譯環境建立復雜,所以只提供docker環境。
詳見:用戶資料\應用\OKA40i-C docker編譯環境指導
二、源碼包安裝
請使用飛凌提供的源碼包,含有lichee,android,文件所在路徑如下:
用戶資料\Android\源碼\lichee\lichee.tar.gz
用戶資料\Android\源碼\android\xaa
用戶資料\Android\源碼\android\xab
用戶資料\Android\源碼\android\xac
用戶資料\Android\源碼\android\xad
用戶資料\Android\源碼\android\xae
說明:由于源代碼超過3G,所以android才用分包形式:分成xaa,xab,xac,xad,xae類型文件。
生成目錄結構的命令(注意該命令需要root權限),如下:
# mkdir -p /root/workspace/allwinner
# cd /root/workspace/allwinner
復制源碼壓縮包到虛擬機或者真實機器的/root/workspace/allwinner/路徑。
lichee釋放
步驟1:驗證源碼壓縮包完整性,與lichee_md5.txt對比,命令如下
# md5sum lichee.tar.gz
步驟2:解壓縮源碼,命令如下。
# cd /root/workspace/allwinner/
# tar xvf lichee.tar.gz
android釋放
步驟1:驗證壓縮包完整性,與android_md5.txt對比,命令如下
# md5sum xaa
# md5sum xab
# md5sum xac
# md5sum xad
# md5sum xae
步驟2:生成源碼壓縮包,命令如下
# cat xa* > android.tar.gz
步驟3:驗證源碼壓縮包完整性,與android_md5.txt對比,命令如下
# md5sum android.tar.gz
步驟4:解壓縮源碼,命令如下。
# cd /root/workspace/allwinner/
# tar xvf android.tar.gz
驗證釋放后文件目錄結構正確
步驟1:
/root/workspace/allwinner$ pwd
/root/workspace/allwinner
步驟2:
/root/workspace/allwinner$ ls
android lichee
三、 Android系統的編譯
準備好A40i開發板 Android源碼:
1、編譯前的準備
請確認當前系統swap分區大小,若swap分區不足會造成編譯Android源碼失敗,推薦4G。
查看swap分區情況:
在此提供一種通過創建swap文件的方式來增加swap分區大小的操作方法,可作為參考:
$sudo fallocate -l 4G /swapfile
$sudo chmod 600 /swapfile
$sudo mkswap /swapfile
$sudo swapon /swapfile
$sudo vim /etc/fstab
在/etc/fstab文件最后添加如下內容:
/swapfile none swap sw 0 0
2、 Android全編譯
進入A40i 源碼目錄,執行以下命令:
進入docker
# cd /root/workspace/allwinner/
root@c4bcf404fa6d:~/workspace/allwinner# pwd
/root/workspace/allwinner
root@c4bcf404fa6d:~/workspace/allwinner# ls
android lichee
步驟1:配置lichee編譯內核
備注:v1表示v1核心板,其他表示適應v2核心板
$ cd /root/workspace/allwinner/
$cd lichee
$./build.sh config
I have already read, understood and accepted the above terms? [Y/N] Y
Welcome to mkscript setup progress
All available chips:
0. sun8iw11p1
Choice: 0
All available platforms:
0. android
1. androidm
2. dragonboard
3. linux
4. camdroid
Choice: 1
All available kernel:
0. linux-3.10
Choice: 0
All available boards:
0. a40-OKA40i_C
1. a40-p1
2. t3-mp1
3. t3-mp3
4. t3-p1
5. t3-p2
6. t3-p3
Choice: 0
All available lcd resolutions:
0. 480x272
1. 800x480_v1
2. 1024x600_v1
3. 1024x600mipi_v1
4. 1280x800_v1
5. 800x480
6. 800x600
7. 1024x600
8. 1024x600mipi
9. 1280x800
Choice: 7
步驟2:lichee編譯內核
$ ./build.sh
INFO: build lichee OK.
步驟3:導入android編譯環境變量
$ cd /root/workspace/allwinner/android/
$ source build/envsetup.sh
#輸出:
including device/asus/fugu/vendorsetup.sh
including device/generic/mini-emulator-arm64/vendorsetup.sh
including device/generic/mini-emulator-armv7-a-neon/vendorsetup.sh
including device/generic/mini-emulator-mips/vendorsetup.sh
including device/generic/mini-emulator-mips64/vendorsetup.sh
including device/generic/mini-emulator-x86/vendorsetup.sh
including device/generic/mini-emulator-x86_64/vendorsetup.sh
including device/google/dragon/vendorsetup.sh
including device/google/marlin/vendorsetup.sh
including device/htc/flounder/vendorsetup.sh
including device/huawei/angler/vendorsetup.sh
including device/lge/bullhead/vendorsetup.sh
including device/linaro/hikey/vendorsetup.sh
including device/moto/shamu/vendorsetup.sh
including device/softwinner/a40-OKA40i_C/vendorsetup.sh
including device/softwinner/a40-p1/vendorsetup.sh
including device/softwinner/common/vendorsetup.sh
including device/softwinner/t3-p3/vendorsetup.sh
including sdk/bash_completion/adb.bash
步驟4:配置A40i android板卡
$ lunch 24
#輸出:
============================================
PLATFORM_VERSION_CODENAME=REL
PLATFORM_VERSION=7.1.1
TARGET_PRODUCT=a40_OKA40i_C
TARGET_BUILD_VARIANT=eng
TARGET_BUILD_TYPE=release
TARGET_BUILD_APPS=
TARGET_ARCH=arm
TARGET_ARCH_VARIANT=armv7-a-neon
TARGET_CPU_VARIANT=cortex-a7
TARGET_2ND_ARCH=
TARGET_2ND_ARCH_VARIANT=
TARGET_2ND_CPU_VARIANT=
HOST_ARCH=x86_64
HOST_2ND_ARCH=x86
HOST_OS=linux
HOST_OS_EXTRA=Linux-4.15.0-58-generic-x86_64-with-Ubuntu-14.04-trusty
HOST_CROSS_OS=windows
HOST_CROSS_ARCH=x86
HOST_CROSS_2ND_ARCH=x86_64
HOST_BUILD_TYPE=release
BUILD_ID=NMF27D
OUT_DIR=out
步驟5:復制內核模塊和內核到android
$ extract-bsp
#輸出:
/root/workspace/allwinner/android/device/softwinner/a40-OKA40i_C/bImage copied!
/root/workspace/allwinner/android/device/softwinner/a40-OKA40i_C/modules copied!
注意:第一次執行extract-bsp命令報個錯誤,可以忽略,要再執行一遍extract-bsp
步驟6:編譯android系統
$ make -j8
說明:j后邊參數編譯任務數量,如果是4核8線程cpu,那么j8。
編譯成功如圖所示:
注意:首次編譯時間長,編譯時間與編譯主機配置有關系;
步驟7:打包鏡像文件
$ pack
打包完成如圖:
注: 1.Android的編譯過程需要耗費較長的時間,時間長短視電腦配置而定。
2.編譯生成的鏡像路徑因使用環境不同,可能會有差異,相對路徑為lichee/tools/pack下。
四、 A40i 驅動代碼路徑
設備 |
驅動程序源代碼在內核中的位置 |
設備名 |
網卡驅動 |
drivers/net/ethernet/allwinner/ |
/sys/class/net/eth* |
LCD背光驅動 |
video/sunxi/disp2/disp/ |
|
LED驅動 |
drivers/leds/leds-gpio.c |
/sys/class/leds/ |
USB接口U盤 |
drivers/usb/storage/ |
/dev/sdx |
USB 3G |
drivers/usb/serial/ |
/dev/ttyUSB* |
USB Camera |
drivers/media/usb/uvc/uvc_video.c |
|
SD卡驅動 |
drivers/mmc/card/ drivers/mmc/host/sun* |
/dev/block/mmcblk0pX |
LCD FrameBuffer |
drivers/video/sunxi/disp2/disp/lcd/ |
/dev/fb0 |
ft5x06電容觸摸 |
drivers/input/touchsrcreen/ |
/dev/input/eventx |
gt9xx電容觸摸 |
/drivers/input/touchscreen/ |
dev/input/eventx |
電阻觸控驅動TDB |
/drivers/input/touchscreen/sunxi/sunxi-ts.c |
|
drivers/rtc/rtc-rx8010.c drivers/rtc/rtc-sunxi.c /*不加載*/ |
/dev/rtc0 /dev/rtc0 |
|
串口驅動 |
drivers/tty/serial/sunxi-uart.c |
/dev/tty* |
看門狗驅動 |
arch/arm/mach-sunxi/sun8i.c |
/dev/ |
WIFI |
drivers/net/wireless/ |
wlan0 |
音頻驅動 |
sound/soc/sunxi |
/dev/snd/ |
SPI控制器 |
drivers/spi/spi-sunxi.c |
/dev/spidev0.0等 |
按鍵驅動 |
drivers/input/keyboard/sunxi-keyboard.c |
|
Smart card reader |
drivers/char/sunxi-scr/sunxi-scr.c |
|
攝像頭ov5640 |
drivers/media/platform/sunxi-vfe/ |
|
tvin |
drivers/media/platform/sunxi-tvd/ |
|
twi驅動 |
drivers/i2c/i2c-sunxi.c |
|
sata驅動 |
drivers/ata/ahci_sunxi.c |
|
五、 代碼路徑
HAL代碼路徑:
設備 |
源代碼在android中的位置 |
庫名 |
uart/RS485 串口 |
hardware/aw/serialport |
libserial_port |
APP代碼路徑:
名稱 |
源代碼在位置 |
備注 |
Camera3 |
vendor/forlinx/public/package/apps |
預安裝app |
MainMenu |
vendor/forlinx/public/package/apps |
預安裝app |
chrome |
vendor/forlinx/public/package/apps |
預安裝app |
Update |
vendor/aw/private/apk/ |
預安裝app |
ESFileExplorer |
vendor/aw/public/prebuild/apk |
預安裝app |
CarletDriverRecorder |
vendor/aw/public/prebuild/apk |
預安裝app |
設備 |
源代碼在用戶資料中的位置 |
備注 |
Camera3.rar |
Android\測試程序 |
app |
MainMenu.zip |
Android\測試程序 |
app |
六、 安裝Android系統
1、 更新鏡像到A40i板卡
燒寫鏡像存儲位置
1 用戶資料\ Android\鏡像\sun8iw11p1_androidm_a40-OKA40i_C_uart0-1024x600.img
1 用戶資料\ Android\鏡像\sun8iw11p1_androidm_a40-OKA40i_C_uart0-1280x800.img
USB燒寫工具存儲位置
1 用戶資料\Android\工具\phoenixsuit_V1.1.0_20150325.rar
將phoenixsuit_V1.1.0_20150325.rar在windows下解壓后,點擊PhoenixSuit_CN.msi進行安裝。
點擊“下一步”,選擇“瀏覽”,選擇安裝路徑。選擇“下一步”。
選擇“下一步”,程序安裝。
安裝完成之后選擇“完成”“關閉”。
安裝完成之后,桌面出現PhoenixSuit快捷方式,點擊圖標 打開USB燒寫工具。
選擇“一鍵刷機”項,選擇“瀏覽”添加對應鏡像路徑。
上電時,需要同時按下FEL(K3)和RESET(K7)鍵,然后松開RESET(K7)按鍵,此時核心板進入OTG燒寫模式,然后松開FEL(K3)進行燒寫狀態;燒寫完成后如下:
2、 SD卡燒寫工具安裝使用
1 用戶資料\Android\工具\PhoenixCard_V310_20130618.rar
將PhoenixCard_V310_20130618.rar在windows下解壓后,雙擊PhoenixCard.exe運行。
PhoenixCard軟件用于將待量產的固件通過SD卡讀卡器寫入SD卡中。 用戶可以選擇不同的模式將SD卡燒寫成量產模式或者是啟動模式,燒寫完成后可以用燒寫好的SD卡來進行設備量產或者啟動。
PhoenixCard軟件界面如下:
SD讀卡器卡插入電腦usb接口,點擊[獲取盤符],點擊[鏡像文件]瀏覽A40i的固件鏡像,選擇[卡量產],點擊[燒錄],制卡完成狀態:燒寫完成后進度條完成。
制作完成之后的卡,插入斷電的開發板,上電。等待燒寫,燒寫完成后如下:
相關產品 >
-
FETA40i-C核心板
Allwinner A40i是全志開發的一款工業級處理器,A40i作為全國產工業級芯片中的佼佼者,采用更低功耗的4核ARM Cortex-A7架構,工作溫度-40-85℃,是一款高性能低功耗超高性能CPU主芯片。飛凌嵌入式深度研究全志A40i芯片參數、原理圖、datasheet規格書推出了以FETA40i核心板為主的一系列全國產工業級嵌入式計算機板卡,并提供了用于評估的A40i工控板、 A40i開發板。 了解詳情 -
OKA40i-C開發板
國產工業級,高清輸出,豐富接口|OKA40i開發板采用底板+核心板結構,基于全志工控行業平臺級處理器四核Cortex-A7 A40i設計,主頻1.2GHz,集成MAli400MP2 GPU,內存1GB/2GB DDR3L,存儲8GB eMMC。 全志A40i工控行業芯片平臺 A40i為國產工控行業芯,全志A40i處理器代表了Allwin在智能工業控制領域的成就。飛凌嵌入式A40i系列OKA40i-C開發板是飛凌推出的一款中國芯,全國產級工業級開發板,適用于適用于基于視覺交互的工業控制產品 了解詳情