About Update L4T 27.1 -> 28.1 error

Hi I’m Jang

I would appreciate your understanding that English is not my first language.

I have TX2 kit, L4T version is 27.1

In order to update the L4T version from 27.1 to 28.1, I have seen and followed the following manuals.

1. Download the L4T R28.1 for TX2 from link below.

https://www.dropbox.com/sh/8p3kgws42csrulu/AADYMwGXYE2_qKjtPLVDawgta?dl=0

and follow below steps to flash the R28.1 image the TX2.

Set the TX2 to recovery mode

sudo tar xpf Tegra186_Linux_R28.1.0_aarch64.tbz2

cd Linux_for_Tegra/rootfs/

sudo tar xpf ../../Tegra_Linux_Sample-Root-Filesystem_R28.1.0_aarch64.tbz2

cd ..

sudo ./apply_binaries.sh

Copy and replace the tegra186-quill-p3310-1000-c03-00-base.dtb under Linux_for_Tegra/kernel/dtb

sudo ./flash.sh jetson-tx2 mmcblk0p1

However, there was a problem that ‘recovery mode’ was not recognized in ‘vm ubuntu’, but it was solved and now I did the last line ‘sudo ./flash.sh jetson-tx2 mmcblk0p1’

The execution result is very long I will give a brief introduction to help those who see this article understand.

./tegraflash.py --chip 0x18 --applet "/home/jc/Downloads/TX2-R28.1/Linux_for_Tegra/bootloader/mb1_recovery_prod.bin" --cmd "dump eeprom boardinfo cvm.bin" --skipuid 
Welcome to Tegra Flash
version 1.0.0
Type ? or help for help and q or quit to exit
Use ! to execute system commands
 
