编译U-Boot

这篇文档会介绍如何编译U-Boot源码。

我们推荐使用Fenix来编译U-Boot,只需要简单几条命令即可完成编译。如果还没有搭建开发环境,请参考文档编译Ubuntu/Debian固件搭建开发环境。

设置环境

选择需要编译的板子型号,如:VIM3,U-Boot版本,Linux版本,系统版本等等。

1
$ source setenv.sh
Note

目前每个板子都支持两个版本的U-Boot。如下:

  • 芯片原厂自带的原始U-Boot,版本为2015.01,该版本功能全面,但是版本比较旧
  • 主线版本U-Boot,版本会一直随主线更新,该版本功能相对不是很完善,但是版本跟随主线

根据实际需求选择不同的U-Boot版本。

编译

编译U-Boot二进制文件

简单一条命令即可完成编译。

1
$ make uboot

编译后的U-Boot在目录build/u-boot/fip/_tmp下,其中我们需要的U-Boot文件为u-boot.bin.sd.bin u-boot.bin,其中:

  • u-boot.bin.sd.bin - 用于烧写到SD卡
  • u-boot.bin - 用于烧写到eMMC

编译U-Boot Debian包

还可以选择编译成U-Boot Debian包,用于在Ubuntu系统下直接安装来更新U-Boot。

1
$ make uboot-deb

编译后的Debian包在目录build/images/debs/{VERSION}/{BOARD}

VERSION :表示Fenix版本号,如1.0.7
BOARD :表示对应的板子,如VIM3

所以目录可能为build/images/debs/1.0.7/VIM3,对应的U-Boot Debian包为linux-u-boot-xxx-xxx_xxx-xxx_arm64.deb

  • 芯片原厂对应U-Boot Debian包为:linux-u-boot-vim3-vendor_1.0.7-2015.01_arm64.deb
  • 主线版本U-Boot Debian包为:linux-u-boot-vim3-mainline_1.0.7-v2021.04_arm64.deb

参考

更新U-Boot