Installation from SD card to an SSD (without needing the SD card to boot afterwards)

I currently have my JetPack 5.1 (and ROS Noetic) installed on an SD card (Jetson Xavier NX Dev Kit). However, I need to transition my system installation from the SD card to an SSD whose reading/writing speeds allow me to record 1080P image data.

I would like to achieve this so that the SD card is not anymore needed for booting my Jetson. Is there a proper step-by-step guide to get me started?

Hi, lynxlynx,

Sorry, we don’t support moving whole rootfs from SD to SSD.
You may need to connect NVMe SSD and flash it as boot-device.
Flashing Support — Flashing to an NVMe Drive

After booting from NVMe SSD, you could move the packages, files, data from SD to SSD manually.

1 Like

All right, I try to flash the SSD using this guide: Install Jetson Software with SDK Manager :: NVIDIA SDK Manager Documentation

I try flashing JP5.1 to the SSD using Automatic Setup, but get error “Incorrect username or password”.

Trying SSH @192.168.55.1 gives “Permission denied”

Ok, I ended up abandoning the idea of Automatic Setup, since it seemed to be full of problems.

I took the way of Manual Setup instead. I short pins 9/10 on the butter header and Flash.

The Flashing process stops with the following error “Installation Failed” with “DateTime Target Setup - target: Depends on failed component” on the Terminal tab.

Any tips how to get past this problem? Attached are the full logs.

SDKM_logs_JetPack_5.1_(rev._1)_Linux_for_Jetson_Xavier_NX_modules_2023-04-25_16-32-32.zip (259.4 KB)

16:44:42.128 - info: NV_L4T_FLASH_JETSON_LINUX_COMP@JETSON_XAVIER_NX_TARGETS: ...Timeout
16:44:42.129 - info: NV_L4T_FLASH_JETSON_LINUX_COMP@JETSON_XAVIER_NX_TARGETS: Cleaning up...
16:44:42.173 - info: NV_L4T_FLASH_JETSON_LINUX_COMP@JETSON_XAVIER_NX_TARGETS: [ Component Install Finished with Error ]

It seems failed at Step3: Start the flashing process, please provide the serial console log at this moment for further check.

I would like to suggest you to use latest JP5.1.1(R35.3.1) to sychronize the status with us.

I updated to the newest SDK, and tried installing JP 5.1.1. Same happens.

(During the process, I got notifications “NVIDIA USB device (APX) was removed/added”. Tested with other micro-USB cables and still got these, so I assume this normal.)

The SDK terminal messages preceeding the Timeout:

11:37:49 INFO: Flash Jetson Linux - flash: [ 11.9090 ] tegrarcm_v2 --instance 1-1 --boot rcm
11:37:49 INFO: Flash Jetson Linux - flash: [ 11.9131 ] Applet version 01.00.0000
11:37:49 INFO: Flash Jetson Linux - flash: ***************************************
11:37:49 INFO: Flash Jetson Linux - flash: Waiting for target to boot-up…
11:37:50 INFO: Flash Jetson Linux - flash: Waiting for target to boot-up…
11:37:51 INFO: Flash Jetson Linux - flash: Waiting for target to boot-up…
11:37:53 INFO: Flash Jetson Linux - flash: Waiting for target to boot-up…
11:37:54 INFO: Flash Jetson Linux - flash: Waiting for target to boot-up…
11:37:55 INFO: Flash Jetson Linux - flash: Waiting for target to boot-up…
11:37:56 INFO: Flash Jetson Linux - flash: Waiting for target to boot-up…
11:37:57 INFO: Flash Jetson Linux - flash: Waiting for target to boot-up…
11:37:58 INFO: Flash Jetson Linux - flash: Waiting for target to boot-up…
11:38:01 INFO: Flash Jetson Linux - flash: Waiting for device to expose ssh …RTNETLINK answers: File exists
11:38:01 INFO: Flash Jetson Linux - flash: RTNETLINK answers: File exists

(same RTNETLINK message repeats…)

