RK3568 学习笔记 : 独立修改与编译 u-boot

前言

  • 开发板:【正点原子】ATomPi-CA1 开发板,配置:RK3568,4GB DDRAM + 64GB emmc

  • 开发板资料给了 u-boot 与 Linux kernel 源码,尝试手动编译。

  • 本篇记录 收到编译 RK3568 平台 u-boot 的方法

环境搭建

  • 由于 RK 平台默认给的 SDK 相当的大,所以本次手动编译 u-boot,并尝试配置与修改 u-boot

  • 解压【正点原子】ATomPi-CA1 开发板 u-boot 源码,然后设置一下交叉编译工具链,我这里使用 gcc-arm-8.3-2019.03-x86_64-aarch64-linux-gnu,RK3568 属于 ARM 64位,也就是 aarch64 平台,gcc 交叉编译工具链,可以从 https://developer.arm.com/downloads/-/gnu-a 下载

  • 编译环境: ubuntu 20.04,设置 gcc 交叉编译工具链的环境变量,我这里写了一个简单的 shell 脚本,每次运行一下即可,就不需要更改系统的 环境变量了

  • gcc 交叉编译工具链 环境变量设置脚本:env_aarch64.sh

#!/bin/bash

export PATH=$PATH:/home/zhangsz/tools/gcc-arm-8.3-2019.03-x86_64-aarch64-linux-gnu/bin
  • shell 脚本执行权限: chmod 777 env_aarch64.sh
  • 使能 shell 脚本: source env_aarch64.sh ,有效期:当前 shell 窗口,立即生效,重新开启 新的 shell 窗口或者重启 ubuntu 系统,需要再次设置。也就是临时设置

编译准备 rkbin

  • rk 平台 u-boot 在 官方 u-boot 基础上做了大量的修改,有个编译脚本 make.sh 用于手动编译

  • rk 平台 u-boot 依赖 rk 的bin 仓库,里面是一些 编译好的二进制文件,打包 uboot.img 或者生成 spl 时 会使用到,比如 ddr 的初始化。

  • rkbin 仓库位置, https://github.com/rockchip-linux/rkbin.git,需要下载到 rk u-boot 的同级目录,

zhangsz@zhangsz:~/rk3568/uboot/rk-uboot$ ls
rkbin  u-boot  u-boot-atompi-ca1

编译方法

  • 【正点原子】ATomPi-CA1 开发板 提供了 默认配置文件 configs/atompi-ca1_defconfig

  • 编译命令: ./make.sh atompi-ca1,产物 uboot.img

  • 使用 ./make.sh --spl 生成 rk356x_spl_loader_v1.21.113.bin,用于 loader 下载(SPL)

烧写方法

  • 使用 RK 提供的 RKDevTool.exe 进行烧写,注意烧写时,可以只烧写 Loader 与 uboot

在这里插入图片描述

  • 烧写后,启动信息可以看到, SPL 与 u-boot 的编译信息都更新了,说明 u-boot 编译成功

在这里插入图片描述

修改 u-boot 默认配置

  • 经过 ./make.sh atompi-ca1 编译后(完整编译),可以使用如下的命令进行 配置
# 默认已经执行
make ARCH=arm CROSS_COMPILE=aarch64-linux-gnu- atompi-ca1_defconfig

# 图形界面配置
make ARCH=arm CROSS_COMPILE=aarch64-linux-gnu- menuconfig

# 修改并保存配置

# 保存默认配置
make ARCH=arm CROSS_COMPILE=aarch64-linux-gnu- savedefconfig

# 覆盖默认配置
cp defconfig configs/atompi-ca1_defconfig

# 编译
./make.sh

小结

  • 可以自行尝试修改并配置 rk 平台的 u-boot,比如使用 fastboot,关闭 RK 默认的 rkimg 镜像支持等

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-03 18:50:05       5 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-03 18:50:05       5 阅读
  3. 在Django里面运行非项目文件

    2024-04-03 18:50:05       4 阅读
  4. Python语言-面向对象

    2024-04-03 18:50:05       6 阅读

热门阅读

  1. Hive安装配置

    2024-04-03 18:50:05       20 阅读
  2. spark 编程案例

    2024-04-03 18:50:05       22 阅读
  3. Springboot3 集成knife4j(swagger)

    2024-04-03 18:50:05       25 阅读
  4. Chrome安装Vue插件vue-devtools的步骤

    2024-04-03 18:50:05       22 阅读
  5. 建立mysql测试数据

    2024-04-03 18:50:05       19 阅读
  6. postcss使用简明教程

    2024-04-03 18:50:05       45 阅读
  7. 泰坦尼克号幸存者预测

    2024-04-03 18:50:05       26 阅读
  8. 【Python 笔记1】字典

    2024-04-03 18:50:05       23 阅读
  9. Power Automate里的常用方法

    2024-04-03 18:50:05       20 阅读
  10. Kingbase简单存储过程

    2024-04-03 18:50:05       23 阅读