I am using JetPack 5.1.1, flashing to Xavier NX on a custom carrier board.
When I flash the Jetson with flash.sh, it works fine.
Now, I need to generate SD card images for customers’ boards which have SD-card Jetson modules.
I modified the file jetson-disk-image-creator to accept the text of my custom board name, and set the path as mmcblk1p1. Our carrier board uses the mmc address lower than the SD slot on Jetson, so our carrier board’s SD slot is mmcblk0, and Jetson SD slot is mmcblk1p1.
function check_device()
{
case "${board}" in
jetson-xavier-nx-devkit)
case "${rootfs_dev}" in
"SD" | "sd")
rootfs_dev="mmcblk0p1"
;;
"USB" | "usb")
rootfs_dev="sda1"
;;
*)
usage "Incorrect root filesystem device - Supported devices - SD, USB"
;;
esac
;;
<custom_carrier_boardname>+p3668-0000-qspi-sd)
case "${rootfs_dev}" in
"SD" | "sd")
rootfs_dev="mmcblk1p1" # mmcblk0p1 on p3509, mmcblk1p1 on our Carrier board
;;
"USB" | "usb")
rootfs_dev="sda1"
;;
*)
usage "Incorrect root filesystem device - Supported devices - SD, USB"
;;
esac
;;
Then I run
sudo ./jetson-disk-image-creator.sh -o sdImage_xxx.img -b <custom_carrier_boardname>+p3668-0000-qspi-sd -d SD
Then I use the Disks program on Ubuntu or Balena Etcher on Windows to flash an SD card.
Once flashed, I put the SD card into Jetson, Jetson into my carrier board, then I get this UART boot log:
balenaFlashedmmcblk1p1_log.log (34.3 KB)
There is nothing in the carrier board’s uSD slot during boot.
It seems to find the SD card, but not be able to find or open partitions on it.
So why does the boot work if I use flash.sh, but not if I use the image I generate and then flash to the SD card?
It seems to find the SD card but not all of the partitions it needs, see file line 432, 436, 448, etc…