Android系统编译
注:本文介绍安卓编译方法也适用于飞凌嵌入式 OKT3-C开发板,其它平台仅供参考使用。
一、安装Ubuntu 14.04 x64bit及编译环境
在这里建议用户使用Ubuntu真机进行编译,飞凌提供Android 7.1.1的代码在Ubuntu14.04 LTS 64位系统
docker下编译测试通过。
注:推荐电脑配置处理器:Core(TM) i7 内存:8G以上;
详见:用户资料\应用\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/路径。
步骤1:验证源码压缩包完整性,与lichee_md5.txt对比,命令如下
# cd /root/workspace/allwinner/
步骤1:验证压缩包完整性,与android_md5.txt对比,命令如下
# cat xa* > android.tar.gz
步骤3:验证源码压缩包完整性,与android_md5.txt对比,命令如下
# cd /root/workspace/allwinner/
/root/workspace/allwinner$ pwd
/root/workspace/allwinner
/root/workspace/allwinner$ ls
三、 Android系统的编译
1、编译前的准备
请确认当前系统swap分区大小,若swap分区不足会造成编译Android源码失败,推荐4G。
在此提供一种通过创建swap文件的方式来增加swap分区大小的
操作方法,可作为参考:
$sudo fallocate -l 4G /swapfile
$sudo chmod 600 /swapfile
/swapfile none swap sw 0 0
2、 Android全编译
# cd /root/workspace/allwinner/
root@c4bcf404fa6d:~/workspace/allwinner# pwd
/root/workspace/allwinner
root@c4bcf404fa6d:~/workspace/allwinner# ls
$ cd /root/workspace/allwinner/
I have already read, understood and accepted the above terms? [Y/N] Y
Welcome to mkscript setup progress
All available lcd resolutions:
$ 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
============================================
PLATFORM_VERSION_CODENAME=REL
TARGET_PRODUCT=a40_OKA40i_C
TARGET_BUILD_TYPE=release
TARGET_ARCH_VARIANT=armv7-a-neon
TARGET_CPU_VARIANT=cortex-a7
HOST_OS_EXTRA=
Linux-4.15.0-58-generic-x86_64-with-Ubuntu-14.04-trusty
HOST_CROSS_2ND_ARCH=x86_64
/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
说明:j后边参数编译任务数量,如果是4核8线程cpu,那么j8。
注意:首次编译时间长,编译时间与编译主机配置有关系;
注: 1.Android的编译过程需要耗费较长的时间,时间长短视电脑配置而定。
2.编译生成的镜像路径因使用环境不同,可能会有差异,相对路径为lichee/tools/pack下。
四、 A40i 驱动代码路径
| | |
| drivers/net/ethernet/allwinner/ | |
| | |
| | |
| | |
| | |
| drivers/media/usb/uvc/uvc_video.c | |
| drivers/mmc/card/drivers/mmc/host/sun* | |
| drivers/video/sunxi/disp2/disp/lcd/ | |
| drivers/input/touchsrcreen/ | |
| /drivers/input/touchscreen/ | |
| /drivers/input/touchscreen/sunxi/sunxi-ts.c | |
| drivers/rtc/rtc-rx8010.cdrivers/rtc/rtc-sunxi.c /*不加载*/ | |
| drivers/tty/serial/sunxi-uart.c | |
| arch/arm/mach-sunxi/sun8i.c | |
| | |
| | |
| | |
| drivers/input/keyboard/sunxi-keyboard.c | |
| drivers/char/sunxi-scr/sunxi-scr.c | |
| drivers/media/platform/sunxi-vfe/ | |
| drivers/media/platform/sunxi-tvd/ | |
| | |
| | |
| | |
| vendor/forlinx/public/package/apps | |
| vendor/forlinx/public/package/apps | |
| vendor/forlinx/public/package/apps | |
| | |
| vendor/aw/public/prebuild/apk | |
| vendor/aw/public/prebuild/apk | |
1、 更新镜像到A40i板卡
1 用户资料\ Android\镜像\sun8iw11p1_androidm_a40-OKA40i_C_uart0-1024x600.img
1 用户资料\ Android\镜像\sun8iw11p1_androidm_a40-OKA40i_C_uart0-1280x800.img
1 用户资料\Android\工具\phoenixsuit_V1.1.0_20150325.rar
将phoenixsuit_V1.1.0_20150325.rar在windows下解压后,点击PhoenixSuit_CN.msi进行安装。
点击“下一步”,选择“浏览”,选择安装路径。选择“下一步”。
安装完成之后,桌面出现PhoenixSuit快捷方式,点击图标
选择“一键刷机”项,选择“浏览”添加对应镜像路径。
上电时,需要同时按下FEL(K3)和RESET(K7)键,然后松开RESET(K7)按键,此时核心板进入OTG烧写模式,然后松开FEL(K3)进行烧写状态;烧写完成后如下:
2、 SD卡烧写工具安装使用
1 用户资料\Android\工具\PhoenixCard_V310_20130
618.rar
将PhoenixCard_V310_20130618.rar在windows下解压后,双击PhoenixCard.exe运行。
PhoenixCard软件用于将待量产的固件通过SD卡读卡器写入SD卡中。 用户可以选择不同的模式将SD卡烧写成量产模式或者是启动模式,烧写完成后可以用烧写好的SD卡来进行设备量产或者启动。
SD读卡器卡插入电脑usb接口,点击[获取盘符],点击[镜像文件]浏览A40i的固件镜像,选择[卡量产],点击[烧录],制卡完成状态:烧写完成后进度条完成。
制作完成之后的卡,插入断电的开发板,上电。等待烧写,烧写完成后如下:
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69989353/viewspace-3163728/
,如需转载,请注明出处,否则将追究法律责任。