Linux kernel error for 24.1

Hello all,

We recently got the Tegra X1 and for a start we wanted to replace the kernel and the rootfs with the binaries provided by NVIDIA, version 24.1. After following the instructions and flashing to the board, I get the following message:

tegra-xhci tegra-xhci: failed to init firmware from filesystem: tegra21x_xusb_firmware

I followed the fix on this post https://devtalk.nvidia.com/default/topic/787495/jetson-tk1/-solved-l4t-21-1-enable-usb-3-0-/post/4635204/#4635204 and still got the same issue.

Using a generic ubuntu file system for aarch64 the kernel boots, even though i didn’t test with the apply_binaries.sh script yet. I asssume the issue concerns the file system.

Am I missing something? From what I understand, just executing apply_binaries.sh should be enough.

The USB3 fix from the URL you gave is for a 32-bit Jetson TK1. The Jetson TX1 is already USB3 enabled.

Note that the Ubuntu/L4T sample rootfs is available in both 32-bit and 64-bit user space for a JTX1 L4T R24.1. The system would boot without the nVidia-specific files, but many parts of hardware would not be useful, e.g., video would be software framebuffer only and CUDA would not work. The “apply_binaries.sh” normally adds those nVidia-specific files into the rootfs of the driver flash software (the rootfs subdirectory…files can be manually unpacked into a running Jetson).

The kernel supplied with L4T (and its configuration) works with the dtb firmware at boot (the FDT key/value pair in the extlinux.conf file), and then with the “/lib/firmware” after boot…all four have to be matched…kernel source, kernel configuration, dtb firmware, and “/lib/firmware”. Additionally, apply_binaries.sh unpacks the the “kernel/kernel_supplements.tbz2” file into a modules directory, which means that any custom compiled kernel needs the CONFIG_LOCALVERSION to match or those kernel modules won’t be found…CONFIG_LOCALVERSION is part of configuration required to match, but is easily overlooked.

I fear I was not clear, I ran into the issue also with the provided binaries. I checked the rootfs after executing apply_binaries.sh and tegra21x_xusb_firmware is indeed in rootfs/lib/firmware/.

I do not know if it will be of any help, but here is the extlinux.conf:

TIMEOUT 30
DEFAULT primary

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

I also forgot to mention that after a while I get the following message on the UART:

[  602.093585] tegradc tegradc.1: blank - normal

On my R24.1 with 64-bit sample rootfs, this is the sha1sum of “/lib/firmware/tegra21x_xusb_firmware”:

root@tegra-ubuntu:/lib/firmware# sha1sum tegra21x_xusb_firmware 
3c6b2594643b68d7074a6ad6a02bb971872f4f2c  tegra21x_xusb_firmware

Does your sha1sum match? Your boot loader extlinux.conf is exactly what it should be, I don’t see any reason why it would fail based on that information. I don’t see anything like “tegradc tegradc.1: blank - normal” in my own system.