问题描述:VMware的版本是6.0.2,安装在Windows xp上,VMware里面安装了Fedora 9。然后在Fedora 9中安装VMware tools(在终端下运行sudo ./vmware-install.pl),在编译模块时出现如下错误,从而导致很多功能如文件共享等不能使用。
虚拟机VMware 菜单里选安装VMware Tools ,没有反应?没这么简单。首先用VMware 连接linux.iso ,然后挂载(为方便一些初次接触的朋友,我直接给出命令了):在终端里mount /dev/cdrom /mnt ,然后进入iso 的 vmware-tools-distrib 目录:cd /mnt/vmware-tools-distrib ,在这里你应该看到一个文件vmware-install.pl ,用ls 命令即可看到,然后在终端里输入 ./ vmware-install.pl ,如果一切条件都具备了,那么一路回车就可以安装结束了,忽略下面的步骤。如果你使用的linux.iso 是我下载的那个,而你的Fedora9 的内核版本又是 2.6.25 -14.fc9.i686 (用uname –r 命令可以看到),那么你将会被提示:
None of the pre-built vmmemctl modules for VMware Tools is suitable for your running kernel. Do you want this program to try to build the vmmemctl module for your system (you need to have a C compiler installed on your system)? [yes]
我们先在需要一个c 编译器,如果你已经安装了,直接回车就行,否则,去哪里找?在安装光盘就有gcc (如果你确实不了解,那么知道它是一个把源代码变成程序的工具就可以了),你可以按照从安装光盘中安装Fedora 9 的软件包中的方法来安装gcc ,当然,你也可以从网络安装。
安装gcc 完成后重新执行./ vmware-install.pl , 这下你以为该成功了吧,结果又碰到了这个问题:
What is the location of the directory of C header files that match your running kernel? [/usr/src/linux/include]
这个时候你回车可不管用了,因为你也许会发现你的系统里面/usr/src 文件夹根本就是空的。
此时我们需要安装与系统 内核配套的开发 包,你可以用如下命令来确保相关的开发包真的没有安装:
rpm -q kernel-devel
如果没有安装,将会提示:package kernel-devel is not installed
假如你用uname –r 命令看到的是2.6.25 -14.fc9.i686 ,而你的网络状况良好,那么你可以这样安装:
yum install kernel-devel-2.6.25-14.fc9.i686.rpm
如果你发现从安装源下载安装不了,或者速度太慢,你可以这样下载:假设我们用root 用户登录,当前工作目录是/root/Download ,那么
[root@localhost Download] wget ftp://rpmfind.net/linux/ fedora/releases/9/Everything/i386/os/Packages/kernel-devel-2.6.25-14.fc9.i686.rpm
将把这个rpm 包下载到 /root/Download ,如果你觉得wget 下载仍然太慢,那么你可以使用相关工具来下载,反正地址都有了。什么?你只会用windows 下的迅雷?没关系,你真的可以用迅雷下载,然后在windows 搭建一个ftp 服务,在linux 访问windows 的ftp 再重新下载一次,你也可以把它发到自己的邮箱,然后在linux 打开邮箱下载…… 只要你喜欢,怎样都行,总之最后把这个文件放到/root/Download 就行,然后安装:
rpm -ivh kernel-devel-2.6.25-14.fc9.i686.rpm
安装完成可以用rpm -q kernel-devel 再查询一下是否已经安装成功。
好了,一切重新开始, 重新执行 ./ vmware-install.pl , 再到这里的话 , 应该是这样的 :
What is the location of the directory of C header files that match your running
kernel? [/lib/modules/2.6.25-14.fc9.i686/build/include]
这下该没问题了吧,结果最后发现:
Unable to create the directory /mnt/hgfs.
Execution aborted.
这是用到/mnt/ 目录,把iso 放光驱里mount 忘了umount 呢,它现在是只读的,好,把linux.iso 里面的内容复制到/root/Download ,然后umount ,还是不行,快疯了吧:
In file included from include/linux/string.h:11,
From /tmp/vmware-config3/vmhgfs-only/cpName.h:18,
from /tmp/vmware-config3/vmhgfs-only/cpName.c:18: include/linux/types.h:40: 错误:与‘uintptr_t’ 类型冲突
/tmp/vmware-config3/vmhgfs-only/vm_basic_types.h:170: 错误:‘uintptr_t’ 的上一个声明在此
make[2]: *** [/tmp/vmware-config3/vmhgfs-only/cpName.o] 错误 1 make[1]: *** [_module_/tmp/vmware-config3/vmhgfs-only] 错误 2 make[1]: Leaving directory `/usr/src/kernels/2.6.25-14.fc9.i686'
make: *** [vmhgfs.ko] 错误 2
make: Leaving directory `/tmp/vmware-config3/vmhgfs-only' Unable to build the vmhgfs module.
分析原因:由于编译过程和当前Linux的内核版本有很大关系,Linux内核不同版本之间代码差异较大,时常会出现某个结构多了个成员少了个成员之类的改动,造成vmware-tools在引用这个文件时出现编译错误。
解决方法:根据Linux内核版本的发布日期去下载对应的open-vm-tools,比如我的内核版本是linux-2.6.28,我下载的就是open-vm-tools-2009.02.18-148847.tar.gz。然后解开,把open-vm-tools/modules/linux里的vmhgfs目录改名成vmhgfs-only然后压成 vmhgfs.tar, 替换vmware-tools-distrib/lib/modules/source下的同名文件,其他几个.tar文件的替换方法一样。最后重新安装vmware-tools即可。给一个链接:
http://jaist.dl.sourceforge.net/sourceforge/open-vm-tools/open-vm-tools-2008.06.03-96374.tar.gz
假设下载的这个文件放到了 /root/Download
先看看是不是有我们的文件?
[root@localhost Download]# ls
kernel-devel-2.6.25-14.fc9.i686.rpm open-vm-tools-2008.06.03-96374.tar.gz
vmware-tools-distrib
然后解压继续进行:
[root@localhost Download]# tar xzvf open-vm-tools-2008.06.03-96374.tar.gz
[root@localhost Download]# cd open-vm-tools-2008.06.03 - 96374
[root@localhost open-vm-tools-2008.06.03-96374]# ./configure && make --->这个步骤可以省略。当时偶就是编译不通过折腾许久,唉。
[root@localhost open-vm-tools-2008.06.03-96374]# cd modules/linux
[root@localhost linux]# for i in *; do mv ${i} ${i}-only; tar -cf ${i}.tar ${i}-only; done
[root@localhost linux]# cd http://www.cnblogs.com/..
[root@localhost Download]# mv -f open-vm-tools-2008.06.03-96374/modules/linux/*.tar vmware-tools-distrib/lib/modules/source/
[root@localhost Download]# cd vmware-tools-distrib/
[root@localhost vmware-tools-distrib]# ./vmware-install.pl
一直回车吧,最后你会看到让你选择屏幕分辨率,最后的最后:
To make use of the virtual printer, you will need to restart the CUPS service
Enjoy,
--the VMware team
安装完成以后,通过system-config-display进行设置。个人觉得1024*768效果很好。
==============================================================================
装完vmtools发现鼠标在登陆界面根本无法使用,进入桌面后定位不准确。GOOGLE一下,找到一个办法。记录如下:
由于在装载xorg-x11-drv-vmmouse驱动时的一个bug,在客户虚拟机的显示中,鼠标位置可能不正确。直到被更新前,在客户机中添加Option NoAutoAddDevices到/etc/X11/xorg.conf文件的ServerFlags节中。如果需要,创建这个节:
Section "ServerFlags"
Option "NoAutoAddDevices"
EndSection
然后重新启动电脑鼠标就不会乱串啦。