1.下载platform_source_code文件,修改脚本pack_image.sh里的export RDK_DISK_MEDIUM=“nvme”,然后执行脚本开始编译,查看到编译成功
2.将编译好的镜像中的/out/product文件夹复制到电脑,使用xburn烧录,做好烧录设置
3.将sw8 设置d13 on,d12 off,sw2 on
4.开启烧录,烧录成功后先关掉电源,再设置sw2 off,sw8不动。再开启电源等待启动,查看串口发现有从串口/usb启动的日志,系统宕机
日志.txt (9.6 KB)
5.从ufs启动至原系统,查看到m.2可以识别且有很多个分区

请问这个步骤有没有哪里不对的,是M.2有问题还是编译的镜像有问题
瓜仔
(瓜仔)
2
结论:烧录前的准备本身没问题——SW8(D12=OFF、D13=ON)就是 NVMe 启动位、烧后把 SW2 拨回 OFF 也对,XBurn 里 Storage=Nvme、目录选 product 都符合官方步骤;M.2 也不像坏的(在 UFS 系统里能识别出完整分区)。需要先纠正一处:日志里那句 boot from serial/usb 不是这次 NVMe 启动的现场,它属于 XBurn 的烧录会话。
日志怎么读
- 第 1~115 行是烧录会话:
dfu download fls start → Bl_SerialBoot → 第 42 行 boot from serial/usb, close wdg → Dfu Boot,到 632s 处 system shutdown with 1 / rst call 复位。
- 第 119 行时间戳归零才是下一次上电:第 146 行
Bl_FlashBoot(从 flash 里的 miniboot 启动,不是串口启动),之后 DDRC init Success、main domain started!,到第 232 行 Instance 8 Remote Core ready 就再无输出,全程没有一行 U-Boot/内核打印。即引导链停在 miniboot 之后、U-Boot 之前。所以现在既不能定性 M.2,也不能说"镜像有问题"。
1. nvme 很可能只改在 pack_image.sh
官方要求改在 build_params/ubuntu-24.04_desktop_rdk-s600_beta.conf 和 ..._release.conf;而 pack_image.sh、mk_uboot.sh、mk_kernel.sh 各自 source 同一份 conf。你编译日志里生成了 nvme_disk.img,说明打包这步读到了 nvme,但负责生成 miniboot/bootloader 的脚本是否也读到还没确认。若 conf 里仍是 ufs,同一个 product 目录就会混着 ufs 模式编出的 miniboot 与 nvme 分区镜像,这与"卡在 miniboot 之后"吻合(属推断)。
grep -n RDK_DISK_MEDIUM build_params/ubuntu-24.04_desktop_rdk-s600_*.conf
若是 ufs:两份 conf 都改为 nvme,重编 uboot/spl 更新 miniboot/bootloader 后再整体编译,不要只重跑 pack_image.sh。依据:构建系统开发指南 · eMMC/UFS/NVMe 镜像编译须知(注意末尾"NVMe 启动注意事项":NVMe 模式编出的 miniboot_flash 仅支持 NVMe 启动;烧写工具需 1.1.10 及以上)。
2. 确认 NVMe 上的引导分区真被写进去了
分区表存在 ≠ 分区里有镜像。从 UFS 系统里查:
sudo lsblk -o NAME,SIZE,PARTLABEL /dev/nvme0n1
sudo blkid /dev/nvme0n1p*
sudo head -c 64 /dev/nvme0n1p1 | hexdump -C # 换成 uboot_a 所在分区号
前几十字节全零或分区缺失 → 更像烧录没写全;分区和内容都在、仍停在同一步 → 更像 miniboot/镜像侧配置。同时翻一下 XBurn 的烧录日志,看它记录的存储介质和各分区是否全部写成功。烧录设置可对照下面这张官方截图:
来源:
RDK S600 烧录步骤
另外确认两点:XBurn 版本号是否 ≥1.1.10;第 119 行之后那次上电时,USB 线是否已断开、XBurn 是否已关闭——这决定这段日志能否算独立启动现场。
CanNyCat
(CanNyCat)
3
第1步还要改 build_params 下 S600 的 beta/release 两份配置,把 RDK_DISK_MEDIUM 都设为 nvme,只改 pack_image.sh 不够。改完在源码根目录执行:
./mk_debs.sh hobot-miniboot
./mk_kernel.sh
sudo ./pack_image.sh -l
用这同一批产物烧录 miniboot_flash 和 nvme。附件前面的 serial/usb 是烧录日志,后一次已经是 Bl_FlashBoot;若仍黑屏,请补冷启动的 Acore 串口日志,这份主要是 MCU 输出,还不能据此判 SSD 故障。
https://developer.d-robotics.cc/rdk_s_doc/Advanced_development/rdk_gen
1 个赞
感谢!
把build_params下的4个24.04文件内的RDK_DISK_MEDIUM都改成了nvme后执行上述步骤。然后将编译完的东西烧录后,再拔掉电源进行一次冷启动就可以了,一开始只是拨弄sw2上下电就不行。