[   0.0029 ] Generating RCM messages
[   0.0046 ] tegrarcm_v2 --listrcm rcm_list.xml --chip 0x18 --download rcm /home/jc/Downloads/TX2-R28.1/Linux_for_Tegra/bootloader/mb1_recovery_prod.bin 0 0
[   0.0057 ] RCM 0 is saved as rcm_0.rcm
[   0.0067 ] RCM 1 is saved as rcm_1.rcm
[   0.0067 ] List of rcm files are saved in rcm_list.xml
[   0.0067 ] 
[   0.0067 ] Signing RCM messages
[   0.0078 ] tegrasign_v2 --key None --list rcm_list.xml --pubkeyhash pub_key.key
[   0.0083 ] Assuming zero filled SBK key
[   0.0120 ] 
[   0.0120 ] Copying signature to RCM mesages
[   0.0126 ] tegrarcm_v2 --chip 0x18 --updatesig rcm_list_signed.xml
[   0.0134 ] 
[   0.0135 ] Boot Rom communication
[   0.0139 ] tegrarcm_v2 --chip 0x18 --rcm rcm_list_signed.xml --skipuid
[   0.0143 ] RCM version 0X180001
[   0.0188 ] Boot Rom communication completed
[   1.0542 ] 
[   1.0548 ] tegrarcm_v2 --isapplet
[   1.0553 ] USB communication failed.Check if device is in recovery
[   1.8666 ] 
[   1.8699 ] tegradevflash_v2 --iscpubl
[   1.8703 ] CPU Bootloader is not running on device.
[   1.9802 ] 
[   3.0918 ] Retrieving EEPROM data
[   3.0922 ] tegrarcm_v2 --oem platformdetails eeprom cvm /home/jc/Downloads/TX2-R28.1/Linux_for_Tegra/bootloader/cvm.bin
[   3.0949 ] Applet version 01.00.0000
[   3.2059 ] Saved platform info in /home/jc/Downloads/TX2-R28.1/Linux_for_Tegra/bootloader/cvm.bin
[   3.4138 ] 
Board ID(3310) version(B02) 
copying bctfile(/home/jc/Downloads/TX2-R28.1/Linux_for_Tegra/bootloader/t186ref/BCT/P3310_A00_8GB_Samsung_8GB_lpddr4_204Mhz_A02_l4t.cfg)... done.
copying misc_config(/home/jc/Downloads/TX2-R28.1/Linux_for_Tegra/bootloader/t186ref/BCT/tegra186-mb1-bct-misc-si-l4t.cfg)... done.
copying pinmux_config(/home/jc/Downloads/TX2-R28.1/Linux_for_Tegra/bootloader/t186ref/BCT/tegra186-mb1-bct-pinmux-quill-p3310-1000-c03.cfg)... done.
copying pmic_config(/home/jc/Downloads/TX2-R28.1/Linux_for_Tegra/bootloader/t186ref/BCT/tegra186-mb1-bct-pmic-quill-p3310-1000-c04.cfg)... done.
copying pmc_config(/home/jc/Downloads/TX2-R28.1/Linux_for_Tegra/bootloader/t186ref/BCT/tegra186-mb1-bct-pad-quill-p3310-1000-c03.cfg)... done.
copying prod_config(/home/jc/Downloads/TX2-R28.1/Linux_for_Tegra/bootloader/t186ref/BCT/tegra186-mb1-bct-prod-quill-p3310-1000-c03.cfg)... done.
copying scr_config(/home/jc/Downloads/TX2-R28.1/Linux_for_Tegra/bootloader/t186ref/BCT/minimal_scr.cfg)... done.
copying scr_cold_boot_config(/home/jc/Downloads/TX2-R28.1/Linux_for_Tegra/bootloader/t186ref/BCT/mobile_scr.cfg)... done.
copying bootrom_config(/home/jc/Downloads/TX2-R28.1/Linux_for_Tegra/bootloader/t186ref/BCT/tegra186-mb1-bct-bootrom-quill-p3310-1000-c03.cfg)... done.
copying dev_params(/home/jc/Downloads/TX2-R28.1/Linux_for_Tegra/bootloader/t186ref/BCT/emmc.cfg)... done.
Existing bootloader(/home/jc/Downloads/TX2-R28.1/Linux_for_Tegra/bootloader/nvtboot_cpu.bin) reused.
	populating kernel to rootfs... done.
	populating initrd to rootfs... done.
	populating extlinux.conf.emmc to rootfs... done.
	populating /home/jc/Downloads/TX2-R28.1/Linux_for_Tegra/kernel/dtb/tegra186-quill-p3310-1000-c03-00-base.dtb to rootfs... done.
done.
Making Boot image... done.
Existing sosfile(/home/jc/Downloads/TX2-R28.1/Linux_for_Tegra/bootloader/mb1_recovery_prod.bin) reused.
copying tegraboot(/home/jc/Downloads/TX2-R28.1/Linux_for_Tegra/bootloader/t186ref/nvtboot.bin)... done.
Existing mb2blfile(/home/jc/Downloads/TX2-R28.1/Linux_for_Tegra/bootloader/nvtboot_recovery.bin) reused.
Existing mtspreboot(/home/jc/Downloads/TX2-R28.1/Linux_for_Tegra/bootloader/preboot_d15_prod_cr.bin) reused.
Existing mts(/home/jc/Downloads/TX2-R28.1/Linux_for_Tegra/bootloader/mce_mts_d15_prod_cr.bin) reused.
Existing mb1file(/home/jc/Downloads/TX2-R28.1/Linux_for_Tegra/bootloader/mb1_prod.bin) reused.
Existing bpffile(/home/jc/Downloads/TX2-R28.1/Linux_for_Tegra/bootloader/bpmp.bin) reused.
copying bpfdtbfile(/home/jc/Downloads/TX2-R28.1/Linux_for_Tegra/bootloader/t186ref/tegra186-a02-bpmp-quill-p3310-1000-c04-00-te770d-ucm2.dtb)... done.
Existing scefile(/home/jc/Downloads/TX2-R28.1/Linux_for_Tegra/bootloader/camera-rtcpu-sce.bin) reused.
Existing spefile(/home/jc/Downloads/TX2-R28.1/Linux_for_Tegra/bootloader/spe.bin) reused.
copying wb0boot(/home/jc/Downloads/TX2-R28.1/Linux_for_Tegra/bootloader/t186ref/warmboot.bin)... done.
Existing tosfile(/home/jc/Downloads/TX2-R28.1/Linux_for_Tegra/bootloader/tos.img) reused.
Existing eksfile(/home/jc/Downloads/TX2-R28.1/Linux_for_Tegra/bootloader/eks.img) reused.
copying dtbfile(/home/jc/Downloads/TX2-R28.1/Linux_for_Tegra/kernel/dtb/tegra186-quill-p3310-1000-c03-00-base.dtb)... done.
Making system.img... 
	populating rootfs from /home/jc/Downloads/TX2-R28.1/Linux_for_Tegra/rootfs ... done.
	Sync'ing system.img ... done.
	Converting RAW image to Sparse image... 

