资料均来自于网上,我整理了方便自己学习,没有注明出处,还请作者见谅。
我从网上淘来这两篇资料,都是绝好的,但也都有错误,照着做肯定不行,这两篇参考着来才行,我修改了其中的一些错误,不是说我是什么高手,可以修正人家的错误,我是beginer,我是一点一点尝试的。主要要注意x11的配置(我用了个旧的液晶,费了我老鼻子的事),这个要根据自己的显示器来,我想一般的crt都没问题,应该不用修改。还有就是share文件夹的问题,源码有错需要修改,补丁包我没有,有网页版的patch文件,我只好照着自己手动修改。我想各人的情况不同,本文不一定直接就能解决问题,却绝对是个好参考。
在fc6上安装vmware-tool。大概步骤分10步:
1.安装c编译器
2.安装kernel-devel
3.检查kernel跟kernel-devel的版本号
4.两个版本号不一致,进行升级
5.再次检查版本号,还不一致,需要重启。
6.重启后,版本号一致。
7.用ls命令查看匹配kernel的c编译器的header的路径
8.安装vmware-tool
9.选择屏幕分辨率。
10.还要修改xorg config设置
详细请看下面::
1.安装c编译器
[root@localhost ~]# yum install gcc
2.安装kernel-devel
[root@localhost ~]# yum install kernel-devel
3.检查kernel跟kernel-devel的版本号
[root@localhost ~]# uname -r
2.6.18-1.2798.fc6
[root@localhost ~]# rpm -q kernel-devel
kernel-devel-2.6.18-1.2849.fc6
4.两个版本号不一致,进行升级
[root@localhost ~]# yum -y upgrade kernel kernel-devel
5.再次检查版本号,还不一致,需要重启。
[root@localhost ~]# uname -r
2.6.18-1.2798.fc6
[root@localhost ~]# rpm -q kernel-devel
kernel-devel-2.6.18-1.2849.fc6
[root@localhost ~]# reboot
6.重启后,版本号一致。
[root@localhost ~]# uname -r
2.6.18-1.2849.fc6
[root@localhost ~]# rpm -q kernel-devel
kernel-devel-2.6.18-1.2849.fc6
7.用ls命令查看匹配kernel的c编译器的header的路径
[root@localhost ~]# ls -d /usr/src/kernels/$(uname -r)*/include
/usr/src/kernels/2.6.18-1.2849.fc6-i686/include(记住该路径,安装vmware-tool时需要用到)
8.安装vmware-tool。先释放鼠标,在vmware中选择安装vmware-tool,进入fc6,打开光驱,拷贝VMware- workstation-5.5.2-29772.tar.gz,将其解压到任何位置。解压后,双击vmware-install.pl,选择在终端运行,然后一直按默认设置,一路按回车键。
9.直到该步骤,拷贝粘贴第7步的路径,然后一直按回车,直到选择屏幕分辨率。
What is the location of the directory of C header files that match your running
kernel? [/usr/src/kernels/2.6.18-1.2849.fc6-i686/include]
提示信息显示hgfs模块安装有问题,没关系,下一篇文章中解决。
10.到了该步骤,问你是否改变X-window的设置,选y,就可以改变分辨率。
Do you want to change your guest X resolution? (yes/no) [no] y
Please choose one of the following display sizes (1 - 13):
[1] "640x480"
[2]< "800x600"
[3] "1024x768"
[4] "1152x864"
[5] "1280x800"
[6] "1152x900"
[7] "1280x1024"
[8] "1376x1032"
[9] "1400x1050"
[10] "1680x1050"
[11] "1600x1200"
[12] "1920x1200"
[13] "2364x1773"
Please enter a number between 1 and 13:
[3]
还不行呢,再跟着下边的走吧!
I keep several Linux distributions running on VMware Workstation due to my work. Unfortunately, due to recent changes in the Linux kernel, you cannot properly compile the vmhgfs driver on Fedora Core 6. Fortunately, I have a workaround until VMware releases a proper fix.
First, go to /usr/lib/vmware-tools/modules/source and unpack vmhgfs.tar like this:
******************ggggggggggg************************
tar -xf vmhgfs.tar
********************************************************
Now you should have a new directory called vmhgfs-only. You need to get the following patch to make it work:
vmhgfs-i_node-fix.patch()
To apply it, simply run:
patch -p1 < /wherever/you/saved/it/vmhgfs-i_node-fix.patch
This will patch vmhgfs-only/driver.c to conform with the kernel changes. Now you will have to repack it and reconfigure the VMware Tools. Simply run the following two commands:
tar -cf vmhgfs.tar vmhgfs-only
************************ggggggggggggggg*******************
run the command:
/usr/bin/vmware-config-tools.pl
**********************************************************
If all you want is to get the module compiled, you're all set. If you actually need to access a shared folder, then you should know that this workaround will not work while SELinux is enabled. If you want to use the files, you will have to disable SELinux by going to System -> Administration -> Security Level and Firewall. You will have to reboot, but after that, everything should work fine.
One more thing. If your host is Windows, you may notice that the files on the shared folders will appear as only accessible by root (they are in fact fully modifiable by everyone, but GNOME won't see it and this can be an annoyance.) If you want, the patch below will make all files appear with proper permissions (all permissions for everyone.) Apply it using the same steps used for the patch above.
vmhgfs-perm-fix.patch ()
Now,all the ok.
下面是两个patch文件的内容:
1
diff -Naur vmhgfs-only/driver.c vmhgfs-only-new/driver.c
--- vmhgfs-only/driver.c 2006-08-04 14:25:52.000000000 -0300
+++ vmhgfs-only-new/driver.c 2006-10-28 15:26:14.000000000 -0300
@@ -41,8 +41,8 @@
#define HGFS_SB_TO_COMMON(sb) ((HgfsSuperInfo *)(sb)->s_fs_info)
#endif
-#define INODE_SET_II_P(inode, info) do { (inode)->u.generic_ip = (info); } while (0)
-#define INODE_GET_II_P(inode) ((HgfsInodeInfo *)(inode)->u.generic_ip)
+#define INODE_SET_II_P(inode, info) do { (inode)->i_private = (info); } while (0)
+#define INODE_GET_II_P(inode) ((HgfsInodeInfo *)(inode)->i_private)
/*
* 2.5.x kernels support nanoseconds timestamps.
@@ -760,7 +760,6 @@
inode->i_uid = 0; /* This is bogus, should be the mount owner. */
inode->i_gid = 0; /* This is bogus, should be the mount owner. */
inode->i_rdev = 0; /* Device nodes are not supported */
- inode->i_blksize = HGFS_BLOCKSIZE;
inode->i_blocks = (attr->size + HGFS_BLOCKSIZE - 1) / HGFS_BLOCKSIZE;
inode->i_size = attr->size;
HGFS_SET_TIME(inode->i_atime, attr->accessTime);
2
--- vmhgfs-only/driver.c 2006-10-28 15:26:14.000000000 -0300
+++ vmhgfs-only/driver.c-new 2006-10-28 15:34:07.000000000 -0300
@@ -755,7 +755,7 @@
/* Set the access mode. */
inode->i_mode &= ~S_IRWXUGO;
- inode->i_mode |= (attr->permissions << 6); /* Only applies to owner. */
+ inode->i_mode |= attr->permissions * 0111; /* Only applies to owner. */
inode->i_nlink = 1; /* Bogus? */
inode->i_uid = 0; /* This is bogus, should be the mount owner. */
inode->i_gid = 0; /* This is bogus, should be the mount owner. */
最后修改xorg config设置,不然重启后会报X-WINDOWS出错。
进入/etc/X11/,用文本打开xorg.conf,加上以下几段:
1、Section "Monitor"
Identifier "vmware"
EndSection
Section "InputDevice"
Identifier "Mouse0"
Driver "vmmouse"
Option "Protocol" "Auto"
Option "Device" "/dev/input/mouse0"
EndSection
2、Section "Monitor"
Identifier "Monitor0"
ModelName "LCD Panel 1280x1024"
HorizSync 31.5 - 67.0
VertRefresh 50.0 - 75.0
Option "dpms"
EndSection
然后找到 含有"ServerLayout" 的section, 在Section跟EndSection之间加上以下一行。
InputDevice "Mouse0" "CorePointer"
上面的配置不一定行的,只是个参考。
这个是我的x11的配置文件:
# Xorg configuration created by system-config-display
Section "ServerLayout"
Identifier "single head configuration"
Screen 0 "Screen0" 0 0
InputDevice "Mouse0" "CorePointer"
InputDevice "Keyboard0" "CoreKeyboard"
EndSection
Section "InputDevice"
Identifier "Keyboard0"
Driver "kbd"
Option "XkbModel" "pc105"
Option "XkbLayout" "us"
EndSection
Section "InputDevice"
Identifier "Mouse0"
Driver "vmmouse"
Option "Protocol" "Auto"
Option "Device" "/dev/input/mouse0"
EndSection
Section "Monitor"
### Comment all HorizSync and VertSync values to use DDC:
### Comment all HorizSync and VertSync values to use DDC:
Identifier "vmware"
ModelName "LCD Panel 1280*1024"
### Comment all HorizSync and VertSync values to use DDC:
HorizSync 31.5 - 67.0
VertRefresh 50.0 - 75.0
Option "dpms"
EndSection
Section "Device"
Identifier "VMware SVGA"
Driver "vmware"
EndSection
Section "Screen"
# Don't specify DefaultColorDepth unless you know what you're
# doing. It will override the driver's preferences which can
# cause the X server not to run if the host doesn't support the
# depth.
Identifier "Screen0"
Device "VMware SVGA"
Monitor "vmware"
DefaultDepth 24
SubSection "Display"
# VGA mode: better left untouched
Viewport 0 0
Depth 4
Modes "640x480"
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 8
Modes "1024x768"
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 15
Modes "1024x768"
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 16
Modes "1024x768"
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 24
Modes "1024x768" "800x600" "640x480"
EndSubSection
EndSection