一、环境准备
1.1 操作系统
笔者使用的是VMware Workstation 15 Pro 和 Ubuntu18.04。
1.2 交叉编译工具链
笔者使用的交叉编译工具是通过buildroot自己配置编译的。
1.2.1 下载buildroot源码
buildroot可以通过官网https://buildroot.org/进行下载
1.2.2 配置buildroot
通过make menuconfig,进行如下配置,toolchain将会生成在output/host/usr/bin/下
Target options --->
Target Architecture (ARM (little endian)) --->
Target Binary Format (ELF) --->
Target Architecture Variant (cortex-A9) --->
[*] Enable NEON SIMD extension support
[*] Enable VFP extension support
Target ABI (EABI) --->
Floating point strategy (VFPv3-D16) --->
ARM instruction set (ARM) --->
Build options ---> (保持默认即可)
Toolchain --->
Toolchain type (Buildroot toolchain) --->
(exynos4412) custom toolchain vendor name
C library (glibc) --->
GCC compiler Version (gcc 7.x) --->
[*] Enable C++ support
[*] Build cross gdb for the host
GDB debugger Version (gdb 8.1.x) --->
[*] Enable MMU support
System configuration ---> (保持默认即可)
Kernel --->
[ ] Linux Kernel (不选)
Target packages ---> (保持默认即可)
Filesystem images ---> (保持默认即可)
Bootloaders ---> (全不选)
Host utilities ---> (全不选)
Legacy config options ---> (全不选)
二、源码准备
2.1 源码下载
可通过http://ftp.denx.de/pub/u-boot/选择适合的uboot版本进行下载,笔者所使用的为2019.01版本
2.2 源码编译
修改顶层Makefile,改用笔者自己编译的工具链
diff --git a/Makefile b/Makefile
index 6aa08964ff..d799567535 100644
--- a/Makefile
+++ b/Makefile
@@ -244,6 +244,8 @@ ifeq ($(HOSTARCH),$(ARCH))
CROSS_COMPILE ?=
endif
+CROSS_COMPILE = arm-exynos4412-linux-gnueabi-
+
KCONFIG_CONFIG ?= .config
export KCONFIG_CONFIG
选择与itop4412接近的开发板origen作为参考对象
make origen_defconfig
make
编译通过证明环境搭建成功。