---- Raw to Sparse Image Converter v1.0 ----------------------------
  0: RAW:     4235264(   1034 blks) ==>          28:4235276
  1: SKP:       28672(      7 blks) ==>     4235304:12
  2: RAW:        4096(      1 blks) ==>     4235316:4108
  3: SKP:       61440(     15 blks) ==>     4239424:12
  4: RAW:        4096(      1 blks) ==>     4239436:4108
  5: SKP:    33550336(   8191 blks) ==>     4243544:12
  6: RAW:       24576(      6 blks) ==>     4243556:24588
  7: SKP:    96309248(  23513 blks) ==>     4268144:12
  8: RAW:       12288(      3 blks) ==>     4268156:12300
  9: SKP:     4186112(   1022 blks) ==>     4280456:12
 10: RAW:      729088(    178 blks) ==>     4280468:729100




###

done.
system.img built successfully. 
Existing tbcfile(/home/jc/Downloads/TX2-R28.1/Linux_for_Tegra/bootloader/cboot.bin) reused.
copying tbcdtbfile(/home/jc/Downloads/TX2-R28.1/Linux_for_Tegra/kernel/dtb/tegra186-quill-p3310-1000-c03-00-base.dtb)... done.
copying cfgfile(/home/jc/Downloads/TX2-R28.1/Linux_for_Tegra/bootloader/t186ref/cfg/flash_l4t_t186.xml) to flash.xml... done.
Existing flasher(/home/jc/Downloads/TX2-R28.1/Linux_for_Tegra/bootloader/nvtboot_recovery_cpu.bin) reused.
Existing flashapp(/home/jc/Downloads/TX2-R28.1/Linux_for_Tegra/bootloader/tegraflash.py) reused.
./tegraflash.py --bl nvtboot_recovery_cpu.bin --sdram_config P3310_A00_8GB_Samsung_8GB_lpddr4_204Mhz_A02_l4t.cfg --odmdata 0x1090000 --applet mb1_recovery_prod.bin --cmd "flash; reboot"  --cfg flash.xml --chip 0x18 --misc_config tegra186-mb1-bct-misc-si-l4t.cfg --pinmux_config tegra186-mb1-bct-pinmux-quill-p3310-1000-c03.cfg --pmic_config tegra186-mb1-bct-pmic-quill-p3310-1000-c04.cfg --pmc_config tegra186-mb1-bct-pad-quill-p3310-1000-c03.cfg --prod_config tegra186-mb1-bct-prod-quill-p3310-1000-c03.cfg --scr_config minimal_scr.cfg --scr_cold_boot_config mobile_scr.cfg --br_cmd_config tegra186-mb1-bct-bootrom-quill-p3310-1000-c03.cfg --dev_params emmc.cfg  --bins "mb2_bootloader nvtboot_recovery.bin; mts_preboot preboot_d15_prod_cr.bin; mts_bootpack mce_mts_d15_prod_cr.bin; bpmp_fw bpmp.bin; bpmp_fw_dtb tegra186-a02-bpmp-quill-p3310-1000-c04-00-te770d-ucm2.dtb; tlk tos.img; eks eks.img; bootloader_dtb tegra186-quill-p3310-1000-c03-00-base.dtb"  
saving flash command in /home/jc/Downloads/TX2-R28.1/Linux_for_Tegra/bootloader/flashcmd.txt
./tegraflash.py --bl nvtboot_recovery_cpu.bin --sdram_config P3310_A00_8GB_Samsung_8GB_lpddr4_204Mhz_A02_l4t.cfg --odmdata 0x1090000 --applet mb1_recovery_prod.bin --cmd "flash; reboot"  --cfg flash.xml --chip 0x18 --misc_config tegra186-mb1-bct-misc-si-l4t.cfg --pinmux_config tegra186-mb1-bct-pinmux-quill-p3310-1000-c03.cfg --pmic_config tegra186-mb1-bct-pmic-quill-p3310-1000-c04.cfg --pmc_config tegra186-mb1-bct-pad-quill-p3310-1000-c03.cfg --prod_config tegra186-mb1-bct-prod-quill-p3310-1000-c03.cfg --scr_config minimal_scr.cfg --scr_cold_boot_config mobile_scr.cfg --br_cmd_config tegra186-mb1-bct-bootrom-quill-p3310-1000-c03.cfg --dev_params emmc.cfg  --bins "mb2_bootloader nvtboot_recovery.bin; mts_preboot preboot_d15_prod_cr.bin; mts_bootpack mce_mts_d15_prod_cr.bin; bpmp_fw bpmp.bin; bpmp_fw_dtb tegra186-a02-bpmp-quill-p3310-1000-c04-00-te770d-ucm2.dtb; tlk tos.img; eks eks.img; bootloader_dtb tegra186-quill-p3310-1000-c03-00-base.dtb"  
saving flash parameters in /home/jc/Downloads/TX2-R28.1/Linux_for_Tegra/bootloader/flash_parameters.txt
--bl nvtboot_recovery_cpu.bin --sdram_config P3310_A00_8GB_Samsung_8GB_lpddr4_204Mhz_A02_l4t.cfg --odmdata 0x1090000 --applet mb1_recovery_prod.bin --cmd "flash; reboot"  --cfg flash.xml --chip 0x18 --misc_config tegra186-mb1-bct-misc-si-l4t.cfg --pinmux_config tegra186-mb1-bct-pinmux-quill-p3310-1000-c03.cfg --pmic_config tegra186-mb1-bct-pmic-quill-p3310-1000-c04.cfg --pmc_config tegra186-mb1-bct-pad-quill-p3310-1000-c03.cfg --prod_config tegra186-mb1-bct-prod-quill-p3310-1000-c03.cfg --scr_config minimal_scr.cfg --scr_cold_boot_config mobile_scr.cfg --br_cmd_config tegra186-mb1-bct-bootrom-quill-p3310-1000-c03.cfg --dev_params emmc.cfg  --bins "mb2_bootloader nvtboot_recovery.bin; mts_preboot preboot_d15_prod_cr.bin; mts_bootpack mce_mts_d15_prod_cr.bin; bpmp_fw bpmp.bin; bpmp_fw_dtb tegra186-a02-bpmp-quill-p3310-1000-c04-00-te770d-ucm2.dtb; tlk tos.img; eks eks.img; bootloader_dtb tegra186-quill-p3310-1000-c03-00-base.dtb"  
*** Flashing target device started. ***
Welcome to Tegra Flash
version 1.0.0
Type ? or help for help and q or quit to exit
Use ! to execute system commands
 
