- 一个好的文章能够帮助开发者完成更便捷、更快速的开发。
- 书山有路勤为径,学海无涯苦作舟。我是秋知叶i、期望每一个阅读了我的文章的开发者都能够有所成长。
【A40i-Android7.1】--- A40i 编译流程 和 打包成固件
开发环境
开发环境:Ubuntu16
开发平台:全志 A40i-Android7.1
A40i-7.1–编译打包固件流程
一、编译U-boot
1、U-boot 目录
cd a40i_android7/lichee/brandy
2、编译 U-boot
./build.sh -p sun8iw11p1
3、编译报错
Makefile:1218: *** missing separator. Stop.
4、解决方法
diff --git a/lichee/brandy/u-boot-2014.07/Makefile b/lichee/brandy/u-boot-2014.07/Makefile
index 21d8b03..6575687 100755
--- a/lichee/brandy/u-boot-2014.07/Makefile
+++ b/lichee/brandy/u-boot-2014.07/Makefile
@@ -1214,8 +1214,7 @@ tpl/u-boot-tpl.bin: tools prepare
TAG_SUBDIRS := $(u-boot-dirs) include sunxi_spl
FIND := find
-FINDFLAGS := -L
--R --c++-kinds=+p --fields=+iaS --extra=+q
+FINDFLAGS := -L -R --c++-kinds=+p --fields=+iaS --extra=+q
tags ctags:
ctags -w -o ctags `$(FIND) $(FINDFLAGS) $(TAG_SUBDIRS) \
-name '*.[chS]' -print`
二、编译Kenrle
1、Kernel 目录
cd a40i_android7/lichee
2、赋予编译脚本权限
chmod 777 build.sh
3、选择编译型号
./build.sh config
配置:
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-p1
1. t3-mp1
2. t3-mp3
3. t3-p1
4. t3-p2
5. t3-p3
Choice: 0
4、编译 Kernel
./build.sh
三、编译Android
1、Android 目录
cd android
2、选择编译型号
source build/envsetup.sh
/*选择24*/
lunch a40-p1
3、拷贝 lichee 编译的结果
extract-bsp
4、编译 Android
-j64 表示开启64条线程编译
make -j64
四、打包固件
1、打包成固件
pack
五、特别说明
1、extract-bsp 拷贝报错
①、如果 ./build.sh config 选择了 android 那么在执行 extract-bsp 就会出现下面的错误
cp: cannot stat '/home/qiuwenxiong/allwinner/A40i-Android7.1/android7.1_v3/android/../lichee/out/sun8iw11p1/androidm/common/bImage': No such file or directory
/home/qiuwenxiong/allwinner/A40i-Android7.1/android7.1_v3/android/device/softwinner/a40-p1/bImage copied!
cp: cannot stat '/home/qiuwenxiong/allwinner/A40i-Android7.1/android7.1_v3/android/../lichee/out/sun8iw11p1/androidm/common/lib/modules/*/*': No such file or directory
/home/qiuwenxiong/allwinner/A40i-Android7.1/android7.1_v3/android/device/softwinner/a40-p1/modules copied!
chmod: cannot access 'modules/modules/*': No such file or directory
②、解决方法
diff --git a/device/softwinner/common/vendorsetup.sh b/device/softwinner/common/vendorsetup.sh
index a3be43d..b825fce 100644
--- a/device/softwinner/common/vendorsetup.sh
+++ b/device/softwinner/common/vendorsetup.sh
@@ -65,7 +65,7 @@ function get_lichee_out_dir()
LINUXOUT_DIR=$LICHEE_DIR/out/sun8iw11p1/androidm/common
fi
if [ "$TARGET_BOARD_PLATFORM" == "a40" ]; then
- LINUXOUT_DIR=$LICHEE_DIR/out/sun8iw11p1/androidm/common
+ LINUXOUT_DIR=$LICHEE_DIR/out/sun8iw11p1/android/common
fi
LINUXOUT_MODULE_DIR=$LINUXOUT_DIR/lib/modules/*/*
}
2、 pack 打包固件报错
①、如果 ./build.sh config 选择了 android 那么在执行 pack 就会出现下面的错误
ERROR: build lichee before you pack
②、解决方法
diff --git a/device/softwinner/a40-p1/package.sh b/device/softwinner/a40-p1/package.sh
index 6ad9395..60c8c34 100644
--- a/device/softwinner/a40-p1/package.sh
+++ b/device/softwinner/a40-p1/package.sh
@@ -3,7 +3,7 @@
cd $PACKAGE
chip=sun8iw11p1
-platform=androidm
+platform=android
board=a40-p1
debug=uart0
sigmode=none