执行make ARCH=arm rockchip_defconfig 后
通过 make menuconfig 修改内配置后
执行make ARCH=arm rk3288-firefly-reload.img会有如下提示
scripts/kconfig/conf --silentoldconfig Kconfig
*
* Restart config...
*
*
* General setup
*
Cross-compiler tool prefix (CROSS_COMPILE) []
Compile also drivers which will not load (COMPILE_TEST) [N/y/?] n
Local version - append to kernel release (LOCALVERSION) []
Automatically append version information to the version string (LOCALVERSION_AUTO) [N/y/?] n
Kernel compression mode
> 1. Gzip (KERNEL_GZIP) (NEW)
2. LZMA (KERNEL_LZMA) (NEW)
3. XZ (KERNEL_XZ) (NEW)
4. LZO (KERNEL_LZO) (NEW)
5. LZ4 (KERNEL_LZ4) (NEW)
通过对比kernel目录下.config和.config.old发现差别巨大,不仅仅是刚刚make menuconfig 修改项发生了改变
问题出在 ARCH=arm这个选项
make ARCH=arm rockchip_defconfig
make menuconfig
make menuconfig时没有加ARCH=arm选项
有两个解决方案
1.执行make ARCH=arm menuconfig配置内核
2.修改kernel目录下Makefile
diff --git a/Makefile b/Makefile
index ce42b27ec387..c376c5a1f146 100644
--- a/Makefile
+++ b/Makefile
@@ -254,7 +254,7 @@ SUBARCH := $(shell uname -m | sed -e s/i.86/x86/ -e s/x86_64/x86/ \
# "make" in the configured kernel build directory always uses that.
# Default value for CROSS_COMPILE is not to prefix executables
# Note: Some architectures assign CROSS_COMPILE in their arch/*/Makefile
-ARCH ?= arm64
+ARCH ?= arm
ARCH ?= $(SUBARCH)
ifeq ($(ARCH),arm64)
ifneq ($(wildcard $(srctree)/../prebuilts/gcc/linux-x86/aarch64/gcc-linaro-6.3.1-2017.05-x86_64_aarch64-linux-gnu),)