Jetson Xavier Nx Not Booting

Thank you for the commands. If it boots, more than likely things are OK. Note that the update/upgrade itself may have broken things here and there because of broken dependencies. That’s to be expected, nature of the beast.

Those are good thoughts. Other than the boot function, the SD card is superflous. There’s some comfort in having a full system on the SD card, but probably isn’t that big of deal either way. You can always generate a new one in a bind, or have an extra.

I know that it was a lot of work changing the boot loaders, which eventually swapped UBoot for CBoot. Bootloaders are tricky, availability of different drivers during the boot sequence and such. I wouldn’t think CBoot has access to NVMe drivers. However, I think it is a good feature request to be able to boot from SSD on the Xaviers.

2 Likes

Well, I tried editing the extlinux.conf on the SD card and it did NOT go well. :(

TIMEOUT 10
PROMPT 1
DEFAULT ssd

MENU TITLE L4T boot options

LABEL sd
      MENU LABEL SD Card
      LINUX /boot/Image
      INITRD /boot/initrd
      APPEND ${cbootargs} quiet root=/dev/mmcblk0p1 rw rootwait rootfstype=ext4 console=ttyTCU0,115200n8 console=tty0 fbcon=map:0 net.ifnames=0

LABEL ssd
      MENU LABEL SSD
      LINUX /boot/Image
      INITRD /boot/initrd
      APPEND ${cbootargs} quiet root=/dev/nvme0n1p1 rw rootwait rootfstype=ext4 console=ttyTCU0,115200n8 console=tty0 fbcon=map:0 net.ifnames=0

Was thinking I’d get a nice startup menu that let me choose between the two options. Yeah, no. Ignores the prompt directive and just tries (and fails miserably) to boot the nvme0n1p1 partition. Not being a smart person, my only recourse was just to reflash the SD and start over. Not sure that the nvme partition is viable at the bootloader stage.

I get the following:

imx219 9-0010: imx219_board_setup: error during i2c read probe (-121)
imx219 9-0010: board setup failed
imx219 10-0010: imx219_board_setup: error during i2c read probe (-121)
imx219 10-0010: board setup failed
bash: cannot set terminal process group (-1): Inappropriate ioctl for device
bash: no job control in this shell

I get a blinky prompt that doesn’t take input from a USB keyboard.

FWIW, still not being a smart person, I again altered the extlinux.conf file on my fresh SD card same as above and just changed the default to sd and it boots fine. But still no nice startup menu to choose kernels. Tried again with the “primary” and “backup” labels thinking maybe they were reserved and “special.” Put the nvme drive as primary, and now I’m making a new SD card again. :p

I think it is a good feature request to be able to boot from SSD on the Xaviers

That would be my #1 request for Tegra devices as well. I have /usr, /home, /var/lib/docker and some other stuff on ssd, but the entire rootfs would be nice. There is a night and day difference between a quality ssd and even a good SD card / emmc.

2 Likes

Fan is still not working after using sudo jetson_clocks like before. The frequency goes up but fan doesn’t turn on fully.

Just to manage your expectations, the extlinux.conf file sets up a menu that is accessible only through the serial console, a port for debugging. In order to access the console, you have to connect to UART pins on the Xavier NX (the pins are located under the Xavier NX module). Typically people connect to the pins with a serial to UART cable, and then monitor the boot process on another computer via a terminal emulator.

When the Jetson is booting, there will be a slight pause and the menu will be presented. You have the opportunity to make a selection. If you do not make a selection, the menu times out and selects the option noted as DEFAULT.

At first glance, your entry looks correct, but that doesn’t mean anything of course. There are a variety of explanations, but I do not know what the correct answer is immediately. One guess would be that you have to edit the mount options on the SSD to ‘mount at startup’ but that’s just a guess.

For the fan issue.

A change was made in JP 4.4 to not forefully put the fan to max speed when someone does jetson_clocks. The fan speed will be controlled based on the temperature. Complete thermal spec. can be found in power management document

If you prefer old behavior of jetson_clocks, please use --fan option which sets max fan speed:

jetson_clocks --fan

For @pault45z6’s problem here.

I would suggest you could share the log from UART for us. Otherwise it is just guess but not debug.
And I don’t really think uboot supports nvme driver.

A change was made in JP 4.4 to not forefully put the fan to max speed when someone does jetson_clocks.

Thank you very much, @WayneWWW ! That was one of the reasons I had avoided using that command.

That was a new and exciting adventure. My first time doing UART debugging on one of these. Took me forever to figure out what to do, digging through spec sheets and completely messing up the crossover bit because I’m STILL not a smart person. Got it working and THEN I found your video on the Nano, which was obviously identical. Head slap.

Not much to go on. A successful SD boot log vs. the unsuccessful SSD boot log are identical up until it hangs. The successful boot continues, but the unsuccessful boot just stalls.

[0010.647] I> Kernel EP: 0x80080000, DTB: 0x90000000
[    0.000000] Booting Linux on physical CPU 0x0
[    0.000000] Linux version 4.9.140-tegra (buildbrain@mobile-u64-3357) (gcc version 7.3.1 20180425 [linaro-7.3-2018.05 revision d29120a424ecfbc167ef90065c0eeb7f91977701] (Linaro GCC 7.3-2018.05) ) #1 SMP PREEMPT Thu Jun 25 21:22:12 PDT 2020
[    0.000000] Boot CPU: AArch64 Processor [4e0f0040]
[    0.000000] OF: fdt:memory scan node memory, reg size 48,
[    0.000000] OF: fdt: - 80000000 ,  2c000000
[    0.000000] OF: fdt: - ac200000 ,  44600000
[    0.000000] OF: fdt: - 100000000 ,  180000000
[    0.000000] earlycon: tegra_comb_uart0 at MMIO32 0x000000000c168000 (options '')
[    0.000000] bootconsole [tegra_comb_uart0] enabled
[    0.000000] Found tegra_fbmem: 00800000@a069c000
[    0.000000] Found lut_mem: 00002008@a0696000
��WARNING: at platform/drivers/pg/pg-cv-t194.c:73
WARNING: at platform/drivers/pg/pg-cv-t194.c:73
WARNING: at platform/drivers/pg/pg-cv-t194.c:73
WARNING: at platform/drivers/pg/pg-cv-t194.c:73
WARNING: pll_d2 has no dyn ramp
WARNING: at platform/drivers/pg/pg-gpu-t194.c:185
WARNING: at platform/drivers/pg/pg-gpu-t194.c:185
WARNING: at platform/drivers/pg/pg-cv-t194.c:73
WARNING: at platform/drivers/pg/pg-cv-t194.c:73
��[    1.928847] imx219 9-0010: imx219_board_setup: error during i2c read probe (-121)
[    1.928894] imx219 9-0010: board setup failed
[    1.952799] imx219 10-0010: imx219_board_setup: error during i2c read probe (-121)
[    1.952843] imx219 10-0010: board setup failed

<<<<<< SSD BOOT STOPS HERE, SD CONTINUES AS FOLLOWS >>>>>>>>

[    4.255746] cgroup: cgroup2: unknown option "nsdelegate"
��WARNING: at platform/drivers/pg/pg-gpu-t194.c:185
WARNING: at platform/drivers/pg/pg-gpu-t194.c:185
��[    5.925295] random: crng init done

For fun I tried adding the SSD to /etc/fstab.

UUID=e76b9ac8-eae7-4c9c-93a4-7643f7e3a26f       /mnt/ssd      ext4     defaults    0    1

That didn’t work. At least not as above. And intuitively I don’t think it would since I think fstab is probably processed well after the bootloader. Is there another way to automount that I’m just not aware of?

I’m thinking it likely that @WayneWWW is right that the NVME driver might just not be supported by uboot. But hey, there’s still a hack and I’m learning a lot, so at least there’s that. ;)

