A40i 開發(fā)板 Android 系統(tǒng)編譯

原創(chuàng) 2020-12-08 10:21:00 A40i A40i開發(fā)板

 Android系統(tǒng)編譯


A40i &T3 板卡用戶可以通過飛凌嵌入式提供的網(wǎng)盤鏈接獲取OKA40i-C開發(fā)板軟件和硬件的文檔及源碼。軟件和硬件的文檔及源碼下載方法不清楚的可聯(lián)系飛凌嵌入式客服索取。

硬件平臺(tái):OKA40i-C 開發(fā)板 


注:本文介紹安卓編譯方法也適用于飛凌嵌入式 OKT3-C開發(fā)板,其它平臺(tái)僅供參考使用。

一、安裝Ubuntu 14.04 x64bit及編譯環(huán)境


在這里建議用戶使用Ubuntu真機(jī)進(jìn)行編譯,飛凌提供Android 7.1.1的代碼在Ubuntu14.04 LTS 64位系統(tǒng)docker下編譯測(cè)試通過。

注:推薦電腦配置處理器:Core(TM) i7   內(nèi)存:8G以上;

由于android7編譯環(huán)境建立復(fù)雜,所以只提供docker環(huán)境。

詳見:用戶資料\應(yīng)用\OKA40i-C docker編譯環(huán)境指導(dǎo) 

二、源碼包安裝


請(qǐng)使用飛凌提供的源碼包,含有l(wèi)ichee,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類型文件。

生成目錄結(jié)構(gòu)的命令(注意該命令需要root權(quán)限),如下:

#  mkdir -p  /root/workspace/allwinner

#  cd  /root/workspace/allwinner

復(fù)制源碼壓縮包到虛擬機(jī)或者真實(shí)機(jī)器的/root/workspace/allwinner/路徑。


lichee釋放

步驟1:驗(yàn)證源碼壓縮包完整性,與lichee_md5.txt對(duì)比,命令如下

#  md5sum lichee.tar.gz

步驟2:解壓縮源碼,命令如下。

#  cd  /root/workspace/allwinner/

#  tar xvf  lichee.tar.gz


 android釋放

步驟1:驗(yàn)證壓縮包完整性,與android_md5.txt對(duì)比,命令如下

#  md5sum xaa

#  md5sum xab

#  md5sum xac

#  md5sum xad

#  md5sum xae

步驟2:生成源碼壓縮包,命令如下

#  cat xa* > android.tar.gz

步驟3:驗(yàn)證源碼壓縮包完整性,與android_md5.txt對(duì)比,命令如下

#  md5sum android.tar.gz

步驟4:解壓縮源碼,命令如下。

#  cd  /root/workspace/allwinner/

#  tar xvf  android.tar.gz


驗(yàn)證釋放后文件目錄結(jié)構(gòu)正確

步驟1:

/root/workspace/allwinner$ pwd

/root/workspace/allwinner

步驟2:

/root/workspace/allwinner$ ls

android lichee

三、 Android系統(tǒng)的編譯


準(zhǔn)備好A40i開發(fā)板 Android源碼:


1、編譯前的準(zhǔn)備


請(qǐng)確認(rèn)當(dāng)前系統(tǒng)swap分區(qū)大小,若swap分區(qū)不足會(huì)造成編譯Android源碼失敗,推薦4G。

查看swap分區(qū)情況:

$cat  /proc/swaps

在此提供一種通過創(chuàng)建swap文件的方式來增加swap分區(qū)大小的操作方法,可作為參考:

$sudo  fallocate  -l  4G  /swapfile

$sudo  chmod  600  /swapfile

$sudo  mkswap  /swapfile

$sudo  swapon  /swapfile

$sudo  vim  /etc/fstab

在/etc/fstab文件最后添加如下內(nèi)容:

/swapfile  none  swap  sw  0  0

2、 Android全編譯


進(jìn)入A40i 源碼目錄,執(zhí)行以下命令:

進(jìn)入docker

# cd /root/workspace/allwinner/

root@c4bcf404fa6d:~/workspace/allwinner# pwd

/root/workspace/allwinner

