机器:ubuntu 12
问题描述:编译模块的时候提示错误:-1 Invalid module format
通过命令:
dmesg
发现原因其实是:disagrees about version of symbol module_layout
解决方法:
1.先检查当前安装的内核版本
uname -r
2.检查Makefile里指定的kernel源码路径,修改指向正确的路径。保证版本号一致。
LINUX_KERNEL_PATH:=/usr/src/kernels/2.6.32-358.2.1.el6.x86_64
2.1.如果在/usr/src/目录下没有当前安装的内核的源码,那么下载一份重新编译。
2.1.1 ubuntu 下执行命令:
1 sudo apt-get install linux-source
centos和ret hat下执行命令:
1 yum install kernel-devel
2.1.2 上面命令完成后,在/usr/src目录下可以找到安装的源码。对于ubuntu来说因为下载的是源码所以得接着编译。
在源码目录执行命令(编译完成大概需要30分钟):
make
3.重新编译安装。
原因:Makefile里设置kernel源码的路径错误,没有和当前的内核版本一致,导致版本验证不通过,无法安装。