[   0.0015 ] tegrasign_v2 --key None --getmode mode.txt
[   0.0021 ] Assuming zero filled SBK key
[   0.0038 ] 






###





[   0.2968 ] MB1-BCT version: 0xe
[   0.2972 ] 
[   0.2976 ] tegrahost_v2 --align mb1_bct_MB1.bct
[   0.2981 ] 
[   0.2985 ] tegrahost_v2 --appendsigheader mb1_bct_MB1.bct zerosbk
[   0.2990 ] 
[   0.2996 ] tegrasign_v2 --key None --list mb1_bct_MB1_sigheader.bct_list.xml
[   0.3000 ] Assuming zero filled SBK key
[   0.3011 ] 
[   0.3017 ] tegrahost_v2 --updatesigheader mb1_bct_MB1_sigheader.bct.encrypt mb1_bct_MB1_sigheader.bct.hash zerosbk
[   0.3023 ] 
[   0.3023 ] Copying signatures
[   0.3028 ] tegrahost_v2 --chip 0x18 --partitionlayout flash.xml.bin --updatesig images_list_signed.xml
[   0.3086 ] 
[   0.3087 ] Boot Rom communication
[   0.3095 ] tegrarcm_v2 --chip 0x18 --rcm rcm_list_signed.xml
[   0.3102 ] BootRom is not running
[   1.3390 ] 
[   1.3420 ] tegrarcm_v2 --isapplet


