Fail to flash jetson orin agx (36.3) timeout in USB

Hello,

I’ve been trying to encrypt the rootfs on my nvme using the initrd flash, the generating of the images for the ssd and the eMMC are good, I don’t have a problem also the jetson is always in force recovery mode after each generating of the images, however when I try to flash I get this error here is a file that shows the whole flow:
flash_nmve_fail_usb.txt (226.3 KB)

I’ve searched many other solutions but still can’t find a solution. my ubuntu is 22.04, Im also not running any vms.

I’ve also disabled the autosuspend on host PC with below command:

sudo -s
echo -1 > /sys/module/usbcore/parameters/autosuspend

Thank you in advence.

Hi elhamriothman,

Are you using the devkit or custom board for AGX Orin?

Have you also tried with another USB port of your host or USB cable?

Yes I’ve tried to use another usb port on my host still nothing, I have the jetson EvalKit. it’s a 64 gb.

I was watching the log again I don’t understand why I got this error:


Why is the external storage is waiting for the sdmmc cfg file? I think this is the problem, but I don’t know how to fix I even tried to change the 3737-0000-p3701-0000.conf.common file:

image

with still no success, im out of ideas.

There’s internal eMMC in AGX Orin so it also needs the partition layout for it.

Are you using the following 3 commands to flash your baord?

1. create internal
$ sudo ./tools/kernel_flash/l4t_initrd_flash.sh --network usb0 \
        --showlogs -p "-c bootloader/generic/cfg/flash_t234_qspi.xml" \
        --no-flash jetson-agx-orin-devkit internal
2. create external
$ sudo ROOTFS_ENC=1 ./tools/kernel_flash/l4t_initrd_flash.sh --network usb0 \
        --showlogs  --no-flash --external-device nvme0n1p1 -S 16GiB \
        -c ./tools/kernel_flash/flash_l4t_t234_nvme_rootfs_enc.xml \
        --external-only --append -i ./disk_enc.key jetson-agx-orin-devkit external
3. flash both
$ sudo ./tools/kernel_flash/l4t_initrd_flash.sh --network usb0 --showlogs --flash-only

It seems you failed at 2nd command to create external image.
Do you have <Linux_for_Tegra>/bootloader/generic/cfg/flash_l4t_t234_qspi_sdmmc_enc_rfs.xml on your host?

I’ve checked my BSP package, it should be flash_t234_qspi_sdmmc_enc_rfs.xml rather than flash_l4t_t234_qspi_sdmmc_enc_rfs.xml. Do you modify its name?

Im gonna try to do it again, just a question does the kernel flash uses the flash.sh or both are totatlly different things?

If you are asking about initrd flash, it is used for external device, but it would also call flash.sh for internal device and the -p is used to pass the parameters.
If you are asking about “flashing the kernel”, please just refer to the flash log for details.

Update I now generate both images correctly but the issue is still persistent when I try to flash both images:
flash_fail_update.txt (141.0 KB)

Update again I got it to work, the cfg file was indeed the issue, but the problem is the timeout usb, is completly random you cannot predicte when or when not it will work, I reforced the recovery mode and used the flash commend and magicaly it worked like charm. Thank you for the help tho’ we can close this ticket.

Also one last question when trying to generate the eks image I saw there is an oem_k1.key in the other versions of the example.sh to generate the eks image the value was:

In the 36.3 version the new value of the oem key is null (“000…”) do I need to use the older value of the oem?

Cause the flash is completed with success but I get this while booting:

Update: changing the oem value to 0000 did make it work, but for the nvme I had to change the value of the oem to the value showed before, I don’t understand why but I think it has to do with the flashing.sh we are using, seems like the initrd flash need a value for the oem, but the normal flash.sh don’t.

The keys in example.sh are the test/sample keys.
You can use your own key for disk-encryption, but please remember to use the same key for the same board.

I know that I just want to know when to give the oem_k1.key a value, sometimes it’s null (“00000…”) and sometime it has this value “2d4a614e…” like shown here:

Cause Ithink that boot error I showed you has to do with the default value of the OEM_K1 fuse key I have to keep playing with the values( 000… and the 2d4a…).

Where do you get the key of “2d4a614…”?

I’ve checked our code base and it seems to be all zeros “000000…”

I found it on the 36.2 version:

It will look like something like this:

R36.2 is included in JP6.0DP, which is developer preview release.

Please use JP6.0GA instead.

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.