机器: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源码的路径错误,没有和当前的内核版本一致,导致版本验证不通过,无法安装。