Btw, the CONFIG_LOCALVERSION kernel config adds a suffix to the name which appears from “uname -r”. So if the base kernel version is “4.4.38”, and your “uname -r” shows “4.4.38-tegra” from the original kernel, then it implies that CONFIG_LOCALVERSION was “-tegra” at that time. The modules are searched for in:
If you have a new kernel with the same original version, but different CONFIG_LOCALVERSION, then you need to install new modules as well. If you kept CONFIG_LOCALVERSION, such that “uname -r” remains constant regardless of which kernel you have, then the modules will be reused from the same location.
I usually go to a new CONFIG_LOCALVERSION if I change a base integrated feature of the kernel (more so when removing a base feature than adding a new feature). If you happen to know that the config is compatible despite a new “uname -r”, then you could just recursively copy the old module directory into the new “/lib/modules/$(uname -r)/” location.