How to backup system from nvme then flash to new nvme

Hi,

因為你前面一次問了兩個問題,我現在有點搞混

這樣看起來是整包rootfs都沒有備份到,只有bootloader,但是你之前在這塊Xavier NX上的問題是刷進去之後系統正常,只是JetPack不見了?還是你這裡說的JetPack跟L4T的Ubuntu系統是同一個概念?因為會出問題的話應該就是整塊rootfs都不見,單獨只有JetPack消失、L4T還能用聽起來實在很奇怪。

這一包應該是Orin NX沒錯?那你用這一包重刷的話還會有之前只有刷進QSPI,開機進不了系統的問題嗎?

看起来是的,rootfs没有备份到。请问该如何去备份呢?
从backup的情况来看,系统是全部都备份上了

但是在制作Massflash的时候,rootfs就丢失了

好,所以現在的情況是你在L4T R32.7.1+Xavier NX上,用massflash做backup image,最終出來的結果rootfs會消失?
我先確認一下我們的Developer Kit上能不能複製。不過如果新版已經沒有這個問題的話,你們的工廠端還有辦法升級L4T版本嗎?像是如果同樣是R32的32.7.4,升級後的相容性問題應該比較小。

这个问题应该跟载板无关,我们只是在设备树里面加上了SD卡的相关内容,其余文件均没有做过修改。问题的难点在于,我备份emmc时,是可以正常的,我近期会同步升级一下版本看看,如果可以的话,还是系统能在这个版本上可以成功。因为系统升级,可能会对应着软件的升级,这可能需要花更多的时间去处理。
目前手上没有devkit的载板了,所以无法验证在devkit上能否成功。
我人为这个问题,如果你们有devkit的情况下,应该是可以复现的,我只是在官方系统的基础上安装了jetpack软件,并没有加入我们的软件,然后进行备份,再制作Massflash,再恢复。

还请帮忙再看看,我刚刚新搭建了32.7.4的环境,但是没有找到backup的脚本了

Hi,

我剛才檢查過的確是這樣,這可能要問developer、我也不是很清楚
你可以試試看把舊版BSP的script直接複製過去能不能用
不過32.7.1到32.7.4都是一些security fix而已,所以如果真的是bug的話新版可能問題也還在
我們可能還是先專注在我們的DevKit上能不能複製再看要怎麼解決,這部份我還在處理

我找到一个devkit的底板,能够正常工作,我先用同样的步骤在35.3.1的版本上也验证一下,近两天我 整理一下,给您消息。

1 Like

很幸运,目前我在35.2.1的版本,备份ORIN NX的系统成功了,并且恢复到新的设备中了,
具体操作步骤如下:

sudo ./tools/backup_restore/l4t_backup_restore.sh -b -c y-c6-orin-nx-3521     #备份

sudo ./tools/kernel_flash/l4t_initrd_flash.sh --use-backup-image --no-flash --network usb0 --massflash 5 y-c6-orin-nx-3521 nvme0n1p1                       #生产工厂刷机mfi_<board>.tar.gz

scp mfi_y-c6-orin-nx-3521.tar.gz  plink@192.168.1.133:/home/plink/Massflash/35.2.1_xinmai

cd  plink@192.168.1.133:/home/plink/Massflash/35.2.1_xinmai  #This step indicates that subsequent commands are executed on the production host.

tar -xf  mfi_y-c6-orin-nx-3521.tar.gz

cd mfi_y-c6-orin-nx-3521

sudo ./tools/kernel_flash/l4t_initrd_flash.sh  --flash-only --massflash 1 --network usb0 --showlogs

需要注意的是,在备份的时候,我修改了backup_restore路径下的所有文件,将文件内的mmcblk0全部改成了nvme0n1

在解压完mfi_.tar.gz过后,第一次刷机会失败。提示找不到mmcblk0的设备,
然后我将mfi_y-c6-orin-nx-3521/tools/kernel_flash路径下的所有文件中的mmcblk0全部修改成了nvme0n1,然后再次刷机,我就成功了,感谢您的支持,希望我的解决方法能帮助到其他人。

1 Like

感謝你的分享!
另外這個backup/restore的script要手動改storage device的問題,我們新加了選項可以指定要從哪裡備份,應該接下來釋出的L4T就可以用了。

1 Like

对于生成的mfi_.tar.gz的包里面需要修改storage device的问题是否能得到修复呢?我们,包括我们的客户,都希望,生产的mfi_.tar.gz可以直接发给工厂使用。而不需要再做任何的修改。