11:39:00 INFO: Flash Jetson Linux - flash: …RTNETLINK answers: File exists
11:39:00 INFO: Flash Jetson Linux - flash: RTNETLINK answers: File exists
11:39:01 INFO: Flash Jetson Linux - flash: …RTNETLINK answers: File exists
11:39:01 INFO: Flash Jetson Linux - flash: RTNETLINK answers: File exists
11:39:02 INFO: Flash Jetson Linux - flash: …RTNETLINK answers: File exists
11:39:02 INFO: Flash Jetson Linux - flash: RTNETLINK answers: File exists
11:39:03 INFO: Flash Jetson Linux - flash: …RTNETLINK answers: File exists
11:39:03 INFO: Flash Jetson Linux - flash: RTNETLINK answers: File exists
11:39:04 INFO: Flash Jetson Linux - flash: …RTNETLINK answers: File exists
11:39:04 INFO: Flash Jetson Linux - flash: RTNETLINK answers: File exists
11:39:06 INFO: Flash Jetson Linux - flash: …RTNETLINK answers: File exists
11:39:06 INFO: Flash Jetson Linux - flash: RTNETLINK answers: File exists
11:39:06 INFO: Flash Jetson Linux - flash: Cleaning up…
11:39:06 INFO: Flash Jetson Linux - flash: [ Component Install Finished with Error ]
11:39:06 ERROR: Flash Jetson Linux - flash: command terminated with error
11:39:06 SUMMARY: DateTime Target Setup - target: Depends on failed component

SDKM_logs_JetPack_5.1.1_(rev._1)_Linux_for_Jetson_Xavier_NX_modules_2023-04-26_11-20-27.zip (149.2 KB)

I need to check “serial console log” which output from serial port, not the flash log or SDKM log from host side.
You could refer the following instruction to capture on Xavier NX devkit.
Jetson Style - Serial Console - JetsonHacks

This will take time as I don’t have a TTL to USB converter available.

Meanwhile I could ask what exact instructions need to be followed for the SSD before flashing with the SDK, and could this have an effect to the installation failure?

I only have formatted the SSD to ext4, since I did not know which specific guide from here I should follow: Flashing Support — Jetson Linux<br/>Developer Guide 34.1 documentation

Sorry, serial console log is necessary to know what is going on for the board.
Most timeout issue in Step3 is caused from boot up issue of the board.

You could refer to the Linux_for_Tegra/tools/kernel_flash/README_initrd_flash.txt for detail usage of l4t_initrd_flash.sh.

It’s good to hear you format the SSD as ext4.

I tried to read the serial console using an Arduino Uno, but unfortunately I only get gibberish out of it.

Any recommendations on what hardware would provenly be able to read the serial console?

It should be a serial console cable with TXD/RXD/GND connected from the devkit to your host PC, please just refer to the instruction I provided before.

For future reference, a cheap Arduino copy with CH340 did not work for that purpose, but Elegoo Uno R3 did its job.

Here is the exported log files and latest serial dump:

SDKM_logs_JetPack_5.1.1_(rev._1)_Linux_for_Jetson_Xavier_NX_modules_2023-05-05_13-00-32.zip (138.8 KB)

