I recently purchased the NVIDIA Jetson Nano DEV LITE board from Waveshare. According to the documentation, it includes both eMMC memory and an SD card slot. The board defaults to booting from the 16GB eMMC, but I want to boot from the SD card instead.
I followed a method to enable USB boot by executing a file that configures the board to boot from the USB port. The board initially booted from the eMMC, but after a reboot and attempting to use a USB drive containing Ubuntu OS, I encountered the following errors:
bash-4.4
1.192873] tegradc tegradc.1: dpd enable lookup fail:-19
1.3917961 imx219 2-0010: imx219_board_setup: error during 12c read probe (-121)
1.391922] imx219 7-0010: board setup failed
1.4161891 inx219 8-0010: inx219_board_setup: error during 12c read probe (-121)
1.416264] imx219 8-0010: board setup failed mount:
mt: wrong fs type, bad option, bad superblock on /de/sda2, missing codepage or helper program, or other error.
bash: cannot set terminal process group (-1): Inappropriate ioctl for device bash: no job control in this shell bash-4.4#
Could anyone guide me on how to resolve this issue?
Thank you!
Your waveshare card having both SD and EMMC likely requires a special device-tree from Waveshare since Nvidia carrier boards only support EMMC -or- SD card and not both. So you will have better luck flashing the EMMC version of the Jetson software (which will not see the SD card), and using external USB if you want more room. Enabling the SD card on the EMMC build likely requires the custom device-tree.
Assuming the CSI (raspberry-pi) cameras are not connected, you can ignore the warnings about imx219.
The ‘bad superblock on /de/sda2’ error indicates that you either mis-typed the name of the device in this forum, or you mis-typed the device when you ran whatever script you ran … It should say “bad superblock on /dev/sda2” – there should be a ‘v’ for the “Device” folder.
Best idea is:
Have a serial-terminal on the UART pins of your board – that way you can see the BOOT process as it progresses.
Then ADD an entry to /boot/extlinux/extlinux.conf file with your proposed configuration.
On the first few lines of that file is a DEFAULT – set it to the ORIGINAL entry
Make sure it still boots as normal. Then reset it
U-boot will display a MENU during boot time from the extlinux.conf file – choose your NEW option to try.
I assume you were using jetsonhacks stuff. His explanations are great.
Long answer: The Tegra chip ALWAYS boots from the onboard QSPI flash. This contains the stage 1 bootloader, that loads the rest of the firmware code. This code ALWAYS resides on the on-module NAND flash. Production modules use EMMC for this. The modules supplied with devkits have an uSD slot instead, and ONLY these modules can have their main firmware on an SD card. The normal “production” modules can not.
The main firmware then loads extlinux.conf, which loads kernel, initrd, dtb, which boots the linux system.
extlinux.conf is the place for switching to another root file system. But you will always use the on-module flash for the first stages.