I agree. To much hassle with this. Comparing how raspberry made easy transition from SD to USB boot. At the moment it has just put me off doing that, eventhough I had bought SSDs just for that.
@DicksonChow, IMX477 kernel drivers are built into the kernel. But you will need to create a payload for JP 4.5 by followig the instrucitons inside https://developer.nvidia.com/rpi-imx477-support-nano-2gb and follow the instrucitons on enabling IMX477.
With JP 4.4 we released the pre-built payload. We will be doing the same for JP 4.5 in next few days. But in the meantime, you can follow the inturctions in the readme to generate the payload.
@mdegans , IMX477 kernel drivers are built into the kernel. But you will need to create a payload for JP 4.5 by followig the instrucitons inside https://developer.nvidia.com/rpi-imx477-support-nano-2gb and follow the instrucitons on enabling IMX477.
With JP 4.4 we released the pre-built payload. We will be doing the same for JP 4.5 in next few days. But in the meantime, you can follow the inturctions in the readme to generate the payload.
Welcome, dragoslav!
Yes, in R32.5, weāve made some changes to the Nano names/directories. Weāve dropped āporgā completely, so the board files are under board/nvidia/p3450-0000, the defconfig is p3450-0000_defconfig, the DTB is now tegra210-p3450-0000.dts, the U-Boot prompt is now #Tegra210 (P3450-0000), etc.
This is to better align w/the upstream (Denx) U-Boot Nano changes. Weāve also updated/rebased to the v2020.04 upstream U-Boot build in R32.5, so weāve picked up NVMe support, EFI boot, etc. But basic Nano (and TX1, TX2) functionality should remain the same.
Tom
Thanks @suhash
Is that only for 2GB model? My client needs IMX477 for 4Gb model and NX (for arducam IMX477).
Right now weāre generating a system image withs some scripts to apply RidgeRunās patches, build the rootfs, kernel, and run jetson-disk-image-creator.sh
. It works great, but is a lot of maintanince to follow every JetPack release.
Any ETA for IMX477 support to ājust workā out of the box for all models?
@mdegans , yes its only for 2GB. We are looking into for JP 4.6 to support IMX477 on other Jetsons.
Thanks for the update, @suhash !
@ronzelver, yes thats right it needs a ā/ā behind ātmp_systemā. Thanks and we will be correcting it soon.
And you are right that all the instructions need to be executed on the host.
nano(with emmc) Model P3448 A02 how to select conf file when it is flashed? jetson-nano-emmc or jetson-nano-devkit-emmc.conf.
I get a error when clone system.img
Error: Return value 8
by this command
sudo ./flash.sh -r -k APP -G ./bootloader/system.img jetson-nano-emmc mmcblk0p1
Thank you @TWarren!
I managed to change ātegra-pinmux-scriptsā (change p3450-porg with p3450-0000) and to finish the process of image creation (UBoot and kernel compile). I hope the test will pass with the newly generated image. :)
@suhash, I followed all the steps (including the missing ā/ā) and created the USB boot device, but still the Nano wouldnāt boot from it. When I remove the SD card, the Nano shows the boot screen with the āSD card missingā icon on the upper right so I assume that the right firmware is loaded on the Nano?! Is there anything else I could check?
Strange! for me USB-Boot works only when I unplug keyboard and mouse during bootā¦
@ronzelver , may i ask if you are using a Nano is 2GB or 4GB and if 4GB, whether it is A02 or B01 rev. Also may i ask how you are powering the board, whether through microUSB or barrell jack.
We will get back to you on this.
Iām using the original A02 development kit, powered by a 4A barrel power supply.
Update:
I have connected a terminal to the debug console (J44) and apparently it cannot detect my Samsung T5 SSD as storage device?!?
/*** start debug logging ***/
Model: NVIDIA Jetson Nano Developer Kit
Board: NVIDIA P3450-0000
DRAM: 4 GiB
MMC: sdhci@700b0000: 1, sdhci@700b0600: 0
Loading Environment from SPI Flash⦠SF: Detected mx25u3235f with page size 256 Bytes, erase size 4 KiB, total 4 MiB
*** Warning - bad CRC, using default environment
In: serial
Out: serial
Err: serial
Net: No ethernet found.
Hit any key to stop autoboot: 0
MMC: no card present
Card did not respond to voltage select!
starting USBā¦
Bus usb@7d000000: tegrausb: Invalid dr_mode 2 for host mode
probe failed, error -1
Bus xusb@70090000:
Firmware size 124416
Firmware timestamp: 0x5da88fc3, Version: 50.25 release
Register HCSParams1: 9000124 NbrPorts: 9
Starting the controller
USB XHCI 1.00
scanning bus xusb@70090000 for devices⦠4 USB Device(s) found
scanning usb for storage devices⦠0 Storage Device(s) found
Device 0: unknown device
Device 0: unknown device
Warning: eth_rtl8169 using MAC address from ROM
BOOTP broadcast 1
BOOTP broadcast 2
/*** end debug logging ***/
This Samsung SSD has previously worked just fine with JetPack 4.2 (with JetsonHacks method).
Update:
Iāve tried another USB Drive (WD 250GB HDD) and this one is also not recognised as storage device. When I plug in USB thumb drive it is being recognised as storage device?! Is this maybe related to USB power requirements/budget? However, this only something during the boot process, once the system is booted from SD-card, the USB drives are recognised and accessible.
/*** kernel log /
[ 89.121190] scsi 0:0:0:0: Direct-Access Samsung Portable SSD T5 0 PQ: 0 ANSI: 6
[ 89.164407] sd 0:0:0:0: [sda] 976773168 512-byte logical blocks: (500 GB/466 GiB)
[ 89.173403] sd 0:0:0:0: [sda] Write Protect is off
[ 89.178942] sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesnāt support DPO or FUA
[ 89.199631] sd 0:0:0:0: [sda] Attached SCSI disk
/ end kernel log ***/
Good to hear. But I should have mentioned that in R32.5 U-Boot, weāve also dropped the need for the pinmux config tables in all T210 builds (TX1, Nano, Nano2GB). Pinmuxing (and GPIO init) is now done completely by CBoot, based off of the DTB, so U-Boot doesnāt need to do it. You should note that the pinmux-config-*.h files are gone in board/nvidia/p2371-2180, etc. and the pinmux_init() function has been removed from the board files. So thereās no longer any need to generate a pinmux-config-*.h table using the pinmux scripts for R32.5 builds of U-Boot. They can still be used to re-gen the DTSI files for the kernel DTB, if needed.
Good luck,
Tom
Thanks for the update @TWarren!
Is there some new guide for this whole process, how it should be done for R32.5?
Can you stop in U-Boot (press any key on your console app during boot to get to the U-Boot prompt) and run some āusbā commands for me? Capture the output to a log file for posting here:
pci enum
usb start
usb tree
usb storage
Also, please try the above commands with only the USB drive connected (no keyboard or mouse). And, if you have any handy, please connect a normal USB flash drive/stick to see if it gets detected as a storage device.
Iāve tested the Samsung T5 drive and it was working during R32.5 release testing, but I never booted it (it was detected just fine). And that was on a newer B00 Nano & Nano2GB and, IIRC, on a TX1. Iāll have to find it & format it for boot & retest with the R32.5 release. But I tested over 3 dozen various USB sticks, flash drives, and HDDs/SSDs and didnāt find one that couldnāt be detected, at least, and I booted over 2/3rds of them. If U-Boot can detect a USB storage device, and it has a ext filesystem and an extlinux.conf file, it should at least attempt to boot it.
Letās look at your logs of the āusbā commands in U-Boot and see if we can figure out whatās happening here.
Tom
@TWarren, here is the output from the commands:
/**** start ****/
In: serial
Out: serial
Err: serial
Net: No ethernet found.
Hit any key to stop autoboot: 0
Tegra210 (P3450-0000) # pci enum
Tegra210 (P3450-0000) # usb start
starting USBā¦
Bus usb@7d000000: tegrausb: Invalid dr_mode 2 for host mode
probe failed, error -1
Bus xusb@70090000:
Firmware size 124416
Firmware timestamp: 0x5da88fc3, Version: 50.25 release
Register HCSParams1: 9000124 NbrPorts: 9
Starting the controller
USB XHCI 1.00
scanning bus xusb@70090000 for devices⦠5 USB Device(s) found
scanning usb for storage devices⦠1 Storage Device(s) found
Tegra210 (P3450-0000) # usb tree
USB device tree:
1 Hub (5 Gb/s, 0mA)
| U-Boot XHCI Host Controller
|
±2 (12 Mb/s, 100mA)
|
±3 Hub (5 Gb/s, 0mA)
| Generic 4-Port USB 3.1 Hub
|
±4 Hub (480 Mb/s, 0mA)
| Generic 4-Port USB 2.1 Hub
|
±5 Mass Storage (480 Mb/s, 500mA)
Samsung Portable SSD T5 1234567D05F8
Tegra210 (P3450-0000) # usb storage
Device 0: Vendor: Samsung Rev: 0 Prod: Portable SSD T5
Type: Hard Disk
Capacity: 476940.0 MB = 465.7 GB (976773168 x 512)
Tegra210 (P3450-0000) #
/*** end ***/
Apparently itās being detected here?!
Ron,
Youāll need both TX & RX hooked up for your UART adapter, obviously. But beyond that I donāt know why it wouldnāt respond to input from your comm program. I use minicom, 115200 8N1, and HW & SW flow control are off (āNoā).
If you let it boot all the way to the kernel (from SD, etc.), can you interact via the comm program there? i.e. run kernel commands like ls, pwd, etc.?
Maybe someone else here can chime in w/comms help.
Tom
Iāll make a note for our support engineers to update the R32.5+ docs about removing the pinmux script info for U-Boot. But the update really is only that you donāt need to use the pinmux scripts & add a pinmux-config header file for U-Boot rebuild, nothing else has changed WRT the pinmux info.