1.、开发环境准备
1.1 Ubuntu 18.04 服务器或虚拟机 -- (用于源码编译)
建议内存32G以上
1.2 Windows 10电脑 -- (用于镜像的烧录)
1.3 A311D主控的开发板
2.toolchain编译链
2.1 需要用到的GCC
kernel:
gcc-linaro-6.3.1-2017.02-x86_64_aarch64-linux-gnu.tar
gcc-linaro-6.3.1-2017.02-x86_64_arm-linux-gnueabihf.tar.gz
uboot:
gcc-linaro-aarch64-none-elf-4.8-2013.11_linux.tar
2.2 uboot gcc配置
OTT-DS-AndP/bootloader/uboot-repo/bl33$ git diff ./
diff --git a/Makefile b/Makefile
old mode 100644
new mode 100755
index d42a459..973942a
--- a/Makefile
+++ b/Makefile
@@ -246,7 +246,7 @@ ifeq ($(HOSTARCH),$(ARCH))
CROSS_COMPILE ?=
endif
-CROSS_COMPILE ?= /opt/gcc-linaro-aarch64-none-elf-4.8-2013.11_linux/bin/aarch64-none-elf-
+CROSS_COMPILE ?= $(srctree)/../../../toolchain/opt/gcc-linaro-aarch64-none-elf-4.8-2013.11_linux/bin/aarch64-none-elf-
CROSS_COMPILE_T32 ?= /opt/gcc-arm-none-eabi-6-2017-q2-update/bin/arm-none-eabi-
export CROSS_COMPILE
export CROSS_COMPILE_T32
2.3 kernel gcc配置
OTT-DS-AndP/device/amlogic$ git diff ./
diff --git a/w400/Kernel.mk b/w400/Kernel.mk
old mode 100644
new mode 100755
index 8510958..10e02c5
--- a/w400/Kernel.mk
+++ b/w400/Kernel.mk
@@ -71,13 +71,13 @@ ifeq ($(KERNEL_A32_SUPPORT), true)
KERNEL_DEFCONFIG := meson64_a32_defconfig
KERNEL_ARCH := arm
INTERMEDIATES_KERNEL := $(KERNEL_OUT)/arch/$(KERNEL_ARCH)/boot/uImage
-PREFIX_CROSS_COMPILE=/opt/gcc-linaro-6.3.1-2017.02-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-
+PREFIX_CROSS_COMPILE=$(shell pwd)/toolchain/opt/gcc-linaro-6.3.1-2017.02-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-
BUILD_CONFIG := $(KERNEL_DEFCONFIG)
else
KERNEL_DEFCONFIG := meson64_defconfig
KERNEL_ARCH := arm64
INTERMEDIATES_KERNEL := $(KERNEL_OUT)/arch/$(KERNEL_ARCH)/boot/Image.gz
-PREFIX_CROSS_COMPILE=/opt/gcc-linaro-6.3.1-2017.02-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-
+PREFIX_CROSS_COMPILE=$(shell pwd)/toolchain/opt/gcc-linaro-6.3.1-2017.02-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-
BUILD_CONFIG := $(KERNEL_DEFCONFIG)
endif
3.编译方法
. build/envsetup.sh
lunch w400-userdebug
make otapackage 2>&1 | tee build.log