nvidia xavier nx平台使用system.img编写分区APP出错调试
1. 前言
由于xavir nx平台刷完机后,还需要按照很多依赖软件;
例如: opencv等等图像相关的软件;
如果一台一台刷机再安装的话,效率就会很低;
这里通过使用RCM模式,进行多台机器直接刷软件,可以减少重复安装软件的时间,提升效率;
但是调试过程中出现一些问题,记录如下
2. 刷机流程
这里是整体刷机,步骤如下:
(1)在第一个xavier nx生产模块上安装所有必要的软件
(2)进入Jetson Xavier NX flash目录
cd ~/nvidia/nvidia_sdk/JetPack_4.4.1_Linux_JETSON_XAVIER_NX/Linux_for_Tegra
(3)连接第一个xavier nx设备& 安装所有必要的软件,并把它放入RCM模式。
sudo ./nvmassflashgen.sh jetson-xavier-nx-devkit-emmc mmcblk0p1
(4)解压缩生成的文件
tar xvjf mfi_jetson-xavier-nx-devkit-emmc.tbz2
(5)进入解压文件目录
cd mfi_jetson-xavier-nx-devkit-emmc
(6)断开连接的第一个xavier nx生产模块
(7)连接第二个xavier nx生产模块,并将其置于RCM模式
sudo ./nvmflash.sh --showlogs
下面是出错日志输出:
** Boot Rom communication
/home/nitin/nvidia/nvidia_sdk/JetPack_4.4.1_Linux_JETSON_XAVIER_NX/Linux_for_Tegra/mfi_jetson-xavier-nx-devkit-emmc/tegrarcm_v2 --instance 1-9.1 --chip 0x19 0 --rcm rcm_list_signed.xml
BR_CID: 0x88021911646cf5c924000000130501c0
RCM version 0X190001
Boot Rom communication completed
*** Boot Rom communication succeeded.
*** Checking applet
/home/nitin/nvidia/nvidia_sdk/JetPack_4.4.1_Linux_JETSON_XAVIER_NX/Linux_for_Tegra/mfi_jetson-xavier-nx-devkit-emmc/tegrarcm_v2 --instance 1-9.1 --isapplet
Applet version 01.00.0000
*** Checking applet succeeded.
*** Sending BCTs
/home/nitin/nvidia/nvidia_sdk/JetPack_4.4.1_Linux_JETSON_XAVIER_NX/Linux_for_Tegra/mfi_jetson-xavier-nx-devkit-emmc/tegrarcm_v2 --instance 1-9.1 --download bct_bootrom br_bct_BR.bct --download bct_mb1 mb1_bct_MB1_sigheader.bct.encrypt --download bct_mem mem_rcm_sigheader.bct.encrypt
Applet version 01.00.0000
Sending bct_bootrom
[................................................] 100%
Sending bct_mb1
[................................................] 100%
Sending bct_mem
[................................................] 100%
*** Sending BCTs succeeded.
*** Sending bootloader and pre-requisite binaries
/home/nitin/nvidia/nvidia_sdk/JetPack_4.4.1_Linux_JETSON_XAVIER_NX/Linux_for_Tegra/mfi_jetson-xavier-nx-devkit-emmc/tegrarcm_v2 --instance 1-9.1 --download blob blob.bin
Applet version 01.00.0000
Sending blob
[................................................] 100%
*** Sending bootloader and pre-requisite binaries succeeded.
*** Booting Recovery
/home/nitin/nvidia/nvidia_sdk/JetPack_4.4.1_Linux_JETSON_XAVIER_NX/Linux_for_Tegra/mfi_jetson-xavier-nx-devkit-emmc/tegrarcm_v2 --instance 1-9.1 --boot recovery
Applet version 01.00.0000
*** Booting Recovery succeeded.
*** Checking applet
/home/nitin/nvidia/nvidia_sdk/JetPack_4.4.1_Linux_JETSON_XAVIER_NX/Linux_for_Tegra/mfi_jetson-xavier-nx-devkit-emmc/tegrarcm_v2 --instance 1-9.1 --isapplet
*** Checking CPU bootloader
/home/nitin/nvidia/nvidia_sdk/JetPack_4.4.1_Linux_JETSON_XAVIER_NX/Linux_for_Tegra/mfi_jetson-xavier-nx-devkit-emmc/tegradevflash_v2 --instance 1-9.1 --iscpubl
Bootloader version 01.00.0000
Bootloader version 01.00.0000
*** Checking CPU bootloader succeeded.
ls: cannot access 'mbr_*': No such file or directory
ls: cannot access 'gpt_*': No such file or directory
*** Retrieving storage infomation
/home/nitin/nvidia/nvidia_sdk/JetPack_4.4.1_Linux_JETSON_XAVIER_NX/Linux_for_Tegra/mfi_jetson-xavier-nx-devkit-emmc/tegradevflash_v2 --instance 1-9.1 --oem platformdetails storage storage_info.bin
Bootloader version 01.00.0000
Saved platform info in storage_info.bin
*** Retrieving storage infomation succeeded.
*** Generating GPT
/home/nitin/nvidia/nvidia_sdk/JetPack_4.4.1_Linux_JETSON_XAVIER_NX/Linux_for_Tegra/mfi_jetson-xavier-nx-devkit-emmc/tegraparser_v2 --storageinfo storage_info.bin --generategpt --pt flash.xml.bin
*** Generating GPT succeeded.
*** Flashing the device
/home/nitin/nvidia/nvidia_sdk/JetPack_4.4.1_Linux_JETSON_XAVIER_NX/Linux_for_Tegra/mfi_jetson-xavier-nx-devkit-emmc/tegradevflash_v2 --instance 1-9.1 --pt flash.xml.bin --create
Bootloader version 01.00.0000
Erasing spi: 0 ......... [Done]
Writing partition secondary_gpt with gpt_secondary_3_0.bin
[................................................] 100%
Erasing sdmmc_user: 3 ......... [Done]
Writing partition master_boot_record with mbr_1_3.bin
[................................................] 100%
Writing partition primary_gpt with gpt_primary_1_3.bin
[................................................] 100%
Writing partition secondary_gpt with gpt_secondary_1_3.bin
[................................................] 100%
Writing partition mb1 with mb1_t194_prod_sigheader.bin.encrypt
[................................................] 100%
Writing partition mb1_b with mb1_t194_prod_sigheader.bin.encrypt
[................................................] 100%
Writing partition spe-fw with spe_t194_sigheader.bin.encrypt
[................................................] 100%
Writing partition spe-fw_b with spe_t194_sigheader.bin.encrypt
[................................................] 100%
Writing partition mb2 with nvtboot_t194_sigheader.bin.encrypt
[................................................] 100%
Writing partition mb2_b with nvtboot_t194_sigheader.bin.encrypt
[................................................] 100%
Writing partition mts-preboot with preboot_c10_prod_cr_sigheader.bin.encrypt
[................................................] 100%
Writing partition mts-preboot_b with preboot_c10_prod_cr_sigheader.bin.encrypt
[................................................] 100%
Writing partition mts-mce with mce_c10_prod_cr_sigheader.bin.encrypt
[................................................] 100%
Writing partition mts-mce_b with mce_c10_prod_cr_sigheader.bin.encrypt
[................................................] 100%
Writing partition mts-proper with mts_c10_prod_cr_sigheader.bin.encrypt
[................................................] 100%
Writing partition mts-proper_b with mts_c10_prod_cr_sigheader.bin.encrypt
[................................................] 100%
Writing partition sc7 with warmboot_t194_prod_sigheader.bin.encrypt
[................................................] 100%
Writing partition sc7_b with warmboot_t194_prod_sigheader.bin.encrypt
[................................................] 100%
Writing partition SMD with slot_metadata.bin
[................................................] 100%
Writing partition SMD_b with slot_metadata.bin
[................................................] 100%
Writing partition xusb-fw with xusb_sil_rel_fw
[................................................] 100%
Writing partition xusb-fw_b with xusb_sil_rel_fw
[................................................] 100%
Writing partition cpu-bootloader with cboot_t194_sigheader.bin.encrypt
[................................................] 100%
Writing partition cpu-bootloader_b with cboot_t194_sigheader.bin.encrypt
[................................................] 100%
Writing partition bootloader-dtb with tegra194-p3668-all-p3509-0000_sigheader.dtb.encrypt
[................................................] 100%
Writing partition bootloader-dtb_b with tegra194-p3668-all-p3509-0000_sigheader.dtb.encrypt
[................................................] 100%
Writing partition BMP with bmp.blob
[................................................] 100%
Writing partition BMP_b with bmp.blob
[................................................] 100%
Writing partition secure-os with tos-trusty_t194_sigheader.img.encrypt
[................................................] 100%
Writing partition secure-os_b with tos-trusty_t194_sigheader.img.encrypt
[................................................] 100%
Writing partition eks with eks_sigheader.img.encrypt
[................................................] 100%
Writing partition eks_b with eks_sigheader.img.encrypt
[................................................] 100%
Writing partition adsp-fw with adsp-fw_sigheader.bin.encrypt
[................................................] 100%
Writing partition adsp-fw_b with adsp-fw_sigheader.bin.encrypt
[................................................] 100%
Writing partition rce-fw with camera-rtcpu-rce_sigheader.img.encrypt
[................................................] 100%
Writing partition rce-fw_b with camera-rtcpu-rce_sigheader.img.encrypt
[................................................] 100%
Writing partition bpmp-fw with bpmp_t194_sigheader.bin.encrypt
[................................................] 100%
Writing partition bpmp-fw_b with bpmp_t194_sigheader.bin.encrypt
[................................................] 100%
Writing partition bpmp-fw-dtb with tegra194-a02-bpmp-p3668-a00_sigheader.dtb.encrypt
[................................................] 100%
Writing partition bpmp-fw-dtb_b with tegra194-a02-bpmp-p3668-a00_sigheader.dtb.encrypt
[................................................] 100%
Writing partition VER with qspi_bootblob_ver.txt
[................................................] 100%
Writing partition VER_b with qspi_bootblob_ver.txt
[................................................] 100%
Writing partition master_boot_record with mbr_1_3.bin
[................................................] 100%
Writing partition APP with system.img
*** Error: Flashing the device failed. ] 031%
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
- 100
- 101
- 102
- 103
- 104
- 105
- 106
- 107
- 108
- 109
- 110
- 111
- 112
- 113
- 114
- 115
- 116
- 117
- 118
- 119
- 120
- 121
- 122
- 123
- 124
- 125
- 126
- 127
- 128
- 129
- 130
- 131
- 132
- 133
- 134
- 135
- 136
- 137
- 138
- 139
- 140
- 141
- 142
- 143
- 144
- 145
- 146
- 147
- 148
- 149
- 150
- 151
3. 排查建议
(1)是否有定制的system.img来替换默认的system.img?
分区大小可能不同,可能需要使用“-S size”选项来指定分区大小。
(2)在哪个步骤需要使用这个-S大小选项,大小的值应该是什么?
检查Flash Script Usage 2,并使用Flash .sh进行验证。
(3)是否可以使用离线方式来执行nvmassflashgen?
4. 查看system.img
从一个Xavier NX生产模块有定制软件安装,创建一个massflash blob,以下有替换:
~/nvidia/nvidia_sdk/JetPack_4.4.1_Linux_JETSON_XAVIER_NX/Linux_for_Tegra/bootloader/system.img
~/nvidia/nvidia_sdk/JetPack_4.4.1_Linux_JETSON_XAVIER_NX/Linux_for_Tegra/mfi_jetson-xavier-nx-devkit-emmc/system.img
- 1
- 2
根据README_Massflash.txt系统。在mfi_jetson-xavier-nx-devkit-emmc dir中创建的Img应该可以工作,而不需要手动替换任何文件。
5. 文件说明
/bootloader/system.img:
这是flash命令生成的默认系统映像
/mfi_jetson-xavier-nx-devkit-emmc/system.img :
这是由nvmassflashgen.sh脚本生成的。
6. 解决办法
可以使用-r开关来跳过构建和重用现有的system.img。
例如,
$ sudo ./nvmassflashgen.sh -r jetson-xavier-nx mmcblk0p1
使用一个克隆映像来替换默认映像,然后将其部署到其他平台。
(1)按照前面提到的所有步骤生成mfi_jetson-xavier-nx-devkit-emmc目录,然后使用命令创建设备的克隆
sudo ./flash.sh -r -k APP -G backup.img jetson-xavier-nx-devkit-emmc mmcblk0p1
- 1
之后我替换了这个system.img
(2)在mfi_jetson-xavier-nx-devkit-emmc目录下使用命令
cp backup.img mfi_jetson-xavier-nx-devkit-emmc/system.img
- 1
(3) 最后连接两个Xavier NX把它们放到RCM中,
运行
sudo ./nvmflash.sh——showlogs
- 1
它没有任何错误,正常flash两个设备。
7. 非生产nx devkit版本是否支持nvmassflash脚本?
不支持,massflash只支持eMMC模块。
如果使用带有外部存储的Jetson Xavier NX(即NVMe),那么有一个工具可以支持这一功能。查看下面的详细信息。
$OUT/JetPack-4.5.1/Linux_for_Tegra/tools/kernel_flash/README.txt
- 分享
- 举报