Sorry… it seems I made a wrong comment here.

The actual boot process is not what I said.

The fact “Uboot does not support nvme driver” is still true. But this should not affect the mounting of nvme ssd, because the one responsible for mounting the rootfs is kernel. Once your kernel Image is read by Uboot, if kernel driver supports nvme, then it should be able to enumerate nvme ssd and use “root=” to read rootfs.

If this sounds not very clear to you, I’ve once conducted a test on jetson nano with usb drive to clarify this.

  1. We knew that the uboot on jetson nano is not able to run usb controller because “usb start” command returns nothing.
    -> it means uboot is definitely not able to read anything on usb drive.

  2. But we can still boot rootfs from usb drive.
    -> Back to check the uboot log in UART, I saw the uboot is reading kernel image from mmc0 which is emmc. After that, kernel is using its usb driver to load rootfs from usb.

Thus, in your case, uboot should also read kernel from other storage. If it is NX devkit, then it is also sdcard. Then, it should use the kernel driver to load nvme.

Theoretically it should work… I just got one nvme ssd card to test. Let me update the result to you later.

1 Like

Hi,

Confirmed we can mount the rootfs on nvme device.

Confirmed boot from NVME is working on Xavier-NX + r32.4.3.

I used PARTUUID steps and copy rootfs to NVME, flash with external device, confirmed it can boot success.

