场景说明:在编译网卡驱动的过程中,linux系统需要安装gcc和kernel-devel开发软件包。gcc不谈,但是kernel-devel安装的过程,简单的说明:

# yum search kernel-devel

#yum -y isntall kernel-devel

安装完毕之后,在/usr/src/kernels/2.6.32-431.23.3.el6.x86_64目录下,存放内核源代码的头文件,

此时内核的版本是2.6.32-431.23.3.el6.x86_64。

按道理安装完毕之后会在/lib/modules/2.6.32-431.23.3.el6.x86_64目录下会创建一个软连接build,

软连接会指向内核头文件源代码:/usr/src/kernels/2.6.32-431.23.3.el6.x86_64。发现两者之间的uname -r必须是一致的。幸运的话,这个时候就可以编译网卡驱动了,但是》》》》

***************************************************

但是安装的内核源代码的头文件目录是2.6.32-431.29.2.el6.x86_64,明显不一致啊 !无法生成软连接,难道就此放弃。既然自动不行,我们手动创建软连接:

ln -s /usr/src/kernels/2.6.32-431.29.2.el6.x86_64/      /lib/modules/2.6.32-431.el6.x86_64/build/

错误提示:ln: target `/lib/modules/2.6.32-431.el6.x86_64/build/' is not a directory: No such file or directory

看来是build后面不带/,表示软连接。

ln -s /usr/src/kernels/2.6.32-431.29.2.el6.x86_64/      /lib/modules/2.6.32-431.el6.x86_64/build

这个时候编译网卡驱动就没有任何问题了。

场景说明:在编译r8168型号网卡驱动的时候,错误提示如下:

找不到/lib/modules/'uname -r'/build and Stop

编译网卡驱动r8168.ko,需要用到/lib/modules/'uname -r'/build这个文件夹

build这个文件夹,实际上是个软链接:

build -> ../../../usr/src/kernels/2.6.3(你的系统版本号),

如果安装的时候提示“no such file or directory”,说明usr/src/kernels/2.6.3这个文件夹没有创建。

而安装内核头文件kernel-devel之后,它就会出现。执行:

yum install kernel-devel

内核模块r8168.ko的编译也会顺利进行