OK6410A 开发板 (三) 7 u-boot-2021.01 boot 解析 u-boot 与linux配置部分

U-boot配置

make O=output ok6410a_mini_defconfig
// 在配置的时候 不需要指定 ARCH(因为defconfig有写) 与 CROSS_COMPILE(因为现在并不需要,build的时候才需要)
// 如果写了CROSS_COMPILE,会去检查CROSS_COMPILE , 然后build的时候还是需要写
// 第一次用arm-gcc 的时刻, 编译时 的 CC      lib/asm-offsets.s
make[1]: Entering directory '/home/suws/ok6410/system-new/u-boot/output'
  HOSTCC  scripts/basic/fixdep
  		cc -Wp,-MD,scripts/basic/.fixdep.d -Iscripts/basic -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -std=gnu11 -o scripts/basic/fixdep ../scripts/basic/fixdep.c
  GEN     ./Makefile
		rm -f .tmp_quiet_recordmcount
		ln -fsn .. source
		/bin/bash ../scripts/mkmakefile \
		    .. . 2021 01
		  GEN     ./Makefile
  HOSTCC  scripts/kconfig/conf.o
  		cc -Wp,-MD,scripts/kconfig/.conf.o.d -Iscripts/kconfig -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -std=gnu11 -c -o scripts/kconfig/conf.o ../scripts/kconfig/conf.c
  YACC    scripts/kconfig/zconf.tab.c
  		bison -oscripts/kconfig/zconf.tab.c -t -l ../scripts/kconfig/zconf.y
  LEX     scripts/kconfig/zconf.lex.c
  		flex -oscripts/kconfig/zconf.lex.c -L ../scripts/kconfig/zconf.l
  HOSTCC  scripts/kconfig/zconf.tab.o
  		cc -Wp,-MD,scripts/kconfig/.zconf.tab.o.d -Iscripts/kconfig -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -std=gnu11  -I../scripts/kconfig -c -o scripts/kconfig/zconf.tab.o scripts/kconfig/zconf.tab.c
  HOSTLD  scripts/kconfig/conf
  		cc   -o scripts/kconfig/conf scripts/kconfig/conf.o scripts/kconfig/zconf.tab.o

		scripts/kconfig/conf  --defconfig=arch/../configs/ok6410a_mini_defconfig Kconfig
#
# configuration written to .config
#
make[1]: Leaving directory '/home/suws/ok6410/system-new/u-boot/output'

linux配置

  HOSTCC  scripts/basic/fixdep
  		gcc -Wp,-MMD,scripts/basic/.fixdep.d -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer -std=gnu89         -o scripts/basic/fixdep scripts/basic/fixdep.c 
  HOSTCC  scripts/kconfig/conf.o
  		gcc -Wp,-MMD,scripts/kconfig/.conf.o.d -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer -std=gnu89       -c -o scripts/kconfig/conf.o scripts/kconfig/conf.c
  HOSTCC  scripts/kconfig/confdata.o
  		gcc -Wp,-MMD,scripts/kconfig/.confdata.o.d -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer -std=gnu89       -c -o scripts/kconfig/confdata.o scripts/kconfig/confdata.c
  HOSTCC  scripts/kconfig/expr.o
  		gcc -Wp,-MMD,scripts/kconfig/.expr.o.d -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer -std=gnu89       -c -o scripts/kconfig/expr.o scripts/kconfig/expr.c
  LEX     scripts/kconfig/lexer.lex.c
  		flex -oscripts/kconfig/lexer.lex.c -L scripts/kconfig/lexer.l
  YACC    scripts/kconfig/parser.tab.[ch]
  		bison -o scripts/kconfig/parser.tab.c --defines=scripts/kconfig/parser.tab.h -t -l scripts/kconfig/parser.y
  HOSTCC  scripts/kconfig/lexer.lex.o
  	gcc -Wp,-MMD,scripts/kconfig/.lexer.lex.o.d -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer -std=gnu89      -I ./scripts/kconfig -c -o scripts/kconfig/lexer.lex.o scripts/kconfig/lexer.lex.c
  HOSTCC  scripts/kconfig/parser.tab.o
  		gcc -Wp,-MMD,scripts/kconfig/.parser.tab.o.d -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer -std=gnu89      -I ./scripts/kconfig -c -o scripts/kconfig/parser.tab.o scripts/kconfig/parser.tab.c
  HOSTCC  scripts/kconfig/preprocess.o
  		gcc -Wp,-MMD,scripts/kconfig/.preprocess.o.d -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer -std=gnu89       -c -o scripts/kconfig/preprocess.o scripts/kconfig/preprocess.c
  HOSTCC  scripts/kconfig/symbol.o
  		gcc -Wp,-MMD,scripts/kconfig/.symbol.o.d -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer -std=gnu89       -c -o scripts/kconfig/symbol.o scripts/kconfig/symbol.c
  HOSTCC  scripts/kconfig/util.o
  		gcc -Wp,-MMD,scripts/kconfig/.util.o.d -Wall -Wmissing-prototypes -Wstrict-prototypes -O2 -fomit-frame-pointer -std=gnu89       -c -o scripts/kconfig/util.o scripts/kconfig/util.c
  HOSTLD  scripts/kconfig/conf
  		gcc   -o scripts/kconfig/conf scripts/kconfig/conf.o scripts/kconfig/confdata.o scripts/kconfig/expr.o scripts/kconfig/lexer.lex.o scripts/kconfig/parser.tab.o scripts/kconfig/preprocess.o scripts/kconfig/symbol.o scripts/kconfig/util.o
		
		scripts/kconfig/conf  --defconfig=arch/arm/configs/ok6410A_sdboot_mini_defconfig Kconfig
#
# configuration written to .config
#

u-boot 和 linux 配置 的区别

  • 配置需要填充的环境变量
u-boot 配置不需要填充 ARCH 与 CROSS_COMPILE 
u-boot 编译需要配置  CROSS_COMPILE
linux 配置需要填充 ARCH(这样才能找到defconfig) 与 CROSS_COMPILE (填充后会改变生成的.config,.config中会填充CROSS_COMPILE 的信息CONFIG_CC_VERSION_TEXT)
linux 编译也需要配置 ARCH 与 CROSS_COMPILE 
  • 配置运行过程
相同点:
	都是生成 scripts/kconfig/conf
	并用命令 scripts/kconfig/conf  --defconfig=/path_to_defconfig/ok6410a_mini_defconfig Kconfig 生成 .config
不同点
	u-boot 的 scripts/kconfig/conf 比较简单 
		cc   -o scripts/kconfig/conf scripts/kconfig/conf.o scripts/kconfig/zconf.tab.o
	linux的 scripts/kconfig/conf 比较复杂
  		gcc   -o scripts/kconfig/conf scripts/kconfig/conf.o scripts/kconfig/confdata.o scripts/kconfig/expr.o scripts/kconfig/lexer.lex.o scripts/kconfig/parser.tab.o scripts/kconfig/preprocess.o scripts/kconfig/symbol.o scripts/kconfig/util.o

猜你喜欢

转载自blog.csdn.net/u011011827/article/details/115064917