科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道VMware在Linux上安装时内核头文件的问题

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

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

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

作者:赛迪网 来源:赛迪网 2007年10月17日

关键字: 内核 安装 VMware Linux

  • 评论
  • 分享微博
  • 分享邮件
 

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]

Using compiler "/usr/bin/gcc". Use environment variable CC to override.

What is the location of the directory of C header files that match your running kernel? [/usr/src/linux/include]

The path "/usr/src/linux/include" is not an existing directory.

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/include

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.

What is the location of the directory of C header files that match your running kernel? [/usr/src/linux/include]


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

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.


    打开 linux/version.h 一看,内容是

#define LINUX_VERSION_CODE 132630
#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))


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

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

#define UTS_RELEASE "2.6.22.2"
#define LINUX_VERSION_CODE 132630
#define KERNEL_VERSION(a,b,c) (((a) << 16) + ((b) << 8) + (c))


  这次 vmware终于相信 dorainm提供给它的内核头文件的版本是匹配的。

  dorainm现在使用的 linux系统是自己编译的,如果安装的是发行版本,应该有相关的安装内核头文件的方法,比如 redhat/fedora系列的 yum, debian/ubuntu系列的 apt等
    如果没有,可以到 www.kernel.org上下载对应的内核,然后:

make mrproper
make oldconfig
make

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

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章