Can not flash Jetson TX2 NX: Invalid start byte

I’m unable to flash the Jetson TX2 NX despite following several steps on the forum. So far, I’ve:

  • Bought a new hard drive to install Ubuntu 18 with SDK manager, this took some time
  • Bought a new USB cable in case it was the USB cable

This is a vanilla install and I am able to successfully flash my Jetson Xavier NX module so it seems to be that specific card. Any suggestions would be appreciated.

Here’s the error message I’m seeing:

09:28:22 INFO: command finished successfully
09:28:22 DEBUG: Flash Jetson TX2 - flash: using adapter to install NV_L4T_FLASH_TX2_WITH_OS_IMAGE_COMP@JETSON_TX2_TARGETS to /home/nile/nvidia/nvidia_sdk/JetPack_4.6_Linux_JETSON_TX2_TARGETS
09:28:22 INFO: Flash Jetson TX2 - flash: Installing component ‘Flash Jetson TX2’ (NV_L4T_FLASH_TX2_WITH_OS_IMAGE_COMP)
09:28:22 INFO: Flash Jetson TX2 - flash: exec_command: /tmp/tmp_NV_L4T_FLASH_TX2_WITH_OS_IMAGE_COMP.sh
09:28:22 INFO: Flash Jetson TX2 - flash: sudo ./nvautoflash.sh
09:28:22 INFO: Flash Jetson TX2 - flash: *** Checking ONLINE mode … OK.
09:28:22 INFO: Multimedia API - target: Found file /home/nile/Downloads/nvidia/sdkm_downloads/nvidia-l4t-jetson-multimedia-api_32.6.1-20210726122859_arm64.deb with correct checksum, skip downloading.
09:28:22 INFO: NVIDIA Nsight Systems - target: Found file /home/nile/Downloads/nvidia/sdkm_downloads/nsight-systems-cli-2021.2.3_2021.2.3.8-1_arm64.deb with correct checksum, skip downloading.
09:28:22 INFO: Flash Jetson TX2 - flash: *** Checking target board connection … 1 connections found.
09:28:23 INFO: TensorRT on Target - target: Found file /home/nile/Downloads/nvidia/sdkm_downloads/libnvinfer-samples_8.0.1-1+cuda10.2_all.deb with correct checksum, skip downloading.
09:28:23 INFO: Flash Jetson TX2 - flash: *** Reading ECID … FUSELEVEL=fuselevel_production hwchipid=0x18 bootauth=NS
09:28:23 INFO: Flash Jetson TX2 - flash: *** Reading EEPROM … “/home/nile/nvidia/nvidia_sdk/JetPack_4.6_Linux_JETSON_TX2_TARGETS/Linux_for_Tegra/bootloader/tegraflash.py” --chip 0x18 --applet “/home/nile/nvidia/nvidia_sdk/JetPack_4.6_Linux_JETSON_TX2_TARGETS/Linux_for_Tegra/bootloader/mb1_recovery_prod.bin” --skipuid --cmd “dump eeprom boardinfo cvm.bin; dump eeprom baseinfo bbd.bin; reboot recovery”
09:28:23 INFO: CUDA Toolkit for L4T - target: Found file /home/nile/Downloads/nvidia/sdkm_downloads/cuda-repo-l4t-10-2-local_10.2.460-1_arm64.deb with correct checksum, skip downloading.
09:28:23 INFO: Flash Jetson TX2 - flash: [ 0.0247 ] tegrarcm_v2 --listrcm rcm_list.xml --chip 0x18 0 --download rcm /home/nile/nvidia/nvidia_sdk/JetPack_4.6_Linux_JETSON_TX2_TARGETS/Linux_for_Tegra/bootloader/mb1_recovery_prod.bin 0 0
09:28:23 INFO: Flash Jetson TX2 - flash: [ 0.0247 ] tegrarcm_v2 --listrcm rcm_list.xml --chip 0x18 0 --download rcm /home/nile/nvidia/nvidia_sdk/JetPack_4.6_Linux_JETSON_TX2_TARGETS/Linux_for_Tegra/bootloader/mb1_recovery_prod.bin 0 0
09:28:23 INFO: Flash Jetson TX2 - flash: [ 0.0428 ] Assuming zero filled SBK key
09:28:23 INFO: Flash Jetson TX2 - flash: [ 0.0911 ] tegrarcm_v2 --chip 0x18 0 --updatesig rcm_list_signed.xml
09:28:24 INFO: Flash Jetson TX2 - flash: [ 0.0983 ] RCM version 0X180001
09:28:26 INFO: Flash Jetson TX2 - flash: [ 2.4684 ] tegrarcm_v2 --isapplet
09:28:27 INFO: Flash Jetson TX2 - flash: [ 2.8351 ] tegrarcm_v2 --oem platformdetails eeprom cvm /home/nile/nvidia/nvidia_sdk/JetPack_4.6_Linux_JETSON_TX2_TARGETS/Linux_for_Tegra/bootloader/cvm.bin
09:28:27 INFO: Flash Jetson TX2 - flash: [ 2.8371 ] Applet version 01.00.0000
09:28:27 INFO: Flash Jetson TX2 - flash: [ 3.2877 ] tegrarcm_v2 --listrcm rcm_list.xml --chip 0x18 0 --download rcm /home/nile/nvidia/nvidia_sdk/JetPack_4.6_Linux_JETSON_TX2_TARGETS/Linux_for_Tegra/bootloader/mb1_recovery_prod.bin 0 0
09:28:27 INFO: Flash Jetson TX2 - flash: [ 3.2896 ] RCM 0 is saved as rcm_0.rcm
09:28:27 INFO: Flash Jetson TX2 - flash: [ 3.2946 ] Assuming zero filled SBK key
09:28:27 INFO: Flash Jetson TX2 - flash: [ 3.3132 ] tegrarcm_v2 --chip 0x18 0 --updatesig rcm_list_signed.xml
09:28:32 INFO: Flash Jetson TX2 - flash: [ 3.3192 ] tegrarcm_v2 --chip 0x18 0 --rcm rcm_list_signed.xml
09:28:34 INFO: Flash Jetson TX2 - flash: [ 9.8002 ] tegrarcm_v2 --isapplet
09:28:34 INFO: Flash Jetson TX2 - flash: [ 10.5424 ] tegrarcm_v2 --oem platformdetails eeprom cvb /home/nile/nvidia/nvidia_sdk/JetPack_4.6_Linux_JETSON_TX2_TARGETS/Linux_for_Tegra/bootloader/bbd.bin
09:28:34 INFO: Flash Jetson TX2 - flash: [ 10.5441 ] Applet version 01.00.0000
09:28:35 INFO: Flash Jetson TX2 - flash: UnicodeDecodeError: ‘utf-8’ codec can’t decode byte 0xa4 in position 16: invalid start byte
09:28:35 INFO: Flash Jetson TX2 - flash: [ Component Install Finished with Error ]
09:28:35 ERROR: Flash Jetson TX2 - flash: command terminated with error
09:28:35 SUMMARY: DateTime Target Setup - target: Depends on failed component