root@c4bcf404fa6d:~/workspace/allwinner# ls

android  lichee

步驟1:配置lichee編譯內(nèi)核

備注:v1表示v1核心板,其他表示適應(yīng)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編譯內(nèi)核

$ ./build.sh

INFO: build lichee OK.

步驟3:導(dǎo)入android編譯環(huán)境變量

$  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:復(fù)制內(nèi)核模塊和內(nèi)核到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!

注意:第一次執(zhí)行extract-bsp命令報(bào)個(gè)錯(cuò)誤,可以忽略,要再執(zhí)行一遍extract-bsp

步驟6:編譯android系統(tǒng) 

$ make -j8

說明:j后邊參數(shù)編譯任務(wù)數(shù)量,如果是4核8線程cpu,那么j8。

編譯成功如圖所示:

注意:首次編譯時(shí)間長(zhǎng),編譯時(shí)間與編譯主機(jī)配置有關(guān)系;

步驟7:打包鏡像文件

$ pack

打包完成如圖:

注: 1.Android的編譯過程需要耗費(fèi)較長(zhǎng)的時(shí)間,時(shí)間長(zhǎng)短視電腦配置而定。

 2.編譯生成的鏡像路徑因使用環(huán)境不同,可能會(huì)有差異,相對(duì)路徑為lichee/tools/pack下。


四、 A40i 驅(qū)動(dòng)代碼路徑


設(shè)備

驅(qū)動(dòng)程序源代碼在內(nèi)核中的位置

設(shè)備名

網(wǎng)卡驅(qū)動(dòng)

drivers/net/ethernet/allwinner/

/sys/class/net/eth*

LCD背光驅(qū)動(dòng)

video/sunxi/disp2/disp/

 

LED驅(qū)動(dòng)

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卡驅(qū)動(dòng)

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

電阻觸控驅(qū)動(dòng)TDB

/drivers/input/touchscreen/sunxi/sunxi-ts.c

 

RTC實(shí)時(shí)時(shí)鐘驅(qū)動(dòng)

drivers/rtc/rtc-rx8010.c

drivers/rtc/rtc-sunxi.c /*不加載*/

/dev/rtc0

/dev/rtc0

串口驅(qū)動(dòng)

drivers/tty/serial/sunxi-uart.c

/dev/tty*

看門狗驅(qū)動(dòng)

arch/arm/mach-sunxi/sun8i.c

/dev/

WIFI

drivers/net/wireless/

wlan0

音頻驅(qū)動(dòng)

sound/soc/sunxi

/dev/snd/

SPI控制器

drivers/spi/spi-sunxi.c

/dev/spidev0.0等

按鍵驅(qū)動(dòng)

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驅(qū)動(dòng)

drivers/i2c/i2c-sunxi.c

 

sata驅(qū)動(dòng)

drivers/ata/ahci_sunxi.c

 


五、 代碼路徑


HAL代碼路徑:

設(shè)備

源代碼在android中的位置

庫名

uart/RS485   串口

hardware/aw/serialport

libserial_port


APP代碼路徑:

名稱

源代碼在位置

備注

Camera3

vendor/forlinx/public/package/apps

預(yù)安裝app

MainMenu

vendor/forlinx/public/package/apps

預(yù)安裝app

chrome

vendor/forlinx/public/package/apps

預(yù)安裝app

Update

vendor/aw/private/apk/

預(yù)安裝app

ESFileExplorer

vendor/aw/public/prebuild/apk

預(yù)安裝app

CarletDriverRecorder

vendor/aw/public/prebuild/apk

預(yù)安裝app


設(shè)備

源代碼在用戶資料中的位置

備注

Camera3.rar

Android\測(cè)試程序

app

MainMenu.zip

Android\測(cè)試程序

app


六、 安裝Android系統(tǒng)


1、 更新鏡像到A40i板卡


燒寫鏡像存儲(chǔ)位置

1 用戶資料\ Android\鏡像\sun8iw11p1_androidm_a40-OKA40i_C_uart0-1024x600.img

1 用戶資料\ Android\鏡像\sun8iw11p1_androidm_a40-OKA40i_C_uart0-1280x800.img