**dmesg:**

[    3.860965] Root device found: PARTUUID=25b67c3f-2307-46ab-a33f-66d1ef5ac9b4

[    4.409740] EXT4-fs (nvme0n1p1): mounted filesystem with ordered data mode. Opts: (null)

[    4.415352] Rootfs mounted over PARTUUID=25b67c3f-2307-46ab-a33f-66d1ef5ac9b4

[    4.431713] Switching from initrd to actual rootfs

 

**Check the disk:**

nvidia@nvidia-desktop:~$ df -h

Filesystem                Size    Used    Avail    Use%    Mounted on

/dev/nvme0n1p1   235G   4.8G     218G    3%        /
none                         3.5G     0          3.5G     0%         /dev
tmpfs                        3.8G   4.0K      3.8G     1%         /dev/shm
tmpfs                        3.8G    30M     3.8G     1%         /run
tmpfs                        5.0M   4.0K      5.0M    1%        /run/lock
tmpfs                        3.8G     0           3.8G     0%        /sys/fs/cgroup
tmpfs                        777M   96K      777M   1%        /run/user/1000
1 Like

Wayne
To boot from SD card installed on host… should host have USB cable to Xavier? Then open Terminal and apply the code you described? Can you illustrate this with Terminal log on Mac. Thank you.

Hi,

Please file a new topic. This is NX forum board but not Xavier.

I formatted SD card, launched balenaetcher, downloaded jetson-nx-developer-kit-sd-card-image.zip, when unzipped and uncompressed I got sd-blob.img, flashed that file to SD card; after flash finished successfully put the card into the Jetson Xavier NX. Connected Xavier with HDMI to my Samsung monitor connected to my host which is a Mac Pro. When I provided power to the Jetson Xavier board, there was no boot. Tried several times ALT-CTR=DEL…no boot! Have read through all what has been written under "Jetson Xavier NX not booting. None seemed to work or was sufficiently explained to allow me to solve this boot problem. For example: mount the APP partition…add the boot arg etc all globbydigook for beginners who do not understand what needs to be done. When will NVIDIA technicians start to provide concrete simple to understand instructions for solving this boot problem, which is clearly a problem of NVIDIA SD card image or software required to boot this board ? WHEN CAN WE EXPECT REAL SUPPORT ?

Hi guido54321,

Ok, please clam down.

What you really need to know is actually everyone’s cases are different so the solutions are different. That is why you think none of solutions can work on your case.

The scenario of this topic was originally

-> Some users’ boards cannot work after they OTA upgrade from older release to rel-32.4.3. Thus, we provide some fix then.

If your case is not OTA upgrade from older release to latest release, then your problem is different. None of the patches or methods here would work for your case.

Thus, I would suggest you can file a new topic and tag me there. I can help you check your problem.

Also, “there was no boot” is a ambiguous description. How do you know the system has no boot or maybe just the monitor is not compatible with your board?

Generally, we will dump the log from serial console to tell whether a board is really booting or not but not from the monitor.

Wayne
Understood, all cases are different, none of the scenarios I read would fix my problem. In my case I am not upgrading: started with a brand new Xavier board, downloaded the latest jetson-nx-developer-kit-sd-card-image.zip on NVIDIA web (but was surprised that when unzipped I ended up with a file called sb-log-img) How do I file a new topic and tag you? Your last point maybe the problem: I connected an HDMI cable from my Samsung Monitor to the Xavier, which means my Samsung monitor now is connected to my Mac Pro AND my Xavier. How do I turn it into a serial console and how do I get a dump of the log you may need to verify if the Xavier does or does not boot? Thanks for all your help.

Hi,

Just go to the NX forum board.

https://forums.developer.nvidia.com/c/agx-autonomous-machines/jetson-embedded-systems/jetson-xavier-nx/258

and click the button on the upper right to add a new topic.

As for tag, just like @guido54321.

As for the serial console, the “General debug” page I posted in previous comment has some tutorial. You can refer to the nano board case for NX.