1 Like

Please export the full logs from your sdkm.

Thanks, here are the full exported logs

SDKM_logs_JetPack_4.6_(rev.1)_Linux_for_Jetson_TX2_NX_2021-09-19_09-28-14.zip (142.1 KB)

One question: What do you see from “echo $LANG” when run from the host PC?

I see:

en_US.UTF-8

The above says the issue is not related to character set (it was only a slim chance this would help anyway).

Bumping this thread, what are the recommended next steps? I’m following all the steps in the tutorial, using host Ubutnu 18 with the SDK manager, have LANG as en_US.UTF-8, and am able to flash Xavier NX module but not the TX2 NX module.

Any help appreciated

1 Like

I am also experiencing this issue

Me too, I have Jetson TX2 NX SOM modules with Jetson Mate from Seed studio

In cases where you have a different carrier board you’ll need to start a new thread. Each carrier board must be flashed by the software designed for that board or boot and/or other parts will fail. The manufacturer of that carrier board will be the one who provides the updated flash software.

Note: If you happen to have a dev kit carrier board, then you can (at least as a test) see if it allows flash when mounted to the dev kit carrier board.

Please check if you are using python2 as default or you are using python3.

If you are using python3, please move to python2 first.

@linuxdev , could you please clarify on why each carrier board must be flashed by the software designed for that board ? I checked the Jetson Mate schematics (Seed Studio) and looks like the carrier got no eeprom or any self identifying mechanism, it just got 4x USB ports, 4x debug uarts, an ethernet switch and HDMI.

Sometimes pinmux change would affect the flash result too. That is why better using aligned software BSP to flash.

Things are not just the number of the I/O.

Same as what @WayneWWW mentions…each board can have different device tree requirements. A board cannot self-report non-plug-n-play features, and each flash includes the board information in it, which will differ between board types. In terms of dev kit boards which use QSPI memory (such as Nano or NX) there is actually memory on the module which is separate from eMMC, and this complicates it even more…the software being booted into has expectations as to what is set up, and if the scheme of that setup is wrong, boot will fail (QSPI setup is different than pure eMMC setup, and even differs with itself over different releases).

As an example, if a pin could be used as GPIO or as some other special function, then device tree must change. There is no way to self-detect which way to use this. If two lanes of some sort of data can function as either pin being TX or RX, then the tree would be required to know which way this is connected since it has no auto detect ability.