背景
偶然的机会,在insmod驱动模块的时候,遇到报错:
查找原因,说是当前系统内核版本和模块编译使用版本不同!
使用如下命令查看当前系统内核版本:
uname -r
使用modinfo命令(嵌入式设备没有此命令时可以在编译ko的服务器上使用)查看模块的内核版本信息:
可以看到,两个内核版本是相同的,但是svn号不同!
添加/去除LOCALVERSION
进入内核menuconfig页面,搜索localversion,使能或关闭如下选项即可完成localversion的添加或去除:
同理,如果想在uboot中添加或去除localversion信息,同样进入menuconfig进行配置:
LOCALVERSION添加原理
在scripts/setlocalversion脚本中会根据相关版本信息进行localversion的添加,并且可以读取git和svn版本号:
详细解析参考如下链接:
Linux 内核编译 LOCALVERSION 配置(分析内核版本号自动添加的“+“号)_scmversion_尚先生的博客的博客-CSDN博客