version magic 不一致问题

时间:2020-11-26 06:01:31

碰到一个问题,在开发过程中发现以前编译的模块加载失败了。

wlan: version magic '4.1.15-gfb2dbf6 SMP preempt mod_unload ARMv7 p2v8 ' should be '4.1.15-ge5de83b-dirty SMP preempt mod_unload ARMv7 p2v8 '

这里看到version magic 存在不一致的问题的,不一致的地方:
4.1.15-gfb2dbf6
4.1.15-ge5de83b
这里看到模块的符号加入了git的版本号,本来出发点是好的,但是我这种应用的场景就会导致很麻烦。

include/linux/vermagic.h

 #define VERMAGIC_STRING                         \
UTS_RELEASE " " \
MODULE_VERMAGIC_SMP MODULE_VERMAGIC_PREEMPT \
MODULE_VERMAGIC_MODULE_UNLOAD \
MODULE_VERMAGIC_MODVERSIONS \
MODULE_ARCH_VERMAGIC

分析了Makefile,UTS_RELEASE是影响版本号的主要问题。
最后我使用这样的修改方式:

修改Makefile中对UTS_RELEASE的输出:

echo \#define UTS_RELEASE \"$(KERNELVERSION)\";

最后的格式,去掉了git的版本控制信息:
4.1.15 SMP preempt mod_unload ARMv7 p2v8 ‘