升级固件
前言
Sophon-BM1684X-LD800 目前提供三种更新方式:SD 卡刷机、文件替换、在线刷机。以下内容将介绍两种软件更新方式的操作,建议使用 SD 卡刷机和在线刷机方式:
| 刷机方式 | 刷机成功依赖 | 烧录内容 | 备注 |
|---|---|---|---|
| SD 卡刷机 | SD 卡为 MBR+FAT32 格式 | 设备 flash 和 emmc | eMMC 所有数据丢失 |
| 文件替换 | 设备 flash 和 emmc 正常,软件系统正常 | 被替换的部分 | 有版本不匹配、文件损坏等风险 |
| 在线刷机 | 设备 flash 和 emmc 正常,软件系统正常,刷机前后分区表不能发生改动 | 设备 flash 和 emmc 中除分区表和 data 分区外的部分 | 需要设备能通过串口或网络方式进入终端,且刷机前后分区表不能发生改动 |
注意
- SD 卡刷机会清空 eMMC,包括所有用户数据,需谨慎操作或提前备份数据
- SD 卡刷机后,需拔掉 SD 卡,重新上电
1 升级 SOC 固件
在 Neardi 官网下载最新刷机包
1.1 SD 卡刷机
本文介绍了如何将主机上的固件烧录到 Sophon-BM1684X-LD800 开发板的存储器中��。
-
请将 SD 卡格式化为 MBR+FAT32 格式
步骤1 下载压缩包 sdcard_imgs.zip,解压后文件类似下图,按照 SD 卡大小和刷机包大小选择合适的 img.gz 文件
比如 4GB 的 SD 卡,则选择其中 sdcard.3G.img.gz 包
步骤2 使用 balenaEtcher 将选择的 img.gz 文件写入 SD 卡
步骤3 将卡刷包解压后拷贝到 SD 卡中即可
-
升级固件
请将下载的固件拷贝到 SD 卡根目录。确保 SD 卡根目录可以看到 BOOT 等文件:

请将 Sophon-BM1684X-LD800 断电,插入 SD 卡,并连接串口终端,然后给设备上电。您将看到 Sophon-BM1684X-LD800 自动进入刷机流程:

刷机通常耗时约 3 分钟,结束后,当绿色灯匀速闪烁时,即刷机完成:

下电,拔掉 SD 卡,再次上电,执行
bm_version可查看版本信息
1.2 文件替换
文件替换均在 Ubuntu 下执行,您可以选择使用串口或 SSH 终端。以下分别介绍如何替换各个组件。
-
替换 bootloader:请将您要更新的 spi_flash.bin 文件上传到设备,然后执行
sudo flash_update -i ./spi_flash.bin -b 0x6000000 -f 0x0,成功后可以看到如下 log:
-
替换 kernel:将您要更新的 emmcboot.itb 放入/boot 中替换同名文件,再 sudo reboot 即可。
提示
请注意:做完上述文件操作后不要马上暴力断电,否则可能会有文件损坏,请执行 sync、sudo reboot、sudo poweroff 等动作。
2 升级 MCU 固件
替换 MCU 固件:核心板上有一颗 MCU 负责 BM1684X 的上电时序等重要工作,它的固件��只能通过下面的命令升级,不能通过 SD 卡升级。
这颗 MCU 的固件如果烧写错误,会造成 BM1684X 无法上电,此时就只能通过专用的烧写器进行修复了,因此请谨慎操作,通常也并不需要对它进行升级。命令:sudo mcu-util-aarch64 upgrade 1 0x17 mcu.bin。
升级完成后请执行 sudo poweroff,待关机动作完成后(串口会打印 NOTICE: CPU0 bm_system_off,并且风扇声音会突然变大)对其进行断电后重新上电。