romandoooo 发表于 2014-10-10 21:32

如何替换/lib/modules/uname -r/kernel/drivers/net目录下的ko文件?

ppp协议在启动时会加载ppp内核模块,但我想让内核在加载内核模块时能够加载由我重新编译生成的新的内核模块。例如,ppp协议启动时,要加载ppp_generic.ko到内核中,现在我想让他加载的时候能够加载由我重新编译生成的新的ppp_generic.ko文件,这个文件是我在对与当前发行商同版本的内核源码修改的基础上编译生成的,我把原来lib/modules/uname -r/kernel/drivers/net/目录下的ppp_generic.ko文件替换成新的ko文件,但是在ppp协议启动时内核出现了一个错误信息:modprobe:FATAL:Error inserting ppp_generic(lib/modules/2.6.32-358.el6.x86_64)/kernel/drivers/net/ppp_generic.ko):Invalid module format。请问各位大神,这个问题该如何解决?跪求solution呐~~~

gz金易龙 发表于 2014-10-27 21:28

“与当前发行商同版本的内核源码修改的基础上编译” 这个是不是完全版本对应?可以使用modinfo查看。现实的版本信息应该与cat /proc/version查看到的一致。
另外,编译过程是否正确?是否需要交叉编译?

Linux内核在加载模块的时候为了保证运行安全,对加载的Ko模块会进行版本校验,加载的KO模块编译的时候使用的内核版本应该与系统运行的版本一致,而这个版本信息是会在KO文件的一个段信息里面。

romandoooo 发表于 2014-10-29 19:48

非常感谢,应该就像您说的,要完全一致的版本才可以回复 2# gz金易龙


   
页: [1]
查看完整版本: 如何替换/lib/modules/uname -r/kernel/drivers/net目录下的ko文件?