全志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分区情况:
$cat /proc/swaps
在此提供一种通过创建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 |
|
RTC实时时钟驱动 |
drivers/rtc/rtc-rx8010.cdrivers/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的固件镜像,选择[卡量产],点击[烧录],制卡完成状态:烧写完成后进度条完成。
制作完成之后的卡,插入断电的开发板,上电。等待烧写,烧写完成后如下:
全志A40i开发板Android系统编译相关推荐
- 全志A40i开发板Android应用开发指导
本章节讲解如何建立Android开发环境,包括Android studio SDK集成开发环境的下载及安装,以及如何使用A40i开发板调试程序,适合Android初学者学习和参考. 注:本教程以飞凌嵌 ...
- 全志A40i开发板——Ubuntu系统使用说明
前 言 3 1 Ubuntu根文件系统替换 4 1.1 替换到Linux系统启动卡 4 1.2 替换到eMMC 5 2 Ubuntu系统测试 6 2.1 LED测试 7 2.2 按键测试 7 更多帮助 ...
- 6410 android 4.4.2,365备用「永久地址0365.tv」飞凌嵌入式开发板飞凌i.MX6开发板 Android 系统编译...
安装编译Android4.4 系统所需要的库 1. 安装编译Android 必要的包 # apt-get -y install git gnupg flex bison gperf build-ess ...
- 基于全志A33开发板linux系统移植学习记录(Boot0)
基于全志A33开发板linux系统移植学习记录 第一章 Boot0基于ARMGCC的编译与修改 文章目录 基于全志A33开发板linux系统移植学习记录 前言 一.全志A33简介以及上电引导流程 二. ...
- 全志A40I开发板方案定制开发
全志A40I开发板方案定制 1.1 概述 A40I开发板集成多媒体解码.液晶驱动.千兆以太网.3G.HDMI.VGA.WIFI.Camera.GPS.功放.加密于一体,支持绝大部分当前流行的视频及图片 ...
- 全志A40i开发板硬件说明书——100%国产+工业级方案(下)
前 言 本文档主要介绍全志A40i开发板丰富的硬件接口资源,以及开发设计中的一些注意事项等内容.全志这块A40i的开发板,是源自创龙科技最新代表作品,其核心板采用"100%国产+工业级&qu ...
- iTOP3588开发板Android固件编译修改成mipi显示
iTOP3588开发板Android固件编译修改成mipi显示 打开安卓 12 源码 kernel-5.10/arch/arm64/boot/dts/rockchip/rk3588-evb7-lp4. ...
- iTOP-3588开发板Android 固件编译
历尽千辛万苦,终于过关斩将,终于可以大快朵颐的进行系统编译开发以及调试了,恭 喜你来到系统编译的章节,现在我们开始编译 Android12 系统吧.在编译的时候,如果编译 出现问题,一定要冷静分析,沉 ...
- 全志A40i开发板(4核ARM CortexA7)测评合集——存储介质读写测试
本次测试板卡是创龙科技旗下,一款基于全志科技A40i开发板,其接口资源丰富,可引出双路网口.双路CAN.双路USB.双路RS485等通信接口,板载Bluetooth.WIFI.4G(选配)模块,同时引 ...
最新文章
- python安全攻防---信息收集---ICMP主机探测 以及optionparser的使用
- JavaScript 压缩 加密 解密
- 超强一代JupyterLab发布,可视化调试、中文显示、简单交互界面
- c语言中return,和exit的区别
- html 有序无序列表
- Java多线程:线程同步与关键字synchronized
- matlab模糊闭包,基于matlab的模糊聚类分析
- vue、四级联动(省市区街道)
- java文档中心_Java文档 - SendCloud 文档中心 - SendCloud 文档中心
- android tv outofmem,java.lang.OutOfMemoryError:尝试抛出OutOfMemoryErr...
- 计算机视觉算法与应用 英文pdf,计算机视觉:算法与应用(套装共2册) [Computer Vision:Algorithms and Applications]...
- 【已解决】华为手机短接后有提示音但在其他设备里显示未知设备或者USB-SER怎么办 | 华为荣耀手机短接后未知设备里面出现“USB-SER” 端口如何解决
- 只能输入零和非零开头的数字的正则表达式
- ConcurrentHashMap的实现原理
- ITE平台之UI开发02-Win32仿真开发UI
- 综述论文要写英文摘要吗_英文论文的写作讲解 写好英文论文要注意这三点
- 从mxnet的rec文件中恢复jpg格式
- Helm模板常用语法介绍与简单应用场景
- 熊猫TD988工程模式暗码(设置支持2G卡)
- excel合并同类项去重求和功能