内核开发的版本依赖问题
Linux 内核模块与运行内核之间存在着版本依赖。如果编译内核模块使用的代码树与运行内核的版本不完全匹配,则在用insmod安装模块时,很可能会产生Invalid module format. 错误。
为了解决这个问题,要么使用与当前运行内核完全匹配的代码树来编译内核模块,要么用手头的内核代码重新构建并安装内核。
在本文的以下内容中,将介绍如何在Ubuntu系统上构建并安装新的Linux内核。
准备必需工具
在构建Linux内核前,需要下载一些必须的工具和开发包,使用下面的命令来安装这些工具
首先,更新下安装包数据库
apt-get update
接着,再来安装所需的工具
apt-get install kernel-package libncurses5-dev fakeroot wget bzip2
下载内核代码
最“标准”的方法,是从http://www.kernel.org/ 处下载,
cd /usr/src
wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.18.1.tar.bz2
另外,也可以用 apt-get 来安装。需要注意的是,如果使用这种方法,代码包只是被放在了/usr/src目录下,并没有被解压,开发者需要自行手动解压。
下载完成后,将内核代码解压。
tar xjf lin