I am using Jetson Orin Nano (JetPack 6.1, Ubuntu 22.04) for robot development, and I need to connect the robot chassis through USB-CAN. However, when I tried to enable the gs_usb
kernel module by running sudo modprobe gs_usb
, I encountered the following error:
“modprobe: FATAL: Module gs_usb not found in directory /lib/modules/5.15.122-tegra”.
I found a solution on the NVIDIA forum, which suggests rebuilding a custom kernel. Therefore, I started rebuilding the kernel with support for gs_usb
. Following the steps in the developer guide, I proceeded to the step where I need to update the initramfs by running the following commands:
$ cd /Linux_for_Tegra
$ sudo ./tools/l4t_update_initrd.sh
However, an error occurred, and the output is as follows:
~/nvidia/nvidia_sdk/JetPack_6.1_Linux_JETSON_ORIN_NANO_TARGETS/Linux_for_Tegra$ sudo ./tools/l4t_update_initrd.sh
Set LDK_DIR to /home/user/nvidia/nvidia_sdk/JetPack_6.1_Linux_JETSON_ORIN_NANO_TARGETS/Linux_for_Tegra
Using rootfs directory: /home/user/nvidia/nvidia_sdk/JetPack_6.1_Linux_JETSON_ORIN_NANO_TARGETS/Linux_for_Tegra/rootfs
Updating the initrd: /home/user/nvidia/nvidia_sdk/JetPack_6.1_Linux_JETSON_ORIN_NANO_TARGETS/Linux_for_Tegra/bootloader/l4t_initrd.img
Copy /home/user/nvidia/nvidia_sdk/JetPack_6.1_Linux_JETSON_ORIN_NANO_TARGETS/Linux_for_Tegra/bootloader/l4t_initrd.img to /home/user/nvidia/nvidia_sdk/JetPack_6.1_Linux_JETSON_ORIN_NANO_TARGETS/Linux_for_Tegra/rootfs/boot/initrd
Preparing virtual env
Include /etc/nv-update-initrd/list.d/binlist
Include /etc/nv-update-initrd/list.d/modules
nv-update-initrd: Updating /boot/initrd from /etc/nv-update-initrd/list.d for kernel version 5.15.122-rt-tegra…
Add /usr/sbin/nvluks-srv-app
Error: /lib/modules/5.15.122-rt-tegra/updates/drivers/net/ethernet/nvidia/nvethernet/nvethernet.ko not found
Cleaning up the temporary directory for updating the initrd…
ERROR: nv-update-initrd failed!
Cleaning up virtual env
What should I do?
Hi 929842867,
Are you using the devkit or custom board for Orin Nano?
5.15.122 seems not from JP6.1(R36.4.0).
Please share the result of cat /etc/nv_tegra_release
for further check.
Do you refer to the steps in Kernel Customization — NVIDIA Jetson Linux Developer Guide 1 documentation to build kernel and apply the change?
Do you configure CONFIG_CAN_GS_USB as y
or m
in kernel config?
Hello, thank you for your help.
I am using a Jetson Orin Nano 8GB, but I am not sure if version 5.15.122 comes from JP6.1 (R36.4.0). I was just following a method I found on the forums.
Yesterday, I skipped the step:
$ sudo ./tools/l4t_update_initrd.sh
and attempted flashing using the following command:
Jetson Orin Nano Developer Kit (NVMe):
$ sudo ./tools/kernel_flash/l4t_initrd_flash.sh --external-device nvme0n1p1
-c tools/kernel_flash/flash_l4t_t234_nvme.xml -p “-c bootloader/generic/cfg/flash_t234_qspi.xml”
–showlogs --network usb0 jetson-orin-nano-devkit internal
However, during the process, the Jetson Orin Nano booted up but failed at the following step:
/home/user/nvidia/nvidia_sdk/JetPack_6.1_Linux_JETSON_ORIN_NANO_TARGETS/Linux_for_Tegra
Step 3: Start the flashing process
Waiting for target to boot-up…
Waiting for target to boot-up…
Waiting for target to boot-up…
… …
Waiting for target to boot-up…
Waiting for target to boot-up…
Timeout
Device failed to boot to the initrd flash kernel. Please retrive the serial log during flashing to debug further.
Cleaning up…
Is the step sudo ./tools/l4t_update_initrd.sh
mandatory? How should I proceed with the flashing process? Thank you for your help.
Sorry, I just confirmed that my error output is: modprobe: FATAL: Module gs_usb not found in directory /lib/modules/5.15.136-tegra
. not 5.15.122-tegra,5.15.122-tegra is the version mentioned by someone in another forum thread with a similar issue to mine. I forgot to change it when copying.
For this timeout issue, please check the full serial console log to check where it gets stuck during boot.
Do you enable related kernel config like CONFIG_CAN_GS_USB
?
Thank you for your reply。
How can I check the serial console log?
I referred to this solution (https://forums.developer.nvidia.com/t/missing-gs-usb-kernel-module-for-jetpack-6/275287/7)
and added the following configurations to the current defconfig file:
CONFIG_INPUT_UINPUT=y
CONFIG_INPUT_JOYDEV=y
CONFIG_CAN_GS_USB=y
CONFIG_CAN_USB=y
CONFIG_USB_GADGET=y