13:10:05.007 → [ 7.000998] Root device found: initrd
13:10:05.007 → [ 7.002667] Mount initrd as rootfs and enter recovery mode
13:10:05.040 → enable_remote_access
13:10:05.040 → enable remote access
13:10:05.040 → insmod /lib/modules/5.10.104-tegra/kernel/drivers/mtd/mtd.ko
13:10:05.040 → insmod /lib/modules/5.10.104-tegra/kernel/drivers/mtd/devices/qspi_mtd.ko
13:10:05.040 → insmod /lib/modules/5.10.104-tegra/kernel/drivers/spi/spi-tegra210-qspi.ko
13:10:05.040 → [ 7.051816] tegra-qspi 3270000.spi: Adding to iommu group 2
13:10:05.074 → [ 7.058232] qspi_mtd spi6.0: s25fs256s SSG 8 0 1000 2000000
13:10:05.074 → [ 7.058405] qspi_mtd spi6.0: s25fs256s (32768 Kbytes)
13:10:05.074 → [ 7.058526] qspi_mtd spi6.0: mtd .name = spi6.0, .size = 0x2000000 (32MiB) .erasesize = 0x00010000 (64KiB) .numeraseregions = 0
13:10:05.074 → [ 7.074640] 1 fixed-partitions partitions found on MTD device spi6.0
13:10:05.074 → [ 7.074827] Creating 1 MTD partitions on “spi6.0”:
13:10:05.104 → [ 7.075015] 0x000000000000-0x000002000000 : “Whole_flash0”
13:10:05.104 → insmod /lib/modules/5.10.104-tegra/kernel/drivers/hwmon/pwm-fan.ko
13:10:05.104 → [ 7.126493] using random self ethernet address
13:10:05.104 → [ 7.126644] using random host ethernet address
13:10:05.104 → [ 7.137985] Mass Storage Function, version: 2009/09/11
13:10:05.136 → [ 7.138165] LUN: removable file: (no medium)
13:10:05.136 → [ 7.142692] LUN: removable file: (no medium)
13:10:05.136 → [ 7.147360] LUN: removable file: (no medium)
13:10:05.136 → [ 7.152122] LUN: removable file: (no medium)
13:10:05.136 → Add /dev/nvme0n1
13:10:05.136 → [ 7.161526] rndis0: HOST MAC 5a:53:7d:0c:6b:c1
13:10:05.136 → [ 7.161648] rndis0: MAC 12:cd:fa:5a:a5:7b
13:10:05.136 → [ 7.161941] tegra-xudc 3550000.xudc: EP 0 (type: ctrl, dir: out) enabled
13:10:05.528 → [ 7.547688] tegra-xudc 3550000.xudc: EP 5 (type: intr, dir: in) enabled
13:10:05.528 → [ 7.547868] tegra-xudc 3550000.xudc: EP 3 (type: bulk, dir: in) enabled
13:10:05.528 → [ 7.548020] tegra-xudc 3550000.xudc: EP 2 (type: bulk, dir: out) enabled
13:10:05.560 → [ 7.548291] tegra-xudc 3550000.xudc: EP 7 (type: bulk, dir: in) enabled
13:10:05.560 → [ 7.548304] IPv6: ADDRCONF(NETDEV_CHANGE): rndis0: link becomes ready
13:10:05.560 → [ 7.548462] tegra-xudc 3550000.xudc: EP 4 (type: bulk, dir: out) enabled
13:10:06.311 → [ 8.317357] tegra-xusb 3610000.xhci: entering ELPG done
13:10:06.672 → [ 8.687428] random: crng init done
13:10:06.704 → bash: cannot set terminal process group (-1): Inappropriate ioctl for device
13:10:06.704 → bash: no job control in this shell
13:10:06.704 → bash-5.0# [ 37.990168] vdd-1v8-sd: disabling
13:10:35.982 → [ 37.990282] vdd-3v3-cvb: disabling
13:10:35.982 → [ 37.990364] vdd-1v8-cvb: disabling
13:10:35.982 → [ 37.990445] vdd-epb-1v0: disabling
13:10:35.982 → [ 37.990547] vdd-fan: disabling
13:10:35.982 → [ 37.990624] vdd_sys_en: disabling

Can you determine the reason of installation failure based on this?

Could you help to provide the full serial cosole log as file here?

Here is the full serial console log together with the SDK logs.

SDKM_logs_JetPack_5.1.1_(rev._1)_Linux_for_Jetson_Xavier_NX_modules_2023-05-08_10-12-41.zip (138.7 KB)
putty.log (68.8 KB)

[    6.831576] Root device found: initrd
..
bash: no job control in this shell

It seems your board entering into recovery boot, which would be caused from several boot failed.

Could you help to provide the full serial console log during flash the board?
The log you just provided seems too late to find the boot fail issue.

The serial log I provided includes everything from booting my Jetson to the failing of the flashing process initiated from the SDK.

I do not know what else I could still provide, since that is the full serial log.

What I want to check is the serial console log during the flash.

This period is too late to check the issue.

Ok, sorry for my bad. I did the process in a hurry and apparently forgot to insert the SD card back, so it apparently didn’t even start flashing then.

I tried again and got the following error in the SDK terminal: “Flash Jetson Linux - flash: First Error: Installation failed.”

I will provide new serial console logs corresponding to this by tomorrow.

putty-2023-5-9.txt (82.3 KB)
SDKM_logs_JetPack_5.1_(rev._1)_Linux_for_Jetson_Xavier_NX_modules_2023-05-09_20-27-46.zip (179.9 KB)
I hope the attached serial console log helps to get us further.

(If this is still “too late to check the issue”, I would really need an inambiguous explanation on what steps to take next, since I am taking all that the serial console prints before and after the phase: “SDK Manager opens a dialog when it is ready to flash your target device. A prompt provides instructions for preparing your device to get it ready for flashing.” and cannot understand if I do something fundemantally different than what you ask me to do. I believe what I am doing is indeed flashing the device, since the SDK is telling me so.)

[   23.195174] Root device found: initrd
[   23.196864] Mount initrd as rootfs and enter recovery mode

It seems the similar message as before…

Do you connect SD card on the Xavier NX devkit at this moment?

Have you tried to use initrd script to flash the board instead of SDKM?