ERROR: module version mismatch
来源:互联网 发布:新生入学调查问卷知乎 编辑:程序博客网 时间:2024/05/22 03:20
systemtap 进阶
stap -e 'probe begin { log("hello world") exit() }'
从错误来看,只是比较时间上有差异,而且差别不大,如果能不比较该时间,或许问题就解决了(其实我们前面犯过一个不大不小的错误)
通过stap -v 选项 (可以多些几个v的,v越多信息越详细),如下:
然后打开文件: /tmp/stapjbY7L4/stap_19453_src.c ,错误位置如下:
从上图来看:
如果不去定义 常量 STAPCONF_GENERATED_COMPILE 就不会走到该逻辑,问题或许可以解决,那么 STAPCONF_GENERATED_COMPILE 是在哪里定义的呢?
其实就在旁边的一个 .h 中定义的,而该 .h 和该 .c 一样都是该目录下的Makefile 动态生成的,Makefile里面有如下逻辑:
@if $(CHECK_BUILD) $(SYSTEMTAP_RUNTIME)/linux/autoconf-generated-compile.c > /dev/null 2>&1; then echo "#define STAPCONF_GENERATED_COMPILE 1"; fi >> $@
不幸的是 Makefile本身也是动态生成的:
- 要么通过修改上述if逻辑中相关的某个文件,让返回值为“假”
我用到的是文件: /usr/share/systemtap/runtime/linux/autoconf-generated-compile.c 内容很简单:#include <generated/compile.h>char* x = UTS_VERSION;
问题就来了, <generated/compile.h> 是哪个目录下的? - 要么找到生成Makefile的地方,去掉该逻辑
我简单找了一下,没找到
还有别的办法没?
因为systemtap依赖不多,其中一个rpm包就是kernel-devel,怀疑问题出现在kernel-devel ,那么去kernel-devel的文件中搜索 UTS_VERSION 这个常量试试,果然,发现文件: /usr/src/kernels/3.10.0-229.14.1.el7.x86_64/include/generated/compile.h (这不就是上面提到的 <generated/compile.h>嘛?)内容如下:
终于找到了 UTS_VERSION ,直接修改下这里的UTS_VERSION ,问题解决。
据说,这个常量信息是编译内核的时候自动生成的(从文件第一行也能看出来),所以,每次编译时间都会不一样,如果自己编译的内核,而去使用别人提供的kernel-devel,必然会遇到我这里出现的问题
上面提到说,我犯过一次错误,是这样的:
我的kernel-devel 是从 http://rpm.pbone.net/ 下载的,这里的rpm包有一个distribution的属性,由于rpm包大小相同,我就随便下载了一个,其实是有区别的,至少上面的时间是不同的,重新选择centos7的下载,重新安装,问题解决
新下载的rpm包中文件/usr/src/kernels/3.10.0-229.14.1.el7.x86_64/include/generated/compile.h 如下:
总结: systemtap 之所以入门较难,和苛刻 的内核版本号 以及yum安装的时候只安装最
- ERROR: module version mismatch
- [Error: Module version mismatch. Expected 46, got 48.]
- libtool version mismatch error
- libtool version mismatch error
- ibtool version mismatch error
- libtool version mismatch error
- libtool: Version mismatch error. 解决方法
- libtool: Version mismatch error. 解决方法
- libtool: Version mismatch error. 解决方法
- libtool: Version mismatch error. 解决方法
- libtool: Version mismatch error. 解决方法
- Error: API mismatch: the NVIDIA kernel module has version 295.40, but this NVIDIA driver ...
- 启动angular2项目Metadata version mismatch for module,found version 4, expected 3
- HANA ODBC error due to mismatch of version
- fatal error C1900: Il mismatch between 'P1' version '20080116' and 'P2' version '20070207'
- fatal error C1900: Il mismatch between 'P1' version '20080116' and 'P2' version '20070207'
- fatal error C1900: Il mismatch between 'P1' version '20080116' and 'P2' version '20070207'
- fatal error C1900: Il mismatch between 'P1' version '20080116' and 'P2' version '20070207'
- VS2008编译boost库
- Uploadify 3.2上传文件,限制类型,大小,传递参数等
- jQuery鼠标事件汇总
- DevOps落地实践:通讯行业系列:NTT COMWARE之Devaas
- ListView的优化
- ERROR: module version mismatch
- [网络基础 一] 分层体系结构
- Chamelon(变色龙)多阶段层次聚类算法
- 并查集学习笔记
- CSDN博客更换界面
- 关于 tomcat7无法登录进ManagerApp管理界面 的问题
- C++ 文件和流
- 深入理解 Java G1 垃圾收集器
- odi推送提示成功没有报错,但数据并没有推送到目标表