[ 1012.8564 ] 
[ 1012.8625 ] tegradevflash_v2 --iscpubl

[ 1012.8653 ] CPU Bootloader is not running on device.
[ 2028.6645 ]

This is all the result of the execution.

At the end of

[   1.3390 ] 
[   1.3420 ] tegrarcm_v2 --isapplet'

it took some time(about 10 minutes) and passed to the next,

[ 1012.8653 ] CPU Bootloader is not running on device.
[ 2028.6645 ]

did not work even after one hour, so i forcibly quit

Why can not i do what i want?
How can we solve this problem?
Thank you for reading the long story. i look forward to a good solution coming up. Thank you

Note 1: “Copy and replace the tegra186-quill-p3310-1000-c03-00-base.dtb under Linux_for_Tegra/kernel/dtb” is only needed if you are customizing…the dtb file would otherwise be there by default.

Note 2: “sudo ./flash.sh jetson-tx2 mmcblk0p1” is valid, but does not use the full eMMC partition size, so it might leave you wondering why your disk is filled up so soon. Try instead “sudo ./flash.sh -S 29318MiB jetson-tx2 mmcblk0p1”.

Note 3: A VM rarely works. VMs need work to succeed and are not normally supported. If you want to go through the extra work, see:
https://devtalk.nvidia.com/default/topic/1002081/jetson-tx2/jetpack-3-0-install-with-a-vm/

I assume you cut out part of the flash log. There is a lot of log when converting raw image to sparse image…if the log wasn’t cut by you, then it implies your file system filled up. See “df -H .” from the location of your “Linux_for_Tegra/” directory.

If the flash succeeds it does take a long time…15 minutes would not be unusual, but if you had a raw image used without converting it to sparse (such as if you restored from a clone), then you might expect several hours.

There are all kinds of flash options and “CPU Bootloader is not running on device.” is normal in some places.

Thank you for quick response and advice.

But still fails.

Note2:
I commanded the following command but it still fails.
“sudo ./flash.sh -S 29318MiB jetson-tx2 mmcblk0p1”

After ‘flash’, I commanded ‘df -H’ in ‘Linux_for_Tegra / directory’.
The results are as follows.

“” "
Filesystem Size Used Avail Use% Mounted on
/ dev / mmcblk0p1 30G 20G 8.8G 69% /
none 7.5G 0 7.5G 0% / dev
tmpfs 8.3G 267k 8.3G 1% / dev / shm
tmpfs 8.3G 14M 8.3G 1% / run
tmpfs 5.3M 4.1k 5.3M 1% / run / lock
tmpfs 8.3G 0 8.3G 0% / sys / fs / cgroup
tmpfs 824M 4.1k 824M 1% / run / user / 106
tmpfs 824M 50k 824M 1% / run / user / 1001

