My observation is that the driver stack on the Tegra K1 is quite different from what we had on the earlier Carma and Kayla hardware, which were more like a typical x86 system. There doesn’t appear to be an “nvidia” kernel module, at least with the current OS distribution for Tegra K1 as installed out of the box. I also noted that the current OS rev doesn’t link up the NVIDIA libGL.so and other libs in place of the software-based Mesa in /usr/lib, and that the normal NVIDIA X11 utilities such as nvidia-settings and such are also missing. I conclude that the current Tegra K1 drivers are quite different, and they don’t seem to require so much integration with the X11 drivers. This may be a good thing for embedded folks, but it’s a little unusual for those of us accustomed to driver organization on x86. Hopefully someone from NVIDIA will chime in on these items.
I don’t think this is the right fix. nvhost_vi is not the same as nvidia.
The problem also appears on Jetson R21.3 when running an application with cuda as root. (It doesn’t appear when you call it as normal user)
I think the modprobe to the nvidia module is a left-over from x86 code in the cuda library. The module is not needed at all on TK1 because the GPU functionality (in most cases) is statically compiled into the kernel.
I removed the message by adding the following config to modprobe.d/nviida.conf
install nvidia echo ignore > /dev/null
All my CUDA applications work fine and the message has disappeared.
The “/etc/modprobe.d/” directory is for customizing. Unless it was known ahead of time something will use nvhost_vi by name nvidia, this would have never been customized. In the command given above (with " >> " in it), the command will append to the file if it exists, and if the file does not exist, it will create the file. So it won’t matter if the file already existed or not.