目前看起來應該是只有直接用backup/restore的這個script才可以指定,massflash是另外獨立的tool、應該還是要手動改(我沒有試過,可以幫你跑一遍試試看),如果需要的話再看看能不能把這個功能加進去。

好的,感谢。

新发现一个问题,新拆封的模组加硬盘,似乎由于没有QSPI,而导致无法使用以下命令进行刷写:

sudo ./tools/kernel_flash/l4t_initrd_flash.sh  --flash-only --massflash 1 --network usb0 --showlogs

当我换上用过的模组去刷这个镜像,就可以成功。

**********************************************
*                                            *
*  Step 1: Build the flashing environment    *
*                                            *
**********************************************
Create flash environment 0
/home/plink/xingmai-image/mfi_y-c6-orin-nx-3521/bootloader /home/plink/xingmai-image/mfi_y-c6-orin-nx-3521
/home/plink/xingmai-image/mfi_y-c6-orin-nx-3521
Finish creating flash environment 0.
****************************************************
*                                                  *
*  Step 2: Boot the device with flash initrd image *
*                                                  *
****************************************************
/home/plink/xingmai-image/mfi_y-c6-orin-nx-3521/temp_initrdflash/bootloader0 /home/plink/xingmai-image/mfi_y-c6-orin-nx-3521
./tegraflash.py --bl uefi_jetson_with_dtb_sigheader.bin.encrypt --bct br_bct_BR.bct --securedev  --bldtb y-c6-orin-nx-3521.dtb --applet rcm_2_encrypt.rcm --applet_softfuse rcm_1_encrypt.rcm --cmd "rcmboot"  --cfg secureflash.xml --chip 0x23 --mb1_bct mb1_bct_MB1_sigheader.bct.encrypt --mem_bct mem_rcm_sigheader.bct.encrypt --mb1_cold_boot_bct mb1_cold_boot_bct_MB1_sigheader.bct.encrypt --mb1_bin mb1_t234_prod_aligned_sigheader.bin.encrypt --psc_bl1_bin psc_bl1_t234_prod_aligned_sigheader.bin.encrypt --mem_bct_cold_boot mem_coldboot_sigheader.bct.encrypt  --bins "psc_fw pscfw_t234_prod_sigheader.bin.encrypt; mts_mce mce_flash_o10_cr_prod_sigheader.bin.encrypt; mb2_applet applet_t234_sigheader.bin.encrypt; mb2_bootloader mb2_t234_with_mb2_cold_boot_bct_MB2_sigheader.bin.encrypt; xusb_fw xusb_t234_prod_sigheader.bin.encrypt; dce_fw display-t234-dce_sigheader.bin.encrypt; nvdec nvdec_t234_prod_sigheader.fw.encrypt; bpmp_fw bpmp_t234-TE990M-A1_prod_sigheader.bin.encrypt; bpmp_fw_dtb tegra234-bpmp-3767-0001-3509-a02_sigheader.dtb.encrypt; sce_fw camera-rtcpu-sce_sigheader.img.encrypt; rce_fw camera-rtcpu-t234-rce_sigheader.img.encrypt; ape_fw adsp-fw_sigheader.bin.encrypt; spe_fw spe_t234_sigheader.bin.encrypt; tos tos-optee_t234_sigheader.img.encrypt; eks eks_t234_sigheader.img.encrypt; kernel boot0.img; kernel_dtb tegra234-p3767-0001-p3768-0000-a0.dtb"    --secondary_gpt_backup  --bct_backup  --boot_chain A  --instance 1-9
Welcome to Tegra Flash
version 1.0.0
Type ? or help for help and q or quit to exit
Use ! to execute system commands


 Entering RCM boot