“” "

What should I do?

I want to know why this error occurred.

Please Help me

Thank you for reading this post

Additionally, the error same as before

I am suspicious of the host PC…I see df lists mmcblk0p1, which implies it isn’t a regular desktop PC. Probably it is a VM (you mentioned this already), but is the underlying PC a standard desktop x86_64 PC? Normally mmcblk0 would not be the only disk of a regular PC…perhaps this is just a side effect of a VM, I don’t know. Running the command directly on a Jetson is of course not valid…the flash has to run from a host PC. Please describe anything unusual about the physical hardware the VM runs on.

Note that if you are using some sort of flash card for your disk that any format of the file system type other than a native Linux type will fail…for example, a flash card formatted as VFAT or NTFS is incapable of succeeding (though the error would show as the Jetson boots and not during flash). If you use “df -H -T” you will also see file system types…hopefully it shows ext4. Even then there are some distributions which enable some incompatible 64-bit extensions, but usually this isn’t a problem.

I install Ubuntu on host PC but still failled…

I’m so sad…

[ 0.0068 ] Boot Rom communication
[ 0.0074 ] tegrarcm_v2 --chip 0x18 --rcm rcm_list_signed.xml --skipuid
[ 0.0082 ] Boot Rom communication failed
[ 3.3089 ]
Error: Return value 3
Command tegrarcm_v2 --chip 0x18 --rcm rcm_list_signed.xml --skipuid
Reading board information failed.

I went back and looked at some of the original information. I see something which could be an issue:

<b>sudo</b> tar xpf Tegra186_Linux_R28.1.0_aarch64.tbz2

…“sudo” should not be used for this command. The “apply_binaries.sh” step and unpacking the sample rootfs need sudo. So does the actual flash. The other files should not be owned by root. How this may affect your case I do not know, but it seems a possibility of causing problems.

Note also that a VM will most often fail, but when installed directly as you just did it should work without much issue. Is the micro-B USB cable the one provided with the dev kit? Is there anything custom about the hardware, e.g., carrier board?

when I command:

tar xpf Tegra186_Linux_R28.1.0_aarch64.tbz2

and command:

sudo ./apply_binaries.sh

error occurred

Using rootfs directory of: /home/jc/Downloads/TX2-R28.1/Linux_for_Tegra/rootfs
||||||||||||||||||||||| ERROR |||||||||||||||||||||||

  1. The root filesystem, provided with this package,
    has to be extracted to this directory:
    /home/jc/Downloads/TX2-R28.1/Linux_for_Tegra/rootfs

  1. The root filesystem, provided with this package,
    has to be extracted with ‘sudo’ to this directory:
    /home/jc/Downloads/TX2-R28.1/Linux_for_Tegra/rootfs

Consult the Development Guide for instructions on
extracting and flashing your device.
|||||||||||||||||||||||||||||||||||||||||||||||||||||

micro-B USB cable is the one provided with the dev kit.

The steps are:

  1. Unpack the driver package without sudo.
  2. Go to "Linux_for_Tegra/rootfs/", unpack sample rootfs with sudo.
  3. Go back one directory to "Linux_for_Tegra/", run "sudo ./apply_binaries.sh".
  4. You can then flash with something like:
    sudo ./flash.sh -S 29318MiB jetson-tx2 mmcblk0p1
    

If your host is not Ubuntu 14.04 or 16.04 do be sure you do not have “64bit” or “metadata_csum” in the “ext4” section of “/etc/mke2fs.conf” (these are large file system features Linux works well with, but U-Boot does not…this would not harm flash, but the boot-up after flash would not be able to find a rootfs).

I had a hard time for about a month.

I worried about why I could not sleep before I slept.

Thanks to you, this update succeeded.

Thank you very much.