Version Magic does not match in kernel module

The “+” was a result of rebuilding the kernel. The version magic requirement is a need to rebuild the modules due to change in the Image/kernel. It is probably a mistake that the kernel had been built without any CONFIG_LOCALVERSION, this is why it is only “4.4.38+”. Either way it means your kernel won’t find the modules unless you have rebuilt them and put them in the “/lib/modules/$(uname -r)/” directory tree.

The fact that “-tegra” is seen in most places is a result of having “-tegra” for CONFIG_LOCALVERSION. Most people should build modules with this set to “-tegra” to match. If you changed something in the base Image (and not just modules), then you might want to change to something like “-custom”.

Btw, if you have the full source code (such as via source_sync.sh), then you don’t need the headers directory.

Use “make mrproper” to clean all out, copy the “/proc/config.gz” (and gunzip after to decompress, then mv to file name “.config”), and then set CONFIG_LOCALVERSION before you do anything else.