機器: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源碼的路徑錯誤,沒有和當前的內核版本一致,導致版本驗證不通過,無法安裝。