I’m using a Jetson Orin NX (16GB) with kernel version 5.10 and Tegra version 35.3.1. I’ve successfully added some drivers and build kernel following the steps as per documentation Kernel Customization — Jetson Linux Developer Guide documentation .
Before flashing I replaced the files nvgpu.ko, DTS files, and Image as per the instructions in the Kernel Customization document.
flashing this customized kernel to my Jetson Orin NX using the command:
the flashing process was successful. However, when I check kerusing lsmod, I do not see the added driver. Could you please advise how I can ensure that all the drivers I’ve added to the kernel are properly reflected after flashing?
If you have a dev kit without eMMC, then QSPI flash is correct, but you need QSPI which is compatible with the release of content going onto the SD card. One QSPI flash is valid for a number of SD card releases, but not between major releases (e.g., an SD card for 35.x can work with most any 35.x QSPI flash, although the most recent is advised; an SD card for 36.x cannot work with any R35.x QSPI flash). No R32.x was ever made for Orin.
Incidentally, if you use a kernel config which is otherwise an exact match for the running kernel, including a matching CONFIG_LOCALVERSION, and if you are only adding modules, then you just have to copy the file in place and run “sudo depmod -a”. There is no need to flash.
One exception is that if the module is required for boot, then it must also go into the initrd.
Can I verify that the model you have does or does not have eMMC? I’m assuming probably no eMMC, which means QSPI matters. If this does have eMMC, then procedures differ. One can also observe if the SD card slot is on the carrier board, or if the SD card slot is on the module itself.
We are using our custom carrier board, which does not have an EEPROM or an SD card slot. we are using an SSD, much similar to the Jetson orin NX DevKit.
The commercial modules which are sold separately always have eMMC. The particular software used might differ, but much of the procedure you might find for an eMMC model will apply (after using your kernel and custom device tree).
When you boot, what result do you get from “uname -r”?
What do you see from (you might need to first “sudo apt-get install tree”):