Hi all,
My Jetson Nano fails booting from USB devices.
I plan to change the USB cable between Jetson Nano and SSD, but it probably fails.
Currently, I have no idea how to solve this issue…
Is there any suggestion about this issue?
- Jetson Nano B01 (4GB)
- Moudle: P3448-0000 (jetson-nano-devkit)
- Carrier Board: B01
- Power Supply: 5V 4A, place a jumper on the power select header (J48)
- A small fan is connected the fan header (J15)
- Power/Reset buttons are connected to the button header, auto-on disabled
- USB-Serial converter is connected to UART on the button header
- USB Mirco B (J28) is connected to a usb hub which is connected to a host machine
- LAN cable is connected
- HDMI/DisplayPort is not connected
- JetPack 4.5.1
- NVIDIA SDK Manager 1.5
- Bootloaders have been updated in the first boot from the sdcard
I tried the following procedures, but none of them succeeded booting:
- Changing USB port to use
- Changing USB device
- USB 3.2 Gen2 SSD (SSD-PK960U3, KIOXIA) (no English page at this point)
- USB SATA adapter (BENFEI USB 3.0-SATA, JMicron) + HDD/1TB
- Disabling UAS by adding a parameter like
usb-storage.quirks=0x152d:0x0578:u
- Changing the way to build root filesystem on USB device
-
Flashing on a host machine as described in NVIDIA Jetson Linux Developer Guide - Flashing to a USB Drive
-
Directly copying from the sdcard to the USB device by running the following commands on Jetson Nano:
sudo mount /dev/sda1 /mnt sudo rsync -axHAWX --numeric-ids --info=progress2 --exclude={'/dev','/lost+found','/media','/mnt','/proc','/run','/sys','/tmp'} / /mnt/ sudo mkdir -p /mnt/dev /mnt/media /mnt/mnt /mnt/proc /mnt/run /mnt/sys /mnt/tmp sudo nano /mnt/boot/extlinux/extlinux.conf # changes the `root` parameter
-
- Re-Flashing bootloaders using SDK manager
- Install Jetson Software with SDK Manager :: NVIDIA SDK Manager Documentation
- Performed on Ubuntu 18.04 running on VirtualBox
- Booting from the sdcard, then mounting the USB device as the root filesystem
- Changing the
root
parameter in/boot/extlinux/extlinux.conf
in the sdcard
- Changing the
Boot logs captured on the serial console are listed below:
- boot succeeded
- 20210510-jetson-nano-sdcard-boot.log (21.3 KB)
- boot failed
- 20210510-jetson-nano-usb-ssd-boot.log (35.1 KB)
- 20210511-jetson-nano-usb-hdd-boot.log (29.2 KB)
- 20210510-jetson-nano-sdcard-boot-usb-rootfs.log (30.1 KB)
From logs:
- U-Boot can read data (
/boot/extlinux/extlinux.conf
,/boot/initrd
and/boot/Image
) successfully from the USB device- Probably, it loads
tegra21x_xusb_firmware
from somewhere because the firmware size is same as/lib/firmware/tegra21x_xusb_firmware
- Probably, it loads
- In the kernel boot sequence, some kind of error occurs depending on situations
-
usb 2-1.4: cmd cmplt err -71
where-71
meansEPROTO
tegra-xusb 70090000.xusb: ERROR Transfer event for disabled endpoint or incorrect stream ring
blk_update_request: I/O error, dev sda, sector XXXXXX
FAT-fs (loop0): Volume was not properly unmounted. Some data may be corrupt. Please run fsck.
EXT4-fs error (device sda1): ext4_wait_block_bitmap:523: ...
- and so on…
- All errors seem to be related to the USB device
-
I confirmed that USB devices work properly with Jetson Nano when booting from the sdcard.
I can mount USB devices successfully.
I appreciate your help.