[   0.0274 ] mb1_t234_prod_aligned_sigheader.bin.encrypt filename is from --mb1_bin
[   0.0274 ] psc_bl1_t234_prod_aligned_sigheader.bin.encrypt filename is from --psc_bl1_bin
[   0.0274 ] rcm boot with presigned binaries
[   0.0284 ] tegrarcm_v2 --instance 1-9 --new_session --chip 0x23 0 --uid --download bct_br br_bct_BR.bct --download mb1 mb1_t234_prod_aligned_sigheader.bin.encrypt --download psc_bl1 psc_bl1_t234_prod_aligned_sigheader.bin.encrypt --download bct_mb1 mb1_bct_MB1_sigheader.bct.encrypt
[   0.0292 ] BR_CID: 0x80012344705DD4227C00000002000240
[   0.0353 ] Sending bct_br
[   0.0405 ] Sending mb1
[   0.0442 ] Sending psc_bl1
[   0.0547 ] Sending bct_mb1
[   0.0623 ] Generating blob for T23x
[   0.0657 ] tegrahost_v2 --chip 0x23 0 --generateblob blob.xml blob.bin
[   0.0674 ] The number of images in blob is 18
[   0.0678 ] blobsize is 80572126
[   0.0679 ] Added binary blob_uefi_jetson_with_dtb_sigheader.bin.encrypt of size 3175248
[   0.1130 ] Added binary blob_pscfw_t234_prod_sigheader.bin.encrypt of size 375168
[   0.1139 ] Added binary blob_mce_flash_o10_cr_prod_sigheader.bin.encrypt of size 190592
[   0.1142 ] Added binary blob_applet_t234_sigheader.bin.encrypt of size 277312
[   0.1144 ] Not supported type: mb2_applet
[   0.1146 ] Added binary blob_mb2_t234_with_mb2_cold_boot_bct_MB2_sigheader.bin.encrypt of size 437760
[   0.1148 ] Added binary blob_xusb_t234_prod_sigheader.bin.encrypt of size 164352
[   0.1150 ] Added binary blob_display-t234-dce_sigheader.bin.encrypt of size 9097216
[   0.1201 ] Added binary blob_nvdec_t234_prod_sigheader.fw.encrypt of size 294912
[   0.1222 ] Added binary blob_bpmp_t234-TE990M-A1_prod_sigheader.bin.encrypt of size 1047616
[   0.1227 ] Added binary blob_tegra234-bpmp-3767-0001-3509-a02_sigheader.dtb.encrypt of size 138880
[   0.1229 ] Added binary blob_camera-rtcpu-sce_sigheader.img.encrypt of size 166304
[   0.1231 ] Added binary blob_camera-rtcpu-t234-rce_sigheader.img.encrypt of size 537952
[   0.1233 ] Added binary blob_adsp-fw_sigheader.bin.encrypt of size 400944
[   0.1234 ] Added binary blob_spe_t234_sigheader.bin.encrypt of size 270336
[   0.1235 ] Added binary blob_tos-optee_t234_sigheader.img.encrypt of size 1064752
[   0.1240 ] Added binary blob_eks_t234_sigheader.img.encrypt of size 9232
[   0.1241 ] Added binary blob_boot0.img of size 62580736
[   0.1580 ] Added binary blob_tegra234-p3767-0001-p3768-0000-a0.dtb of size 341710
[   0.2183 ] tegrarcm_v2 --instance 1-9 --chip 0x23 0 --pollbl --download bct_mem mem_rcm_sigheader.bct.encrypt --download blob blob.bin
[   0.2191 ] BL: version 0.28.0.0-t234-54845784-ec016368 last_boot_error: 0
[   0.2754 ] Sending bct_mem
[   0.2860 ] Sending blob
[   0.4107 ] ERROR: might be timeout in USB write.
Error: Return value 3
Command tegrarcm_v2 --instance 1-9 --chip 0x23 0 --pollbl --download bct_mem mem_rcm_sigheader.bct.encrypt --download blob blob.bin
Cleaning up...

这个是刷机失败的日志。

下面是主机端dmesg的日志,需要注意,我没有使用虚拟机进行操作。使用的是Ubuntu20.04的物理机。

[1812754.196970] usb 1-2: USB disconnect, device number 56
[1812812.176732] usb 1-2: new high-speed USB device number 57 using xhci_hcd
[1812812.326338] usb 1-2: New USB device found, idVendor=0955, idProduct=7423, bcdDevice= 4.01
[1812812.326351] usb 1-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[1812812.326355] usb 1-2: Product: APX
[1812812.326359] usb 1-2: Manufacturer: NVIDIA Corp.
[1812818.468798] nfsd: last server has exited, flushing export cache
[1812819.610215] NFSD: Using UMH upcall client tracking operations.
[1812819.610223] NFSD: starting 90-second grace period (net f0000000)

当我换上一个使用过的模组过后,就可以正常使用。请问有什么办法能够解决吗?

Hi,

你用這個command先把bootloader燒進QSPI,再重試一次Massflash應該就可以了

