跳到主要内容

烧录 BootLoader 到 SPI Nor Flash

SPI Nor Flash 存储 bootloader 文件,像 idbloader.img 和 u-boot.itb。 而 PCIe NVME SSD 存储所有 system img。

介绍

ROCK 5B 上有一个 SPI Flash(SPI 闪存),在 ROCK 5A 上则为与 eMMC 模块复用 B2B 插槽的 SPI Flash 模块,它包含用于备份引导的bootloader,并支持引导其他介质(比如 NVMe、SATA、USB 3),并支持引导其他 SoC 本身不支持启动的介质。

以下介绍两个烧录 SPI 的方式

  1. 初级方法:通过 ROCK 5B 自身烧录 SPI
  2. 高级方法:通过主机和 Maskrom 模式烧录 SPI(目前 ROCK 5A 只能通过这种方式烧录 SPI 模块

初级方法

准备

  • ROCK 5B
  • 良好的电源适配器
  • 用于 ROCK 5B 的 Linux 镜像,不支持 Android 镜像
  • Micro SD 卡 或 eMMC 模块

步骤

  1. 从SD card 或 eMMC 启动 Linux 系统

    详细教程请看入门使用教程中的烧录方式选择

  2. 在 ROCK 5B 上下载必要的文件

    你可以通过 wget 下载到 ROCK 5B ,前提是 ROCK 5B 连接网络。

    • 下载 clear the spi 文件
    wget https://dl.radxa.com/rock5/sw/images/others/zero.img.gz
    • 下载最新版本 spi bootloader 推荐除 Armbian 用户之外的用户使用通用版本,注意这个 img 已经关闭 u-boot 串行控制台
    wget https://dl.radxa.com/rock5/sw/images/loader/rock-5b/release/rock-5b-spi-image-gd1cf491-20240523.img

    如果您想从 M.2 NVME SSD 启动 armbian ,请使用此选项

    wget https://github.com/huazi-yg/rock5b/releases/download/rock5b/rkspi_loader.img

    针对高级用户的 bootloader ,已启动 u-boot 串行控制台。

    wget https://dl.radxa.com/rock5/sw/images/loader/rock-5b/debug/rock-5b-spi-image-gd1cf491-20240523-debug.img
  3. 检查下载文件的完整性:

    md5sum zero.img.gz

    正确显示如下:

    ac581b250fda7a10d07ad11884a16834  zero.img.gz
  4. 解压缩之前下载的 clear the spi 文件

    gzip -d zero.img.gz
    md5sum zero.img

    正确显示如下:

    2c7ab85a893283e98c931e9511add182  zero.img
  5. 检查你想要的 bootloader image

    md5sum rock-5b-spi-image-gd1cf491-20240523.img

    显示正确结果如下:

    cf53d06b3bfaaf51bbb6f25896da4b3a  rock-5b-spi-image-gd1cf491-20240523.img
    fa14c99718f55b66e82aa1661e43c1ec rock-5b-spi-image-gd1cf491-20240523-debug.img
    1b83982a5979008b4407552152732156 rkspi_loader.img
  6. 烧录 SPI Flash

    • 确保 SPI Flash 是可以使用的
    ls /dev/mtdblock*
    # 返回
    /dev/mtdblock0
    • 清理 SPI Flash ,这过程需要5分钟以上。
    sudo dd if=zero.img of=/dev/mtdblock0
    • 检查是否被清除成功
    sudo md5sum /dev/mtdblock0 zero.img
    # 正确返回
    2c7ab85a893283e98c931e9511add182 /dev/mtdblock0
    2c7ab85a893283e98c931e9511add182 zero.img
    • 烧录你下载的 bootloader 到 SPI Flash,例如 rock-5b-spi-image-gd1cf491-20240523.img
    sudo dd if=rock-5b-spi-image-gd1cf491-20240523.img of=/dev/mtdblock0
    sync
    # 检查是否成功烧录
    sudo md5sum /dev/mtdblock0 rock-5b-spi-image-gd1cf491-20240523.img

    返回的结果是相同的才是正确的。如果不是,请重新烧录一遍 bootloader。

  7. 重启生效

现在,您已经完成了烧录支持 NVMe 引导的引导加载程序。

  • 如果您没有在 NVMe SSD 烧录系统,请查看安装镜像到 NVMe 以进行烧录。
  • 如果您已经在 NVMe SSD 烧录了系统,请关闭 ROCK 5B 的电源,取出 µSD 卡或 eMMC 模块并重新通电。现在应该从 NVMe 启动