日期:2014-05-16  浏览次数:20643 次

模块版本匹配问题
我把ldd2中的一个hello   world模块编译加载后报错说:内核模块版本不匹配,此版本是为linux2.4.20编译的,但是内核版本是2.4.20-8。请问应该怎么办?需要重新编译内核以去除版本控制功能吗?但是我不会编译内核呀,试过一次编译内核,结果进不了系统了

------解决方案--------------------
我觉得主要原因是你现在的操作系统的内核版本与你编译时引用的头文件中所定义的版本不同,所以你要把你引用的头文件的版本改成现在的你的操作系统的版本,该值由UTS_RELEASE指定

或者你将/usr/src/linux2.4.20-8/include/linux/version.h覆盖
/usr/src/linux/version.h

也可以在Make里面加-I/usr/src/`uname -r`


Linux的版本问题是老大难问题了,如果实在不行,insmod -f吧,强制加载。