sudo ./flash.sh -c bootloader/t186ref/cfg/flash_t234_qspi.xml --no-systemimg <board-config> nvme0n1p1

flash.sh是可以單獨重燒bootloader的

Hello,
这个方式是可以的,但是这样的话,工厂生产的流程就变复杂了。我们工厂的同事可能并不能够理解这么多的操作步骤。
或者说,有人使用拷贝机拷贝硬盘,然后核心只刷QSPI的方式吗?
我们更希望能够为客户缩短供货周期。

可以,之前也有其他user問過這個問題,直接複製應該是比用Massflash簡單很多

在刷完这个过后,再去刷下面这个命令,也还是会失败。

sudo ./tools/kernel_flash/l4t_initrd_flash.sh  --flash-only --massflash 1 --network usb0 --showlogs

但是换其他正常使用过的模组去刷硬盘,再把刷过qspi的模组换上去,是可以正常启动了。

可以附上失敗的flashing log和UART log嗎

**********************************************
*                                            *
*  Step 1: Build the flashing environment    *
*                                            *
**********************************************
Create flash environment 1
/home/plink/Massflash/35.2.1_xinmai/mfi_y-c6-orin-nx-3521/bootloader /home/plink/Massflash/35.2.1_xinmai/mfi_y-c6-orin-nx-3521
/home/plink/Massflash/35.2.1_xinmai/mfi_y-c6-orin-nx-3521
Finish creating flash environment 1.
****************************************************
*                                                  *
*  Step 2: Boot the device with flash initrd image *
*                                                  *
****************************************************
/home/plink/Massflash/35.2.1_xinmai/mfi_y-c6-orin-nx-3521/temp_initrdflash/bootloader1 /home/plink/Massflash/35.2.1_xinmai/mfi_y-c6-orin-nx-3521
./tegraflash.py --bl uefi_jetson_with_dtb_sigheader.bin.encrypt --bct br_bct_BR.bct --securedev  --bldtb y-c6-orin-nx-3521.dtb --applet rcm_2_encrypt.rcm --applet_softfuse rcm_1_encrypt.rcm --cmd "rcmboot"  --cfg secureflash.xml --chip 0x23 --mb1_bct mb1_bct_MB1_sigheader.bct.encrypt --mem_bct mem_rcm_sigheader.bct.encrypt --mb1_cold_boot_bct mb1_cold_boot_bct_MB1_sigheader.bct.encrypt --mb1_bin mb1_t234_prod_aligned_sigheader.bin.encrypt --psc_bl1_bin psc_bl1_t234_prod_aligned_sigheader.bin.encrypt --mem_bct_cold_boot mem_coldboot_sigheader.bct.encrypt  --bins "psc_fw pscfw_t234_prod_sigheader.bin.encrypt; mts_mce mce_flash_o10_cr_prod_sigheader.bin.encrypt; mb2_applet applet_t234_sigheader.bin.encrypt; mb2_bootloader mb2_t234_with_mb2_cold_boot_bct_MB2_sigheader.bin.encrypt; xusb_fw xusb_t234_prod_sigheader.bin.encrypt; dce_fw display-t234-dce_sigheader.bin.encrypt; nvdec nvdec_t234_prod_sigheader.fw.encrypt; bpmp_fw bpmp_t234-TE990M-A1_prod_sigheader.bin.encrypt; bpmp_fw_dtb tegra234-bpmp-3767-0001-3509-a02_sigheader.dtb.encrypt; sce_fw camera-rtcpu-sce_sigheader.img.encrypt; rce_fw camera-rtcpu-t234-rce_sigheader.img.encrypt; ape_fw adsp-fw_sigheader.bin.encrypt; spe_fw spe_t234_sigheader.bin.encrypt; tos tos-optee_t234_sigheader.img.encrypt; eks eks_t234_sigheader.img.encrypt; kernel boot1.img; kernel_dtb tegra234-p3767-0001-p3768-0000-a0.dtb"    --secondary_gpt_backup  --bct_backup  --boot_chain A  --instance 1-2
Welcome to Tegra Flash
version 1.0.0
Type ? or help for help and q or quit to exit
Use ! to execute system commands


 Entering RCM boot

