There will be more than one file involved. You might want to name some specific case, such as running a CUDA sample or an OpenGL program. An executable file could have what it wants to link to traced by running “ldd” on the program.
You can see if the user space system libraries are valid for a given L4T release via:
sha1sum -c /etc/nv_tegra_release
The “nvidia_drv.so” and “libglx.so” files are most closely related to driving the GPU.
If you are logged in to the local GUI, then you may be interested in the output from:
glxinfo | egrep -i '(version|nvidia)'
The GPU driver on a desktop system uses a PCI mechanism, whereas the Jetsons have the GPU directly wired to the memory controller. The hardware is integrated into the system this way, whereas the wiring on a desktop PC is removable. Even if the GPU of a desktop and a Jetson are the same the GPU drivers would not be interchangeable because of this…but code intended for that architecture would be more or less the same once you get past how it is wired into the system.
The kernel driver code itself is partially in the form of a module, and partially in the kernel itself.
Many of the optional files for things like CUDA support tend to be in a subdirectory of “/usr/local/”, e.g., you might have something like “/usr/local/cuda-8.0/”, and within this subdirectory “lib64/” would contain the actual libraries (I’m looking at a desktop PC right now which is x86_64). Example:
While flashing the “/usr/local/” content is not added, this is done after flash. Content from the “/etc/nv_tegra_release” is from the “apply_binaries.sh” step if manually flashing on command line (JetPack does this for you if using the GUI installer). You could conceivably copy “/usr/local/” content into a sample rootfs directory and have it during flash (which is exactly how the “/etc/nv_tegra_release” files are added). A better method would be to fully install, update, and test a system, followed by cloning it and flashing from the clone (you may need to make sure something specific to the previous system isn’t saved, e.g., sometimes network setup might save a MAC address…you wouldn’t want all of your production units using the same MAC address).