-
浏览量:8778次2021-05-14 14:43:43
-
浏览量:7593次2021-05-11 17:51:48
-
浏览量:9759次2021-05-26 14:17:15
-
浏览量:9593次2021-04-27 17:56:41
-
2021-05-06 16:03:00
-
浏览量:11075次2021-05-06 16:22:01
-
浏览量:7207次2021-05-11 17:04:57
-
浏览量:5341次2021-05-10 17:48:42
-
浏览量:7647次2021-05-20 17:08:14
-
浏览量:7238次2021-05-20 16:37:42
-
浏览量:9431次2021-05-19 17:32:00
-
浏览量:8115次2021-05-25 15:32:16
-
浏览量:9596次2021-05-25 17:31:40
-
浏览量:7366次2021-07-31 15:26:23
-
浏览量:8090次2021-06-04 16:25:58
-
浏览量:6032次2021-05-28 13:52:17
-
浏览量:4398次2021-07-22 14:48:32
-
浏览量:7588次2021-06-09 14:29:23
-
浏览量:10356次2021-06-08 17:32:00
-
广告/SPAM
-
恶意灌水
-
违规内容
-
文不对题
-
重复发帖
free-jdx






举报类型
- 内容涉黄/赌/毒
- 内容侵权/抄袭
- 政治相关
- 涉嫌广告
- 侮辱谩骂
- 其他
详细说明