[   0.0860 ] mb1_t234_prod_aligned_sigheader.bin.encrypt filename is from --mb1_bin
[   0.0860 ] psc_bl1_t234_prod_aligned_sigheader.bin.encrypt filename is from --psc_bl1_bin
[   0.0860 ] rcm boot with presigned binaries
[   0.0878 ] tegrarcm_v2 --instance 1-2 --new_session --chip 0x23 0 --uid --download bct_br br_bct_BR.bct --download mb1 mb1_t234_prod_aligned_sigheader.bin.encrypt --download psc_bl1 psc_bl1_t234_prod_aligned_sigheader.bin.encrypt --download bct_mb1 mb1_bct_MB1_sigheader.bct.encrypt
[   0.0893 ] BR_CID: 0x80012344705DD1A01800000009020180
[   0.0980 ] Sending bct_br
[   0.1164 ] Sending mb1
[   0.1186 ] Sending psc_bl1
[   0.1344 ] Sending bct_mb1
[   0.1518 ] Generating blob for T23x
[   0.1548 ] tegrahost_v2 --chip 0x23 0 --generateblob blob.xml blob.bin
[   0.1564 ] The number of images in blob is 18
[   0.1566 ] blobsize is 80572126
[   0.1567 ] Added binary blob_uefi_jetson_with_dtb_sigheader.bin.encrypt of size 3175248
[   0.1786 ] Added binary blob_pscfw_t234_prod_sigheader.bin.encrypt of size 375168
[   0.1790 ] Added binary blob_mce_flash_o10_cr_prod_sigheader.bin.encrypt of size 190592
[   0.1792 ] Added binary blob_applet_t234_sigheader.bin.encrypt of size 277312
[   0.1793 ] Not supported type: mb2_applet
[   0.1793 ] Added binary blob_mb2_t234_with_mb2_cold_boot_bct_MB2_sigheader.bin.encrypt of size 437760
[   0.1795 ] Added binary blob_xusb_t234_prod_sigheader.bin.encrypt of size 164352
[   0.1797 ] Added binary blob_display-t234-dce_sigheader.bin.encrypt of size 9097216
[   0.1830 ] Added binary blob_nvdec_t234_prod_sigheader.fw.encrypt of size 294912
[   0.1842 ] Added binary blob_bpmp_t234-TE990M-A1_prod_sigheader.bin.encrypt of size 1047616
[   0.1846 ] Added binary blob_tegra234-bpmp-3767-0001-3509-a02_sigheader.dtb.encrypt of size 138880
[   0.1847 ] Added binary blob_camera-rtcpu-sce_sigheader.img.encrypt of size 166304
[   0.1849 ] Added binary blob_camera-rtcpu-t234-rce_sigheader.img.encrypt of size 537952
[   0.1850 ] Added binary blob_adsp-fw_sigheader.bin.encrypt of size 400944
[   0.1851 ] Added binary blob_spe_t234_sigheader.bin.encrypt of size 270336
[   0.1852 ] Added binary blob_tos-optee_t234_sigheader.img.encrypt of size 1064752
[   0.1855 ] Added binary blob_eks_t234_sigheader.img.encrypt of size 9232
[   0.1856 ] Added binary blob_boot1.img of size 62580736
[   0.2129 ] Added binary blob_tegra234-p3767-0001-p3768-0000-a0.dtb of size 341710
[   0.2920 ] tegrarcm_v2 --instance 1-2 --chip 0x23 0 --pollbl --download bct_mem mem_rcm_sigheader.bct.encrypt --download blob blob.bin
[   0.2940 ] BL: version 0.28.0.0-t234-54845784-ec016368 last_boot_error: 0
[   0.3606 ] Sending bct_mem
[   0.3834 ] Sending blob
[   0.4807 ] ERROR: might be timeout in USB write.
Error: Return value 3
Command tegrarcm_v2 --instance 1-2 --chip 0x23 0 --pollbl --download bct_mem mem_rcm_sigheader.bct.encrypt --download blob blob.bin
Cleaning up...

这是flash log,UART log我尽量抽时间提取给您吧,目前货期比较紧,现在是使用之前能够正常使用的模组去先将备份的镜像刷到硬盘,QSPI单独刷完,最终再组装到一起的方式。

USB timeout這個是老bug了,但是每個user的情況不一樣,所以我們一直沒辦法有效解決
你可以試試看在這個會失敗的module上重燒一包新的BSP,如果也是一樣的問題應該就是我說的bug

有些user用這個方法可以成功

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

如果還是不行的話就只能請你們暫時用你說的workaround了

1 Like