如何构建u-boot包括环境配置

起因

起初,某国产矿渣盒子出于 “安全考虑” 对u-boot进行了魔改,导致无法直接使用原有的u-boot环境进行刷机。对u-boot的输出进行检查后我决定自己编译一个u-boot。

准备工作

使用 deepin 20.9 社区版进行环境配置。

下载源码 https://github.com/u-boot/u-boot

sudo apt-get update
sudo apt-get install gcc bison flex
# 如果你是使用32位arm的话需要安装 gcc-arm-linux-gnueabihf
sudo apt-get install gcc-arm-linux-gnueabihf
# 如果你是使用64位arm的话需要安装 gcc-aarch64-linux-gnu
sudo apt-get install gcc-aarch64-linux-gnu

开始

注意:

ARCH=arm Arm架构
CROSS_COMPILE=xxx-xxxx-xxx- 是设置使用的交叉编译器
xxx_xxx_defconfig 是设备配置文件在官方的源码库中有:
https://github.com/u-boot/u-boot/tree/master/configs

使用了不同的交叉编译器和设备配置文件来编译32位和64位的u-boot

32位的u-boot

make distclean
make ARCH=arm CORSS_COMPILE=arm-linux-gnueabihf- xxx_xxx_defconfig
make

64位的u-boot

make distclean
make ARCH=arm CORSS_COMPILE=gcc-aarch64-linux-gnu- xxx_xxx_defconfig
make

生成img

语法格式:

mkimage 【参数】 文件名

参数说明:

参数名 解释
-A 指定CPU的体系结构
体系结构 alpha、arm、x86、ia64、mip、mips64、ppc、s390、sh、sparc、sparc64、m68k
-O 指定操作系统类型
系统类型 openbsd、netbsd、freebsd、4_4bsd、linux、svr4、esix、solaris、irix、sco、dell、ncr、lynxos、vxworks、psos、qnx、u-boot、rtems、artos
-T 指定映象类型
映象类型 standalone、kernel、ramdisk、multi、firmware、filesystem
-C 指定映象压缩方式
压缩方式 none 不压缩 gzip 用gzip的压缩方式 bzip2 用bzip2的压缩方式
-a 指定映象在内存中的加载地址,这个参数所指定的地址值来下载
-e 指定映象运行的入口点地址,这个地址就是-a参数指定的值加上0x40
-n 指定映象名
-d 指定制作映象的源文件

案例:

.\tools\mkimage -A arm -O linux -T firmware -C none -a 0x200000 -e 0x200000 -n "U-Boot Image" -d u-boot.bin u-boot.img

posted @ 2024-02-23 10:02  乌清远wqy  阅读(102)  评论(0)    收藏  举报