linux内核模块如何绕过系统vermagic检查,insmod成功?
问题描述:
某个发行版X,想在上面添加一个内核模块hello.ko,想让它能安装到其它安装同版本X的机器上。
现在的问题是,在A机器上编译出hello.ko,拿到B机器(硬件配置不同,X一样)上,结果无法插入,提示invalid module format,dmesg看不到打印。查看其它自带驱动,发现问题在vermagic的值不同,所以插入不了。
1. 尝试--force-vermagic,还是提示invalid module format
2. 重新在B机器上编译hello.ko,可以insmod,但拷回A机器,同样的问题。
3. 考虑过使用脚本在每个机器上编译源代码,但并不一定每个机器上都安装了编译环境吧?
在X发行版没办法改变的情况下,如何做到A机器上编译hello.ko,拿到所有装同版本X的其它B、C、D等机器上能使用?
期盼各位赐教!谢谢