This is an extension of a post from https://devtalk.nvidia.com/default/topic/923800/jetson-tx1/boot-from-sd-card/
A few months back I was able to successfully boot Jetson TX1 with an SD card. Recently I had to boot from SD card again so I followed the instructions from the previous post but this time using the most recent version.
However I get this error:
tegra-xhci tegra-xhci: failed to init firmware from filesystem tegra21x_xusb_firmware
I am not sure why this is happening. I’ll copy the instructions from the previous post for convenience:
-
Make sure that your SD card is inserted, formatted with ext4 file system and is not currently mounted.
-
Download the driver toolkit and the sample file system from https://developer.nvidia.com/embedded/linux-tegra
-
Extract the downloaded files, mount the SD card and extract the sample file system to it.
$ sudo tar xvpf Tegra210_Linux_R23.2.0_armhf.tbz2
$ sudo mount /dev/mmcblk1p1 Linux_for_Tegra/rootfs
$ cd Linux_for_Tegra/rootfs
$ sudo tar xvpf ../../Tegra_Linux_Sample-Root-Filesystem_R23.2.0_armhf.tbz2
- Run apply_binaries.sh:
$ cd ..
$ sudo ./apply_binaries.sh
- On your Jetson TX1, open up /boot/extlinux/extlinux.conf in a text editor and add an entry to it pointing to the installation on the SD card. Mine looks as follows:
TIMEOUT 30
DEFAULT sdcard
MENU TITLE p2371-2180 eMMC boot options
LABEL primary
MENU LABEL primary kernel
LINUX /boot/Image
FDT /boot/tegra210-jetson-tx1-p2597-2180-a01-devkit.dtb
APPEND fbcon=map:0 console=tty0 console=ttyS0,115200n8 androidboot.modem=none androidboot.serialno=P2180A00P00940c003fd androidboot.security=non-secure tegraid=21.1.2.0.0 ddr_die=2048M@2048M ddr_die=2048M@4096M section=256M memtype=0 vpr_resize usb_port_owner_info=0 lane_owner_info=0 emc_max_dvfs=0 touch_id=0@63 video=tegrafb no_console_suspend=1 debug_uartport=lsport,0 earlyprintk=uart8250-32bit,0x70006000 maxcpus=4 usbcore.old_scheme_first=1 lp0_vec=${lp0_vec} nvdumper_reserved=${nvdumper_reserved} core_edp_mv=1125 core_edp_ma=4000 gpt android.kerneltype=normal androidboot.touch_vendor_id=0 androidboot.touch_panel_id=63 androidboot.touch_feature=0 androidboot.bootreason=pmc:software_reset,pmic:0x0 root=/dev/mmcblk0p1 rw rootwait
LABEL sdcard
MENU LABEL sdcard kernel
LINUX /boot/Image
FDT /boot/tegra210-jetson-tx1-p2597-2180-a01-devkit.dtb
APPEND fbcon=map:0 console=tty0 console=ttyS0,115200n8 androidboot.modem=none androidboot.serialno=P2180A00P00940c003fd androidboot.security=non-secure tegraid=21.1.2.0.0 ddr_die=2048M@2048M ddr_die=2048M@4096M section=256M memtype=0 vpr_resize usb_port_owner_info=0 lane_owner_info=0 emc_max_dvfs=0 touch_id=0@63 video=tegrafb no_console_suspend=1 debug_uartport=lsport,0 earlyprintk=uart8250-32bit,0x70006000 maxcpus=4 usbcore.old_scheme_first=1 lp0_vec=${lp0_vec} nvdumper_reserved=${nvdumper_reserved} core_edp_mv=1125 core_edp_ma=4000 gpt android.kerneltype=normal androidboot.touch_vendor_id=0 androidboot.touch_panel_id=63 androidboot.touch_feature=0 androidboot.bootreason=pmc:software_reset,pmic:0x0 root=/dev/mmcblk1p1 rw rootwait
Note how the sdcard entry is set to default.
Save the config file and reboot your Jetson. It should now load into the L4T installation on your SD card.
You could choose which OS to boot via the serial console.