This is correct. Keep in mind though that if you read docs on kernel builds you’ll see an option to set an alternative build and output directory…this is recommended versus having modules or kernel install directly to their end destinations (and in fact I doubt direct install of the main kernel Image would even work since the boot logic differs for Jetsons versus other platforms). Just build as normal and then install to alternate location…followed by copy of specific files you are interested in.
When you see references in kernel build documentation of “O=/some/where” (or setting environment variable “TEGRA_KERNEL_OUT” and then “O=$TEGRA_KERNEL_OUT”) you are specifying a clean output location. Similar for “TEGRA_MODULES_OUT” being set to an alternate directory and seeing “INSTALL_MOD_PATH=$TEGRA_MODULES_OUT”.
Typical commands if you’ve set those environment variables and have placed your desired “.config” in “$TEGRA_KERNEL_OUT” (likely a copy of “/proc/config.gz” which is decompressed and has had “CONFIG_LOCALVERSION” edited) and are compiling natively on the Jetson:
sudo nvpmodel -m 0
make -j6 O=$TEGRA_KERNEL_OUT Image
make -j6 O=$TEGRA_KERNEL_OUT modules
make O=$TEGRA_KERNEL_OUT modules_install INSTALL_MOD_PATH=$TEGRA_MODULES_OUT
Note that after this you could cd to $TEGRA_KERNEL_OUT and “find . -name Image” to get the kernel image. An entire tree of modules will be found under a subdirectory of “$TEGRA_MODULES_OUT”. Then you can pick what you want to copy.
NOTE: Be careful if you copy all modules recursively…you want to remove those sym links first because otherwise it’ll copy your entire kernel source tree…you can add sym links back in later if you want.