Cannot find Kernel files in

I have an Orin Nano 8GB with

R36 (release), REVISION: 4.3, GCID: 38968081, BOARD: generic, EABI: aarch64, DATE: Wed Jan 8 01:49:37 UTC 2025, and I’m trying to install the kernel source.

After downloading it from Jetson Linux Archive | NVIDIA Developer R36.4.3, when looking into
~/nvidia_src/Linux_for_Tegra/source/Kernel/kernel_jammy_src/arch/arm64/boot/dts/nvidia/ I cannot find my kernel files:
tegra234-p3767-0000.dtsi
tegra234-p3767-0005.dtsi
tegra234-p3768-0000.dtsi
tegra234-p3768-0000+p3767-0000.dts
tegra234-p3768-0000+p3767-0005.dts

What I’m doing wrong?

Thanks!

For reference for other people reading this (I’m trying to be a bit general), the L4T release (which you show as R36.4.3) is just Ubuntu plus NVIDIA drivers. The list of software and docs for a given L4T release is here:
https://developer.nvidia.com/linux-tegra

Your specific case:
https://developer.nvidia.com/embedded/jetson-linux-r3643

Within this you will see one source download for the sample root filesystem, which is the Ubuntu software without NVIDIA drivers. The other source is a package containing packages, and has what you are after:
Driver Package (BSP) Sources

This produces file public_sources.tbz2. To see a list of all tar packages within the main tar package:
tar --list -f public_sources.tbz2

To filter for just the kernel software, including out-of-tree:
tar --list -f public_sources.tbz2 | egrep -i kernel

Now let’s say you want just the kernel source itself, which is what most people will want; this is file kernel_src.tbz2 within that source. The full path is needed, which happens to be “Linux_for_Tegra/source/kernel_src.tbz2”. Here we extract just that file (there is more than one way to do this):

tar xv Linux_for_Tegra/source/kernel_src.tbz2 -jf ~/Downloads/public_sources.tbz2

The “xv” is verbose extract, and putting a path after this instead of going straight to the original package name implies you are extracting only that subset of files. The “jf” means bzip2 decompression of a file (“f”). This extracts the kernel source, but puts it in a relative subdirectory from where you extracted (which presumably would be from the parent directory of “Linux_for_Tegra/”):
<parent directory of this>/Linux_for_Tegra/source/kernel_src.tbz2

You would then “cd /Linux_for_Tegra/source/” and unpack kernel_src.tbz2:
tar xvfj kernel_src.tbz2

If you were to unpack the out-of-tree content from the parent directory of Linux_for_Tegra/, then everything would go to the correct place, and you’d again extract sub-packages from the “Linux_for_Tegra/source/”.

Note that in R36.x this source is mainline, but no doubt you’ll want to take your running kernel’s config (copy from “/proc/config.gz” to somewhere safe, and note “uname -r” since the suffix tells you CONFIG_LOCALVERSION; this is normally “-tegra”) and start with that. The default config from mainline is the “defconfigmake target, but NVIDIA will ship with some other items enabled (I think there are minor differences, but perhaps not). config.gz is a reflection of the running kernel’s exact configuration at the time of build, except that it lacks the CONFIG_LOCALVERSION.

1 Like

@iulian.costea As linuxdev states, the kernel src is very close to the Ubuntu source, and resides in kernel_src.tbz2 in the BSP archive. The Jetson specific code tends to be in the kernel_oot_modules_src.tbz2 in the BSP archive. You should find the files you are looking for in hardware/nvidia/t23x/nv-public/ and its subdirectories from the oot_modules tarball.

1 Like