首 页文章中心

Linux学习网

您的位置Linux学习网 > Linux综合 > 文章内容

VMware在Linux上安装时内核头文件的问题

作者:佚名  来源:不详  发布时间:2007-12-21 16:35:00
 

VMware的作用不用介绍了,像 dorainm这种自己摆弄系统底层的,经常用 vmware弄个freeBSD、linux-2.4.x、linux-2.6.x之类的玩!

  大家在安装vmware后,运行vmware-config.pl,经常会卡在内核头文件这里

None of the pre-built vmmon modules for VMware Workstation is suitable for your running kernel. Do you want this program to try to build the vmmon module for your system (you need to have a C compiler installed on your system)? [yes]6pULinux联盟
6pULinux联盟
Using compiler "/usr/bin/gcc". Use environment variable CC to override.6pULinux联盟
6pULinux联盟
What is the location of the directory of C header files that match your running kernel? [/usr/src/linux/include]6pULinux联盟
6pULinux联盟
The path "/usr/src/linux/include" is not an existing directory.6pULinux联盟
6pULinux联盟
What is the location of the directory of C header files that match your running kernel? [/usr/src/linux/include
] /root/sources/linux-2.6.22.2/include6pULinux联盟
6pULinux联盟

The directory of kernel headers (version @@VMWARE@@ UTS_RELEASE) does not match your running kernel (version 2.6.22.2). Even if the module were to compile successfully, it would not load into the running kernel.6pULinux联盟
6pULinux联盟
What is the location of the directory of C header files that match your running kernel? [/usr/src/linux/include]

6pULinux联盟
  可气吧!明明修改指向我自己编译用过了的linux内核文件夹了,但是提示还是错误(dorainm使用的内核是2.6.22.2)6pULinux联盟

The directory of kernel headers (version @@VMWARE@@ UTS_RELEASE) does not match your running kernel (version 2.6.22.2). Even if the module were to compile successfully, it would not load into the running kernel.

6pULinux联盟
    打开 linux/version.h 一看,内容是6pULinux联盟
6pULinux联盟

#define LINUX_VERSION_CODE 1326306pULinux联盟
#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))

6pULinux联盟
  2.6.22内核 = 2<<16 + 6<<8 + 22 = 2*65536 + 6*256 + 22 =1326306pULinux联盟
为什么说版本不对阿?!难道版本算法不同?!(bc:谁在掐我的指头!)

  再次看,vmware读取的版本,UTS_RELEASE!我们往 linux/version.h 里面添加一行:

#define UTS_RELEASE "2.6.22.2"6pULinux联盟
#define LINUX_VERSION_CODE 1326306pULinux联盟
#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))

6pULinux联盟
  这次 vmware终于相信 dorainm提供给它的内核头文件的版本是匹配的。6pULinux联盟
6pULinux联盟
  dorainm现在使用的 linux系统是自己编译的,如果安装的是发行版本,应该有相关的安装内核头文件的方法,比如 redhat/fedora系列的 yum, debian/ubuntu系列的 apt等6pULinux联盟
    如果没有,可以到 www.kernel.org上下载对应的内核,然后:

make mrproper6pULinux联盟
make oldconfig6pULinux联盟
make

  来编译内核头文件,再就按照文中的方法,让 vmware欢快得跑起来:

收藏本页到: 365Key | del.icio.us | | 添加到雅虎收藏+
  • 网站帮助 - 广告合作 - 网站地图