I’m not sure, but NVDIA might have a “linux-headers-...something...” now (the “something” would include 4.9.253-tegra…other headers won’t work if not for that). However, I’ve never used that. You can actually place the full kernel source at that symbolic link location, followed by configuring it to match the running system.
Can anyone from NVIDIA suggest if there is actually a 4.9.253-tegra kernel-headers package?
What L4T release is this? You can find it via “head -n 1 /etc/nv_tegra_release”. Then you can download source for that L4T release. See: https://developer.nvidia.com/linux-tegra
There is a public sources download. Within that is a kernel sources (you have to extract one package from the other). When you unpack this in an empty location it generates “sources/kernel/kernel-4.9/”. If you perform the unpack with sudo from location “/usr/src/”, then the content you need should be generated (it also includes out of tree content, which just headers might fail to have).
For configuration, once that is there, from the “/usr/src/sources/kernel/kernel-4.9”, you can do this:
cp /proc/config.gz .
(the trailing “.” is important)
gunzip config.gz
mv config .config
make modules_prepare
All of the above would need to be done as root. It is of course easier if there is a package, and maybe there is one these days, not sure. The above though makes the entire source available (and if space is at a premium, then that is a problem).
This will help in downloading the kernel sources and prepare the build environment (like /lib/modules/4.9.253-tegra/build) for compiling your external kernel modules