I’m trying to flash JetsonNano board and an external USB SSD, so that I can use the external USB SSD instead of the microSD. I find the info in the Developer Guide confusing. In particular the instructions given in ’ Basic Flashing Procedures → To flash the target device to mount a rootfs specified by UUID’ (call it #1) , and the ’ Flashing to a USB Drive → To set up a flash drive manually for booting’ (#2).
My setup:
- the board is in the Force Recovery mode and connected to the host Linux machine
- the USD SSD is connected to the host machine
- both devices are visible i.e.
__ lsusb
Bus 002 Device 002: ID 152d:0583 JMicron Technology Corp. / JMicron USA Technology Corp.
…
Bus 001 Device 004: ID 0955:7f21 NVidia Corp.
…
Now per ‘#1’
sudo ./flash.sh jetson-nano-qspi external
###############################################################################
L4T BSP Information:
R32 , REVISION: 6.1
###############################################################################
Target Board Information:
Name: jetson-nano-qspi, Board Family: t210ref, SoC: Tegra 210,
OpMode: production, Boot Authentication: ,
Disk encryption: disabled ,
###############################################################################
./tegraflash.py --chip 0x21 --applet “/home/biocodz/Linux_for_Tegra/bootloader/nvtboot_recovery.bin” --skipuid --cmd “dump eeprom boardinfo cvm.bin”
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.0048 ] Generating RCM messages
[ 0.0098 ] tegrarcm --listrcm rcm_list.xml --chip 0x21 0 --download rcm /home/biocodz/Linux_for_Tegra/bootloader/nvtboot_recovery.bin 0 0
[ 0.0115 ] RCM 0 is saved as rcm_0.rcm
[ 0.0126 ] RCM 1 is saved as rcm_1.rcm
[ 0.0133 ] List of rcm files are saved in rcm_list.xml
[ 0.0284 ]
[ 0.0297 ] Signing RCM messages
[ 0.0366 ] tegrasign --key None --list rcm_list.xml --pubkeyhash pub_key.key
[ 0.0396 ] Assuming zero filled SBK key
[ 0.0603 ]
[ 0.0619 ] Copying signature to RCM mesages
[ 0.0675 ] tegrarcm --chip 0x21 0 --updatesig rcm_list_signed.xml
[ 0.0824 ]
[ 0.0843 ] Boot Rom communication
[ 0.0879 ] tegrarcm --chip 0x21 0 --rcm rcm_list_signed.xml --skipuid
[ 0.0897 ] RCM version 0X210001
xx
klkjlkjlkjlkjlkj (<-- entering some random input here and hitting ENTER - nothing happens)
^CTraceback (most recent call last):
File “./tegraflash.py”, line 1296, in
tegraflash_run_commands()
File “./tegraflash.py”, line 1155, in tegraflash_run_commands
interpreter.onecmd(command)
File “/usr/lib/python3.6/cmd.py”, line 217, in onecmd
return func(arg)
File “./tegraflash.py”, line 785, in do_dump
tegraflash_dump(exports, args)
File “/home/biocodz/Linux_for_Tegra/bootloader/tegraflash_internal.py”, line 1360, in tegraflash_dump
tegraflash_send_tboot(tegrarcm_values[‘–signed_list’])
File “/home/biocodz/Linux_for_Tegra/bootloader/tegraflash_internal.py”, line 2463, in tegraflash_send_tboot
uidlog = run_command(command, True)
File “/home/biocodz/Linux_for_Tegra/bootloader/tegraflash_internal.py”, line 202, in run_command
log = print_process(process, enable_print)
File “/home/biocodz/Linux_for_Tegra/bootloader/tegraflash_internal.py”, line 161, in print_process
output = process.stdout.read(1)
KeyboardInterrupt
Reading board information failed.
The process is stuck (waiting for the input?). After trying some random input, and eventually interrupting, the process gives the error trace as shown above.
Trying to repeat the same command again:
sudo ./flash.sh jetson-nano-qspi external
###############################################################################
L4T BSP Information:
R32 , REVISION: 6.1
###############################################################################
Error: probing the target board failed.
Make sure the target board is connected through
USB port and is in recovery mode.
It doesn’t see the board even though it is still connected to the host and is visible.
Apparently I don’t understand what is supposed to happen when the root device is ‘external’.
Following instruction ‘#2’
sudo BOOTDEV=sdb1 ./flash.sh --no-flash jetson-nano-devkit sdb1
generates huge image file (14GB), so that I ran out of memory on my host VM, and on the way reports a load of errors, and eventually the JetsonNano gets disconnected from the host.
Is it possible to flash the USB SSD directly i.e. without generating the image file on the host machine?