1、下载 u-boot-2018-11 源码,并解压.
2、因为我要编译 S5PV210芯片, CROTEX-A8架构
centos系统,Linux环境,因此选择下面工具链(下载):

gcc-arm-8.2-2019.01-x86_64-arm-linux-gnueabi.tar.xz

解压指令,分两步执行:

xz -d gcc-arm-8.2-2019.01-x86_64-arm-linux-gnueabi.tar.xz
tar -xvf gcc-arm-8.2-2019.01-x86_64-arm-linux-gnueabi.tar
3、给 工具链 添加 到 Linux 的环境变量中

①先用指令 pwd 拿到 工具链 的解压路径 下的 bin 的路径,我得到的路径:

/home/suozhang/linux/gcc-arm-8.2-2019.01-x86_64-arm-linux-gnueabi/bin

②用 指令 vi ~/.bashrc , 用到了 ~ 即通配符,表示当前用户$HOME 目录下的 bashrc 文件,即环境变量文件

export PATH=$PATH:/home/suozhang/linux/gcc-arm-8.2-2019.01-x86_64-arm-linux-gnueabi/bin

ESC 退出编辑模式, :wq 保存退出即可。

③用指令 source ~/.bashrc 立即生效 这个环境变量文件

④退出当前 bin 目录, 使用 指令 arm-linux-gnueabi-gcc -v 进行查看版本号 测试 是否可用

4、进入到 uboot 根目录下, 修改Makefile,添加编译目标的架构以及工具链名称

(如果第三步 没有添加 编译工具链的 路径到环境变量中,那么在这里 添加路径 也是可以的)

vi Makefile
添加编译目标架构 & 添加工具链名称
ARCH = arm
CROSS_COMPILE = arm-linux-gnueabi-
5、使用 指令 :make s5p_goni_defconfig ,发现 以下错误:
make s5p_goni_defconfig
1、/bin/sh: bison: command not found
解决方法:
yum install bison 或者 sudo apt-get install bison
2、/bin/sh: flex: command not found
解决方法:
yum install flex / sudo apt-get install flex
3、make s5p_goni_defconfig,再次编译,成功
[root@VM_0_3_centos u-boot-2018.11]# make s5p_goni_defconfig
  HOSTCC  scripts/basic/fixdep
  HOSTCC  scripts/kconfig/conf.o
  YACC    scripts/kconfig/zconf.tab.c
  LEX     scripts/kconfig/zconf.lex.c
  HOSTCC  scripts/kconfig/zconf.tab.o
  HOSTLD  scripts/kconfig/conf
#
# configuration written to .config
#

总结:
    1、u-boot-2018.11/configs/s5p_goni_defconfig 是开发板 goni 的默认配置文件
    2、开发板 goni 相关文件,路径(u-boot-2018.11/board/samsung/goni)
    3、 make s5p_goni_defconfig,这一步操作是根据 u-boot-2018.11/configs/s5p_goni_defconfig 文件 和
      u-boot-2018.11/Kconfig 文件比对,产生文件.config
    4、.config是uboot的编译配置文件,里面有uboot运行的芯片架构,开发板名称,芯片名称,各种功能裁剪等等
    5、2019年2月21日19:05:12

6、调用指令 make 进行编译
[root@VM_0_3_centos u-boot-2018.11]# make
scripts/kconfig/conf  --syncconfig Kconfig
  CHK     include/config.h
  UPD     include/config.h
  CFG     u-boot.cfg
  # 中间忽略N行
  OBJCOPY u-boot.srec
  OBJCOPY u-boot-nodtb.bin
  DTC     arch/arm/dts/s5pc1xx-goni.dtb
make[2]: `arch/arm/dts/s5pc1xx-goni.dtb' is up to date.
  SHIPPED dts/dt.dtb
  FDTGREP dts/dt-spl.dtb
  CAT     u-boot-dtb.bin
  COPY    u-boot.bin
  SYM     u-boot.sym
  COPY    u-boot.dtb
  CHK     include/config.h
  CFG     u-boot.cfg
  CFGCHK  u-boot.cfg
[root@VM_0_3_centos u-boot-2018.11]#

参考:https://blog.csdn.net/qq_16777851/article/details/81543373

Logo

更多推荐