USB燒寫工具存儲(chǔ)位置

1 用戶資料\Android\工具\(yùn)phoenixsuit_V1.1.0_20150325.rar

將phoenixsuit_V1.1.0_20150325.rar在windows下解壓后,點(diǎn)擊PhoenixSuit_CN.msi進(jìn)行安裝。

 

點(diǎn)擊“下一步”,選擇“瀏覽”,選擇安裝路徑。選擇“下一步”。

 

選擇“下一步”,程序安裝。

 

安裝完成之后選擇“完成”“關(guān)閉”。

 

 

安裝完成之后,桌面出現(xiàn)PhoenixSuit快捷方式,點(diǎn)擊圖標(biāo) 打開USB燒寫工具。

 

選擇“一鍵刷機(jī)”項(xiàng),選擇“瀏覽”添加對(duì)應(yīng)鏡像路徑。

 

上電時(shí),需要同時(shí)按下FEL(K3)和RESET(K7)鍵,然后松開RESET(K7)按鍵,此時(shí)核心板進(jìn)入OTG燒寫模式,然后松開FEL(K3)進(jìn)行燒寫狀態(tài);燒寫完成后如下:

 


2、 SD卡燒寫工具安裝使用


1 用戶資料\Android\工具\(yùn)PhoenixCard_V310_20130618.rar

將PhoenixCard_V310_20130618.rar在windows下解壓后,雙擊PhoenixCard.exe運(yùn)行。

PhoenixCard軟件用于將待量產(chǎn)的固件通過SD卡讀卡器寫入SD卡中。 用戶可以選擇不同的模式將SD卡燒寫成量產(chǎn)模式或者是啟動(dòng)模式,燒寫完成后可以用燒寫好的SD卡來進(jìn)行設(shè)備量產(chǎn)或者啟動(dòng)。

PhoenixCard軟件界面如下:

SD讀卡器卡插入電腦usb接口,點(diǎn)擊[獲取盤符],點(diǎn)擊[鏡像文件]瀏覽A40i的固件鏡像,選擇[卡量產(chǎn)],點(diǎn)擊[燒錄],制卡完成狀態(tài):燒寫完成后進(jìn)度條完成。

制作完成之后的卡,插入斷電的開發(fā)板,上電。等待燒寫,燒寫完成后如下:

相關(guān)產(chǎn)品 >

  • FETA40i-C核心板

    Allwinner A40i是全志開發(fā)的一款工業(yè)級(jí)處理器,A40i作為全國產(chǎn)工業(yè)級(jí)芯片中的佼佼者,采用更低功耗的4核ARM Cortex-A7架構(gòu),工作溫度-40-85℃,是一款高性能低功耗超高性能CPU主芯片。飛凌嵌入式深度研究全志A40i芯片參數(shù)、原理圖、datasheet規(guī)格書推出了以FETA40i核心板為主的一系列全國產(chǎn)工業(yè)級(jí)嵌入式計(jì)算機(jī)板卡,并提供了用于評(píng)估的A40i工控板、 A40i開發(fā)板。 了解詳情
    FETA40i-C核心板
  • OKA40i-C開發(fā)板

    國產(chǎn)工業(yè)級(jí),高清輸出,豐富接口|OKA40i開發(fā)板采用底板+核心板結(jié)構(gòu),基于全志工控行業(yè)平臺(tái)級(jí)處理器四核Cortex-A7 A40i設(shè)計(jì),主頻1.2GHz,集成MAli400MP2 GPU,內(nèi)存1GB/2GB DDR3L,存儲(chǔ)8GB eMMC。 全志A40i工控行業(yè)芯片平臺(tái) A40i為國產(chǎn)工控行業(yè)芯,全志A40i處理器代表了Allwin在智能工業(yè)控制領(lǐng)域的成就。飛凌嵌入式A40i系列OKA40i-C開發(fā)板是飛凌推出的一款中國芯,全國產(chǎn)級(jí)工業(yè)級(jí)開發(fā)板,適用于適用于基于視覺交互的工業(yè)控制產(chǎn)品 了解詳情
    OKA40i-C開發(fā)板

推薦閱讀 換一批 換一批