JetPack 5.0 DP - Building Kernel fails "osi_core.h: No such file or directory"

Dear NVidia Team

While trying to build the DTBS and the Kernel for JetPack 5.0 DP, we stumbled across two errors.

  1. make dtbs fails with the error below. As we are building the device-tree for AGX Xavier, we commented out the builds for the Orin as a workaround.

fatal error: t234-common-cvm/tegra234-cvm-p3701.dtsi: No such file or directory

  1. We try to build the kernel with the following steps:
    a. export ARCH=arm64
    b. export CROSS_COMPILE=/home/netipc/nvidia/nvidia_sdk/toolchain/l4t-gcc/bin/aarch64-buildroot-linux-gnu-
    c. make LOCALVERSION=-tegra tegra_defconfig
    d. make LOCALVERSION=-tegra

This gives the following error:

In file included from /home/netipc/nvidia/nvidia_sdk/JetPack_5.0_DP_Linux_DP_JETSON_AGX_XAVIER_TARGETS/Linux_for_Tegra/sources/kernel/nvidia/drivers/net/ethernet/nvidia/nvethernet/ether_linux.c:19:
/home/netipc/nvidia/nvidia_sdk/JetPack_5.0_DP_Linux_DP_JETSON_AGX_XAVIER_TARGETS/Linux_for_Tegra/sources/kernel/nvidia/drivers/net/ethernet/nvidia/nvethernet/ether_linux.h:62:10: fatal error: osi_core.h: No such file or directory
62 | #include <osi_core.h>
| ^~~~~~~~~~~~
compilation terminated.

Are we doing something wrong? With older JetPack Versions, we had no problems compiling the Kernel with the above steps.
Thank you.

Best regards

1 Like

Hi,

Thanks for reporting this.

This is due to a missing link in kernel/nvidia/drivers/net/ethernet/nvidia/nvethernet.

Please create a soft link named nvethernetrm point to the one under kernel repo.

nvethernetrm → …/…/…/…/…/…/nvethernetrm/

Even with the symlink added, I’m hitting the missing dtsi error. Is there a t23x dtsi fix in the works?

DTC arch/arm64/boot/dts/ddot/ddot/ddot/ddot/ddot/ddot/hardware/nvidia/platform/t23x/concord/kernel-dts/tegra234-p3701-0000-as-p3701-0004-p3737-0000.dtb
In file included from /disk1/nvidia/nvidia_5.0_preview/kernel-5.10-src/kernel/kernel-5.10/arch/arm64/boot/dts/…/…/…/…/…/…/hardware/nvidia/platform/t23x/concord/kernel-dts/tegra234-p3701-0000-as-p3701-0004-p3737-0000.dts:17:
/disk1/nvidia/nvidia_5.0_preview/kernel-5.10-src/kernel/kernel-5.10/arch/arm64/boot/dts/…/…/…/…/…/…/hardware/nvidia/platform/t23x/concord/kernel-dts/cvm/tegra234-p3701-0000.dtsi:19:10: fatal error: t234-common-cvm/tegra234-cvm-p3701.dtsi: No such file or directory
19 | #include <t234-common-cvm/tegra234-cvm-p3701.dtsi>
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.

Looks like the root of the problem is a dot-gitignore that caused the symlink to not be committed or addressed.

bob@booger:/disk1/nvidia/nvidia_5.0_preview/kernel-5.10-src/kernel/nvidia$ cat drivers/net/ethernet/nvidia/nvethernet/.gitignore
nvethernetrm

Regarding the DTSI error: The Jetpack 5.0 DP as-released hardware source tree (directory structure) doesn’t match the Makefile DTC_INCLUDE path for t23x. Either the hardware source tree needs to be restructured or DTC Makefile needs to be tweaked. Nvidia needs to release a patch.

Hi @carterrj ,

I faced the same problem as you,

I had to move everything inside
hardware/nvidia/platform/t23x/common/
to a kernel-dts subfolder:
hardware/nvidia/platform/t23x/common/kernel-dts

Regards,
Roberto,
Embedded Developer at RidgeRun

Or change one line in a Makefile…