Display drivers not loading on JP 6.0 built kernel

Hi all,

I’m trying to build the kernel and the modules (NVIDIA’s OOT + Display drivers) for the Jetson Linux 36.3 (JP 6.0) in order to run it on a Jetson Orin Nano Developer kit board.

I could built the kernel and modules, install them and boot them on the board. However, the modules nvidia.ko and nvidia_modeset.ko are refusing to load:

[  256.073942] NVRM: failed to get bpmp data
[  256.073981] nv_platform: probe of 13800000.display failed with error -1
[  256.074220] platform 13800000.display:nvdisplay-niso: Removing from iommu group 41
[  256.074493] NVRM: The NVIDIA probe routine was not called for 1 device(s).
[  256.074495] NVRM: This can occur when a driver such as: 
               NVRM: nouveau, rivafb, nvidiafb or rivatv 
               NVRM: was loaded and obtained ownership of the NVIDIA device(s).
[  256.074497] NVRM: Try unloading the conflicting kernel module (and/or
               NVRM: reconfigure your kernel without the conflicting
               NVRM: driver(s)), then try loading the NVIDIA kernel module
               NVRM: again.
[  256.074498] NVRM: No NVIDIA devices probed.

During the boot I’ve got lots of these messsages:

[   18.697120] nv_platform: probe of 13800000.display failed with error -1
[   19.169526] nv_platform 13800000.display: Unbalanced pm_runtime_enable!
[   19.170225] nv_platform: probe of 13800000.display failed with error -1
[   20.082995] nv_platform 13800000.display: Unbalanced pm_runtime_enable!
[   20.083839] nv_platform: probe of 13800000.display failed with error -1

I can get rid of these errors if I remove the tegra-drm module (rmmod tegra-drm) and can reach the Xorg server. However, there are many devices missing on /dev and I can’t run a CUDA container.

I’ve fetched the corresponding public_sources.tbz2, checked instructions from Kernel Customization — NVIDIA Jetson Linux Developer Guide 1 documentation and I’ve got no errors during the kernel build. Apparently everything went well. I’m using default config (defconfig) and the kernel version it’s exact the same running from the installed Jetpack on the board (which runs successfully and can load the mentioned modules).

I’m attaching two logs, one for the default kernel from Jetpack (where everything works) and the logs for the kernel I’ve built (where I can’t load nvidia.ko and nvidia_modeset.ko).

jp6-working-kernel.log (32.5 KB)
build-kernel.log (36.0 KB)

It looks like modules are not loading due to this error (which I don’t experience with the default kernel):

NVRM: failed to get bpmp data

Any clue and/or advice is highly appreciated;

Cheers

Hi rene28,

Could you also verify with the latest JP6.1(R36.4.0) on the devkit?

Do you mean that it is not working when you use the custom built kernel w/o any change?

Thanks for the reply @KevinFFF, exactly… I’m experiencing these errors only with the the kernel I’ve built… I just built the kernel + modules without any changes. I will try the JP 6.1 and post the results here…

Okay, please let us know the result of JP6.1.
If there’s still the issue, please share the detailed steps and the exact commands you used to build the image and how you apply the change.

@KevinFFF I’ve tested with JP6.1 (Jetson Linux 36.4), the behavior was the same. However, it turns out the issue was the way I was building the kernel and the modules. I was trying to change the output folder for the binaries (so I’ve set KERNEL_OUTPUT apart from the CROSS_COMPILE). Apparently some dependencies were not correct resolved. I realized that looking to the module info… the output below is for the nvidia.ko binary shipped with JP6.0:

filename:       /home/rene/NVIDIA/JP6/Linux_for_Tegra/rootfs/usr/lib/modules/5.15.136-tegra/./updates/opensrc-disp/nvidia.ko
firmware:       nvidia/540.3.0/gsp_tu10x.bin
firmware:       nvidia/540.3.0/gsp_ga10x.bin
import_ns:      DMA_BUF
alias:          char-major-195-*
version:        540.3.0
supported:      external
license:        Dual MIT/GPL
srcversion:     7ACBEE05F1BB421649F969D
alias:          pci:v000010DEd*sv*sd*bc06sc80i00*
alias:          pci:v000010DEd*sv*sd*bc03sc02i00*
alias:          pci:v000010DEd*sv*sd*bc03sc00i00*
alias:          of:N*T*Cnvidia,tegra234-displayC*
alias:          of:N*T*Cnvidia,tegra234-display
depends:        host1x-nvhost,tegra-dce,tsecriscv,mc-utils,drm
name:           nvidia

As we can see, there are these dependencies: host1x-nvhost,tegra-dce,tsecriscv,mc-utils,drm

However, for the module that I built I’ve got the following:

filename:       /home/rene/JP6.0/Linux_for_Tegra/source/nvdisplay/./kernel-open/nvidia.ko
firmware:       nvidia/540.3.0/gsp_tu10x.bin
firmware:       nvidia/540.3.0/gsp_ga10x.bin
import_ns:      DMA_BUF
alias:          char-major-195-*
version:        540.3.0
supported:      external
license:        Dual MIT/GPL
srcversion:     7ACBEE05F1BB421649F969D
alias:          pci:v000010DEd*sv*sd*bc06sc80i00*
alias:          pci:v000010DEd*sv*sd*bc03sc02i00*
alias:          pci:v000010DEd*sv*sd*bc03sc00i00*
alias:          of:N*T*Cnvidia,tegra234-displayC*
alias:          of:N*T*Cnvidia,tegra234-display
depends:        drm
name:           nvidia

Only drm as dependency, so I think we were getting those errors during load because I had all the correct dependencies modules (host1x-nvhost, etc) already loaded…

Anyways, after export only the CROSS_COMPILE, as explained in the guide, I could built successfully the modules and the kernel and it worked.

Thanks for the support;

Cheers

1 Like

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.