【问题】
折腾:
【记录】继续折腾VMWare Workstation 8下的虚拟机Ubuntu 13.04中的文件夹共享
期间,在安装VMWare Tools时出错:
Using 2.6.x kernel build system. make: Entering directory `/tmp/vmware-root/modules/vmci-only' make -C /lib/modules/3.8.0-27-generic/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. \ MODULEBUILDDIR= modules make[1]: Entering directory `/usr/src/linux-headers-3.8.0-27-generic' CC [M] /tmp/vmware-root/modules/vmci-only/linux/driver.o CC [M] /tmp/vmware-root/modules/vmci-only/linux/vmciKernelIf.o CC [M] /tmp/vmware-root/modules/vmci-only/common/vmciContext.o CC [M] /tmp/vmware-root/modules/vmci-only/common/vmciDatagram.o CC [M] /tmp/vmware-root/modules/vmci-only/common/vmciDoorbell.o CC [M] /tmp/vmware-root/modules/vmci-only/common/vmciDriver.o CC [M] /tmp/vmware-root/modules/vmci-only/common/vmciEvent.o CC [M] /tmp/vmware-root/modules/vmci-only/common/vmciHashtable.o CC [M] /tmp/vmware-root/modules/vmci-only/common/vmciQPair.o CC [M] /tmp/vmware-root/modules/vmci-only/common/vmciQueuePair.o CC [M] /tmp/vmware-root/modules/vmci-only/common/vmciResource.o CC [M] /tmp/vmware-root/modules/vmci-only/common/vmciRoute.o CC [M] /tmp/vmware-root/modules/vmci-only/driverLog.o /tmp/vmware-root/modules/vmci-only/linux/driver.c:127:4: error: implicit declaration of function ‘__devexit_p’ [-Werror=implicit-function-declaration] /tmp/vmware-root/modules/vmci-only/linux/driver.c:127:4: error: initializer element is not constant /tmp/vmware-root/modules/vmci-only/linux/driver.c:127:4: error: (near initialization for ‘vmci_driver.remove’) /tmp/vmware-root/modules/vmci-only/linux/driver.c:1745:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘vmci_probe_device’ /tmp/vmware-root/modules/vmci-only/linux/driver.c:1973:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘vmci_remove_device’ /tmp/vmware-root/modules/vmci-only/linux/driver.c: In function ‘__check_disable_host’: /tmp/vmware-root/modules/vmci-only/linux/driver.c:2498:1: warning: return from incompatible pointer type [enabled by default] /tmp/vmware-root/modules/vmci-only/linux/driver.c: In function ‘__check_disable_guest’: /tmp/vmware-root/modules/vmci-only/linux/driver.c:2501:1: warning: return from incompatible pointer type [enabled by default] /tmp/vmware-root/modules/vmci-only/linux/driver.c: In function ‘__check_disable_msi’: /tmp/vmware-root/modules/vmci-only/linux/driver.c:2504:1: warning: return from incompatible pointer type [enabled by default] /tmp/vmware-root/modules/vmci-only/linux/driver.c: In function ‘__check_disable_msix’: /tmp/vmware-root/modules/vmci-only/linux/driver.c:2507:1: warning: return from incompatible pointer type [enabled by default] /tmp/vmware-root/modules/vmci-only/linux/driver.c: At top level: /tmp/vmware-root/modules/vmci-only/linux/driver.c:119:12: warning: ‘vmci_probe_device’ used but never defined [enabled by default] /tmp/vmware-root/modules/vmci-only/linux/driver.c:121:13: warning: ‘vmci_remove_device’ used but never defined [enabled by default] /tmp/vmware-root/modules/vmci-only/linux/driver.c:2054:1: warning: ‘vmci_interrupt’ defined but not used [-Wunused-function] /tmp/vmware-root/modules/vmci-only/linux/driver.c:2128:1: warning: ‘vmci_interrupt_bm’ defined but not used [-Wunused-function] /tmp/vmware-root/modules/vmci-only/linux/driver.c:1708:1: warning: ‘vmci_enable_msix’ defined but not used [-Wunused-function] cc1: some warnings being treated as errors make[2]: *** [/tmp/vmware-root/modules/vmci-only/linux/driver.o] Error 1 make[2]: *** Waiting for unfinished jobs.... make[1]: *** [_module_/tmp/vmware-root/modules/vmci-only] Error 2 make[1]: Leaving directory `/usr/src/linux-headers-3.8.0-27-generic' make: *** [vmci.ko] Error 2 make: Leaving directory `/tmp/vmware-root/modules/vmci-only'
【解决过程】
1.看到编译的时候,用的是:
/tmp/vmware-root/modules/vmci-only/linux/driver.c
所以,去给其打patch,看看是否可行:
crifan@ubuntu:source$ cd /tmp/vmware-root/modules/vmci-only/ bash: cd: /tmp/vmware-root/modules/vmci-only/: Permission denied crifan@ubuntu:source$ sudo cd /tmp/vmware-root/modules/vmci-only/ sudo: cd: command not found crifan@ubuntu:source$ sudo usage: sudo [-D level] -h | -K | -k | -V usage: sudo -v [-AknS] [-D level] [-g groupname|#gid] [-p prompt] [-u user name|#uid] usage: sudo -l[l] [-AknS] [-D level] [-g groupname|#gid] [-p prompt] [-U user name] [-u user name|#uid] [-g groupname|#gid] [command] usage: sudo [-AbEHknPS] [-r role] [-t type] [-C fd] [-D level] [-g groupname|#gid] [-p prompt] [-u user name|#uid] [-g groupname|#gid] [VAR=value] [-i|-s] [<command>] usage: sudo -e [-AknS] [-r role] [-t type] [-C fd] [-D level] [-g groupname|#gid] [-p prompt] [-u user name|#uid] file ... crifan@ubuntu:source$ chown --help Usage: chown [OPTION]... [OWNER][:[GROUP]] FILE... or: chown [OPTION]... --reference=RFILE FILE... Change the owner and/or group of each FILE to OWNER and/or GROUP. With --reference, change the owner and group of each FILE to those of RFILE. -c, --changes like verbose but report only when a change is made -f, --silent, --quiet suppress most error messages -v, --verbose output a diagnostic for every file processed --dereference affect the referent of each symbolic link (this is the default), rather than the symbolic link itself -h, --no-dereference affect symbolic links instead of any referenced file (useful only on systems that can change the ownership of a symlink) --from=CURRENT_OWNER:CURRENT_GROUP change the owner and/or group of each file only if its current owner and/or group match those specified here. Either may be omitted, in which case a match is not required for the omitted attribute --no-preserve-root do not treat '/' specially (the default) --preserve-root fail to operate recursively on '/' --reference=RFILE use RFILE's owner and group rather than specifying OWNER:GROUP values -R, --recursive operate on files and directories recursively The following options modify how a hierarchy is traversed when the -R option is also specified. If more than one is specified, only the final one takes effect. -H if a command line argument is a symbolic link to a directory, traverse it -L traverse every symbolic link to a directory encountered -P do not traverse any symbolic links (default) --help display this help and exit --version output version information and exit Owner is unchanged if missing. Group is unchanged if missing, but changed to login group if implied by a ':' following a symbolic OWNER. OWNER and GROUP may be numeric as well as symbolic. Examples: chown root /u Change the owner of /u to "root". chown root:staff /u Likewise, but also change its group to "staff". chown -hR root /u Change the owner of /u and subfiles to "root". Report chown bugs to [email protected] GNU coreutils home page: <http://www.gnu.org/software/coreutils/> General help using GNU software: <http://www.gnu.org/gethelp/> For complete documentation, run: info coreutils 'chown invocation' crifan@ubuntu:source$ chown -R crifan /tmp/vmware-root/modules/vmci-only/ chown: cannot access ‘/tmp/vmware-root/modules/vmci-only/’: Permission denied crifan@ubuntu:source$ sudo chown -R crifan /tmp/vmware-root/modules/vmci-only/ chown: cannot access ‘/tmp/vmware-root/modules/vmci-only/’: No such file or directory crifan@ubuntu:source$ sudo chown -R crifan /tmp/vmware-root/ crifan@ubuntu:source$ cd /tmp/vmware-root/modules/vmci-only/ bash: cd: /tmp/vmware-root/modules/vmci-only/: No such file or directory crifan@ubuntu:source$ cd /tmp/vmware-root/ crifan@ubuntu:vmware-root$ ls apploader-1231.log apploader-17601.log apploader-25528.log apploader-5290.log modconfig-17649.log modconfig-5260.log apploader-12522.log apploader-17607.log apploader-25552.log apploader-5671.log modconfig-17671.log modconfig-5275.log apploader-12530.log apploader-17622.log apploader-25561.log apploader-5676.log modconfig-18249.log modconfig-5290.log apploader-12543.log apploader-17628.log apploader-25572.log apploader-6058.log modconfig-18254.log modconfig-5671.log apploader-12614.log apploader-17634.log apploader-25645.log apploader-6063.log modconfig-19006.log modconfig-5676.log apploader-12618.log apploader-17649.log apploader-25649.log apploader-6293.log modconfig-19011.log modconfig-6058.log apploader-1390.log apploader-17671.log apploader-5222.log apploader-6298.log modconfig-19241.log modconfig-6063.log apploader-1402.log apploader-18249.log apploader-5227.log modconfig-17596.log modconfig-19246.log modconfig-6293.log apploader-1436.log apploader-18254.log apploader-5233.log modconfig-17601.log modconfig-5222.log modconfig-6298.log apploader-1440.log apploader-19006.log apploader-5248.log modconfig-17607.log modconfig-5227.log apploader-1505.log apploader-19011.log apploader-5254.log modconfig-17622.log modconfig-5233.log apploader-1511.log apploader-19241.log apploader-5260.log modconfig-17628.log modconfig-5248.log apploader-17596.log apploader-19246.log apploader-5275.log modconfig-17634.log modconfig-5254.log crifan@ubuntu:vmware-root$ ls -la total 392 drwx------ 2 crifan root 4096 Aug 14 19:46 . drwxrwxrwt 11 root root 4096 Aug 14 19:58 .. -rw-r--r-- 1 crifan root 4183 Aug 14 19:03 apploader-1231.log -rw-r--r-- 1 crifan root 4187 Aug 14 19:46 apploader-12522.log -rw-r--r-- 1 crifan root 4117 Aug 14 19:46 apploader-12530.log -rw-r--r-- 1 crifan root 4215 Aug 14 19:46 apploader-12543.log -rw-r--r-- 1 crifan root 2224 Aug 14 19:46 apploader-12614.log -rw-r--r-- 1 crifan root 2211 Aug 14 19:46 apploader-12618.log -rw-r--r-- 1 crifan root 4113 Aug 14 19:03 apploader-1390.log -rw-r--r-- 1 crifan root 4211 Aug 14 19:03 apploader-1402.log -rw-r--r-- 1 crifan root 2223 Aug 14 19:03 apploader-1436.log -rw-r--r-- 1 crifan root 2210 Aug 14 19:03 apploader-1440.log -rw------- 1 crifan lp 2379 Aug 14 19:03 apploader-1505.log -rw------- 1 crifan lp 2379 Aug 14 19:03 apploader-1511.log -rw-r--r-- 1 crifan root 4030 Aug 14 19:25 apploader-17596.log -rw-r--r-- 1 crifan root 4008 Aug 14 19:25 apploader-17601.log -rw-r--r-- 1 crifan root 4070 Aug 14 19:25 apploader-17607.log -rw-r--r-- 1 crifan root 4044 Aug 14 19:25 apploader-17622.log -rw-r--r-- 1 crifan root 4044 Aug 14 19:25 apploader-17628.log -rw-r--r-- 1 crifan root 4168 Aug 14 19:25 apploader-17634.log -rw-r--r-- 1 crifan root 4168 Aug 14 19:25 apploader-17649.log -rw-r--r-- 1 crifan root 4196 Aug 14 19:28 apploader-17671.log -rw-r--r-- 1 crifan root 4032 Aug 14 19:39 apploader-18249.log -rw-r--r-- 1 crifan root 4200 Aug 14 19:39 apploader-18254.log -rw-r--r-- 1 crifan root 4034 Aug 14 19:39 apploader-19006.log -rw-r--r-- 1 crifan root 4204 Aug 14 19:39 apploader-19011.log -rw-r--r-- 1 crifan root 4036 Aug 14 19:40 apploader-19241.log -rw-r--r-- 1 crifan root 4208 Aug 14 19:40 apploader-19246.log -rw-r--r-- 1 crifan root 2925 Aug 14 19:40 apploader-25528.log -rw-r--r-- 1 crifan root 4187 Aug 14 19:40 apploader-25552.log -rw-r--r-- 1 crifan root 4117 Aug 14 19:40 apploader-25561.log -rw-r--r-- 1 crifan root 4215 Aug 14 19:40 apploader-25572.log -rw-r--r-- 1 crifan root 2224 Aug 14 19:40 apploader-25645.log -rw-r--r-- 1 crifan root 2211 Aug 14 19:40 apploader-25649.log -rw-r--r-- 1 crifan root 4029 Aug 14 19:44 apploader-5222.log -rw-r--r-- 1 crifan root 4007 Aug 14 19:44 apploader-5227.log -rw-r--r-- 1 crifan root 4069 Aug 14 19:44 apploader-5233.log -rw-r--r-- 1 crifan root 4043 Aug 14 19:44 apploader-5248.log -rw-r--r-- 1 crifan root 4043 Aug 14 19:44 apploader-5254.log -rw-r--r-- 1 crifan root 4167 Aug 14 19:44 apploader-5260.log -rw-r--r-- 1 crifan root 4167 Aug 14 19:44 apploader-5275.log -rw-r--r-- 1 crifan root 4195 Aug 14 19:44 apploader-5290.log -rw-r--r-- 1 crifan root 4031 Aug 14 19:46 apploader-5671.log -rw-r--r-- 1 crifan root 4199 Aug 14 19:46 apploader-5676.log -rw-r--r-- 1 crifan root 4033 Aug 14 19:46 apploader-6058.log -rw-r--r-- 1 crifan root 4203 Aug 14 19:46 apploader-6063.log -rw-r--r-- 1 crifan root 4035 Aug 14 19:46 apploader-6293.log -rw-r--r-- 1 crifan root 4207 Aug 14 19:46 apploader-6298.log -rw-r--r-- 1 crifan root 2794 Aug 14 19:25 modconfig-17596.log -rw-r--r-- 1 crifan root 2677 Aug 14 19:25 modconfig-17601.log -rw-r--r-- 1 crifan root 3427 Aug 14 19:25 modconfig-17607.log -rw-r--r-- 1 crifan root 2607 Aug 14 19:25 modconfig-17622.log -rw-r--r-- 1 crifan root 2607 Aug 14 19:25 modconfig-17628.log -rw-r--r-- 1 crifan root 3041 Aug 14 19:25 modconfig-17634.log -rw-r--r-- 1 crifan root 3041 Aug 14 19:25 modconfig-17649.log -rw-r--r-- 1 crifan root 3629 Aug 14 19:28 modconfig-17671.log -rw-r--r-- 1 crifan root 2794 Aug 14 19:39 modconfig-18249.log -rw-r--r-- 1 crifan root 4135 Aug 14 19:39 modconfig-18254.log -rw-r--r-- 1 crifan root 2794 Aug 14 19:39 modconfig-19006.log -rw-r--r-- 1 crifan root 3637 Aug 14 19:39 modconfig-19011.log -rw-r--r-- 1 crifan root 2794 Aug 14 19:40 modconfig-19241.log -rw-r--r-- 1 crifan root 3712 Aug 14 19:40 modconfig-19246.log -rw-r--r-- 1 crifan root 2793 Aug 14 19:44 modconfig-5222.log -rw-r--r-- 1 crifan root 2676 Aug 14 19:44 modconfig-5227.log -rw-r--r-- 1 crifan root 3426 Aug 14 19:44 modconfig-5233.log -rw-r--r-- 1 crifan root 2606 Aug 14 19:44 modconfig-5248.log -rw-r--r-- 1 crifan root 2606 Aug 14 19:44 modconfig-5254.log -rw-r--r-- 1 crifan root 3040 Aug 14 19:44 modconfig-5260.log -rw-r--r-- 1 crifan root 3040 Aug 14 19:44 modconfig-5275.log -rw-r--r-- 1 crifan root 3628 Aug 14 19:44 modconfig-5290.log -rw-r--r-- 1 crifan root 2793 Aug 14 19:46 modconfig-5671.log -rw-r--r-- 1 crifan root 3628 Aug 14 19:46 modconfig-5676.log -rw-r--r-- 1 crifan root 2793 Aug 14 19:46 modconfig-6058.log -rw-r--r-- 1 crifan root 3636 Aug 14 19:46 modconfig-6063.log -rw-r--r-- 1 crifan root 2793 Aug 14 19:46 modconfig-6293.log -rw-r--r-- 1 crifan root 3711 Aug 14 19:46 modconfig-6298.log crifan@ubuntu:vmware-root$
很明显,tmp文件夹下面的东西,是在安装期间,临时拷贝过去的。
2.所以,应该还是去看看,之前针对linux/driver.c打的那个补丁vmware-vmci.patch,是否真的生效了,以后打补丁的内容本身,是否是对的。
crifan@ubuntu:source$ ls legacy vmblock.tar vmci.tar vmhgfs-only vmhgfs.tar.old.0 vmsync.tar vmxnet3_npa.tar vmxnet.tar pvscsi.tar vmci-only vmci.tar.old.0 vmhgfs.tar vmmemctl.tar vmwgfx.tar vmxnet3.tar vsock.tar crifan@ubuntu:source$ ls -lha total 13M drwxr-xr-x 5 root root 4.0K Aug 14 19:44 . drwxr-xr-x 4 root root 4.0K Aug 14 19:44 .. drwxr-xr-x 2 root root 4.0K Aug 14 19:44 legacy -rw-r--r-- 1 root root 800K Aug 14 19:44 pvscsi.tar -rw-r--r-- 1 root root 710K Aug 14 19:44 vmblock.tar drwxr-xr-x 5 root root 4.0K Feb 28 22:06 vmci-only -rw-r--r-- 1 root root 1.1M Aug 14 19:44 vmci.tar -rw-r--r-- 1 root root 1.2M Aug 14 19:44 vmci.tar.old.0 drwxr-xr-x 3 root root 4.0K Feb 28 22:06 vmhgfs-only -rw-r--r-- 1 root root 1.3M Aug 14 19:44 vmhgfs.tar -rw-r--r-- 1 root root 1.3M Aug 14 19:44 vmhgfs.tar.old.0 -rw-r--r-- 1 root root 700K Aug 14 19:44 vmmemctl.tar -rw-r--r-- 1 root root 640K Aug 14 19:44 vmsync.tar -rw-r--r-- 1 root root 1.8M Aug 14 19:44 vmwgfx.tar -rw-r--r-- 1 root root 970K Aug 14 19:44 vmxnet3_npa.tar -rw-r--r-- 1 root root 920K Aug 14 19:44 vmxnet3.tar -rw-r--r-- 1 root root 810K Aug 14 19:44 vmxnet.tar -rw-r--r-- 1 root root 930K Aug 14 19:44 vsock.tar crifan@ubuntu:source$
看到,有对应的vmci.tar.old.0和vmhgfs.tar.old.0,很明显,对应着之前的:
File /usr/lib/vmware-tools/modules/source/vmhgfs.tar is backed up to /usr/lib/vmware-tools/modules/source/vmhgfs.tar.old.0. ... File /usr/lib/vmware-tools/modules/source/vmci.tar is backed up to /usr/lib/vmware-tools/modules/source/vmci.tar.old.0.
好像是:
vmware tools安装脚本,发现我们改动了那两个tar,所以就另存为old.0,而不用了?
3.还是先去remove旧的open-vm-tools:
crifan@ubuntu:vmware-tools-distrib$ sudo apt-get autoremove open-vm-tools Reading package lists... Done Building dependency tree Reading state information... Done Package 'open-vm-tools' is not installed, so not removed The following packages will be REMOVED: dkms libdumbnet1 zerofree 0 upgraded, 0 newly installed, 3 to remove and 13 not upgraded. After this operation, 494 kB disk space will be freed. Do you want to continue [Y/n]? y (Reading database ... 189520 files and directories currently installed.) Removing dkms ... Removing libdumbnet1 ... Removing zerofree ... Processing triggers for man-db ... Processing triggers for libc-bin ... ldconfig deferred processing now taking place
再把我们打了补丁的包的,弄过来:
crifan@ubuntu:vmware-tools-distrib$ ls /usr/lib/vmware-tools/ bin/ configurator/ include/ lib64/ plugins/ sbin/ share/ bin32/ hlp/ lib/ libconf/ plugins32/ sbin32/ bin64/ icu/ lib32/ modules/ plugins64/ sbin64/ crifan@ubuntu:vmware-tools-distrib$ ls /usr/lib/vmware-tools/modules/source/ legacy vmblock.tar vmci.tar vmhgfs-only vmhgfs.tar.old.0 vmsync.tar vmxnet3_npa.tar vmxnet.tar pvscsi.tar vmci-only vmci.tar.old.0 vmhgfs.tar vmmemctl.tar vmwgfx.tar vmxnet3.tar vsock.tar crifan@ubuntu:vmware-tools-distrib$ cd /usr/lib/vmware-tools/modules/source/ crifan@ubuntu:source$ mv vmhgfs.tar vmhgfs.tar_backup mv: cannot move ‘vmhgfs.tar’ to ‘vmhgfs.tar_backup’: Permission denied crifan@ubuntu:source$ sudo mv vmhgfs.tar vmhgfs.tar_backup crifan@ubuntu:source$ sudo cp vmhgfs.tar.old.0 vmhgfs.tar crifan@ubuntu:source$ sudo mv vmci.tar vmci.tar vmci.tar.old.0 crifan@ubuntu:source$ sudo mv vmci.tar vmci.tar_backup crifan@ubuntu:source$ sudo cp vmci.tar.old.0 vmci.tar crifan@ubuntu:source$
然后再重新安装此vmware tools:
然后发现,安装到这一步:
crifan@ubuntu:vmware-tools-distrib$ sudo ./vmware-install.pl The installer found the following conflicting packages installed on the system and will now remove them: open-vm-tools dpkg: warning: ignoring request to remove open-vm-tools, only the config files of which are on the system; use --purge to remove them too A previous installation of VMware Tools has been detected. The previous installation was made by the tar installer (version 4). Keeping the tar4 installer database format. You have a version of VMware Tools installed. Continuing this install will first uninstall the currently installed version. Do you wish to continue? (yes/no) [yes] Uninstalling the tar installation of VMware Tools. Stopping services for VMware Tools vmware-tools stop/waiting File /usr/lib/vmware-tools/lib32/libconf/etc/gtk-2.0/gdk-pixbuf.loaders is backed up to /usr/lib/vmware-tools/lib32/libconf/etc/gtk-2.0/gdk-pixbuf.loaders.old.12. File /usr/lib/vmware-tools/lib32/libconf/etc/pango/pangorc is backed up to /usr/lib/vmware-tools/lib32/libconf/etc/pango/pangorc.old.12. This program previously created the file /usr/lib/vmware-tools/libconf/etc/pango/pangorc, and was about to remove it. Somebody else apparently did it already. File /etc/vmware-tools/vmware-user.desktop is backed up to /etc/vmware-tools/vmware-user.desktop.old.12. File /usr/lib/vmware-tools/lib32/libconf/etc/fonts/fonts.conf is backed up to /usr/lib/vmware-tools/lib32/libconf/etc/fonts/fonts.conf.old.10. File /usr/lib/vmware-tools/modules/source/vmhgfs.tar is backed up to /usr/lib/vmware-tools/modules/source/vmhgfs.tar.old.1. This program previously created the file /usr/lib/vmware-tools/lib32/libconf/etc/pango/pango.modules, and was about to remove it. Somebody else apparently did it already. This program previously created the file /usr/lib/vmware-tools/libconf/etc/gtk-2.0/gdk-pixbuf.loaders, and was about to remove it. Somebody else apparently did it already. File /usr/lib/vmware-tools/lib32/libconf/etc/gtk-2.0/gtk.immodules is backed up to /usr/lib/vmware-tools/lib32/libconf/etc/gtk-2.0/gtk.immodules.old.12. This program previously created the file /usr/lib/vmware-tools/libconf/etc/gtk-2.0/gtk.immodules, and was about to remove it. Somebody else apparently did it already. This program previously created the file /usr/lib/vmware-tools/lib32/libconf/etc/pango/pangox.aliases, and was about to remove it. Somebody else apparently did it already. File /usr/lib/vmware-tools/modules/source/vmci.tar is backed up to /usr/lib/vmware-tools/modules/source/vmci.tar.old.1. update-initramfs: Generating /boot/initrd.img-3.8.0-27-generic update-initramfs: Generating /boot/initrd.img-3.8.0-19-generic The removal of VMware Tools 8.8.6 build-1035889 for Linux completed successfully. Installing VMware Tools. In which directory do you want to install the binary files? [/usr/bin]
时,已经又把我们的tar包,弄成old.1了:
File /usr/lib/vmware-tools/modules/source/vmhgfs.tar is backed up to /usr/lib/vmware-tools/modules/source/vmhgfs.tar.old.1. File /usr/lib/vmware-tools/modules/source/vmci.tar is backed up to /usr/lib/vmware-tools/modules/source/vmci.tar.old.1.
4.不过,发现此时,还没有去解压出来:
crifan@ubuntu:source$ pwd /usr/lib/vmware-tools/modules/source crifan@ubuntu:source$ ls /tmp/vmware- vmware-config0/ vmware-config1/ vmware-crifan/ vmware-root/ crifan@ubuntu:source$ ls /tmp/vmware-root/ apploader-1231.log apploader-17601.log apploader-25528.log apploader-5290.log modconfig-17649.log modconfig-5260.log apploader-12522.log apploader-17607.log apploader-25552.log apploader-5671.log modconfig-17671.log modconfig-5275.log apploader-12530.log apploader-17622.log apploader-25561.log apploader-5676.log modconfig-18249.log modconfig-5290.log apploader-12543.log apploader-17628.log apploader-25572.log apploader-6058.log modconfig-18254.log modconfig-5671.log apploader-12614.log apploader-17634.log apploader-25645.log apploader-6063.log modconfig-19006.log modconfig-5676.log apploader-12618.log apploader-17649.log apploader-25649.log apploader-6293.log modconfig-19011.log modconfig-6058.log apploader-1390.log apploader-17671.log apploader-5222.log apploader-6298.log modconfig-19241.log modconfig-6063.log apploader-1402.log apploader-18249.log apploader-5227.log modconfig-17596.log modconfig-19246.log modconfig-6293.log apploader-1436.log apploader-18254.log apploader-5233.log modconfig-17601.log modconfig-5222.log modconfig-6298.log apploader-1440.log apploader-19006.log apploader-5248.log modconfig-17607.log modconfig-5227.log apploader-1505.log apploader-19011.log apploader-5254.log modconfig-17622.log modconfig-5233.log apploader-1511.log apploader-19241.log apploader-5260.log modconfig-17628.log modconfig-5248.log apploader-17596.log apploader-19246.log apploader-5275.log modconfig-17634.log modconfig-5254.log crifan@ubuntu:source$ ls /tmp/vmware-root/ -lha total 392K drwx------ 2 crifan root 4.0K Aug 14 19:46 . drwxrwxrwt 11 root root 4.0K Aug 14 20:09 .. -rw-r--r-- 1 crifan root 4.1K Aug 14 19:03 apploader-1231.log -rw-r--r-- 1 crifan root 4.1K Aug 14 19:46 apploader-12522.log -rw-r--r-- 1 crifan root 4.1K Aug 14 19:46 apploader-12530.log -rw-r--r-- 1 crifan root 4.2K Aug 14 19:46 apploader-12543.log -rw-r--r-- 1 crifan root 2.2K Aug 14 19:46 apploader-12614.log -rw-r--r-- 1 crifan root 2.2K Aug 14 19:46 apploader-12618.log -rw-r--r-- 1 crifan root 4.1K Aug 14 19:03 apploader-1390.log -rw-r--r-- 1 crifan root 4.2K Aug 14 19:03 apploader-1402.log -rw-r--r-- 1 crifan root 2.2K Aug 14 19:03 apploader-1436.log -rw-r--r-- 1 crifan root 2.2K Aug 14 19:03 apploader-1440.log -rw------- 1 crifan lp 2.4K Aug 14 19:03 apploader-1505.log -rw------- 1 crifan lp 2.4K Aug 14 19:03 apploader-1511.log -rw-r--r-- 1 crifan root 4.0K Aug 14 19:25 apploader-17596.log -rw-r--r-- 1 crifan root 4.0K Aug 14 19:25 apploader-17601.log -rw-r--r-- 1 crifan root 4.0K Aug 14 19:25 apploader-17607.log -rw-r--r-- 1 crifan root 4.0K Aug 14 19:25 apploader-17622.log -rw-r--r-- 1 crifan root 4.0K Aug 14 19:25 apploader-17628.log -rw-r--r-- 1 crifan root 4.1K Aug 14 19:25 apploader-17634.log -rw-r--r-- 1 crifan root 4.1K Aug 14 19:25 apploader-17649.log -rw-r--r-- 1 crifan root 4.1K Aug 14 19:28 apploader-17671.log -rw-r--r-- 1 crifan root 4.0K Aug 14 19:39 apploader-18249.log -rw-r--r-- 1 crifan root 4.2K Aug 14 19:39 apploader-18254.log -rw-r--r-- 1 crifan root 4.0K Aug 14 19:39 apploader-19006.log -rw-r--r-- 1 crifan root 4.2K Aug 14 19:39 apploader-19011.log -rw-r--r-- 1 crifan root 4.0K Aug 14 19:40 apploader-19241.log -rw-r--r-- 1 crifan root 4.2K Aug 14 19:40 apploader-19246.log -rw-r--r-- 1 crifan root 2.9K Aug 14 19:40 apploader-25528.log -rw-r--r-- 1 crifan root 4.1K Aug 14 19:40 apploader-25552.log -rw-r--r-- 1 crifan root 4.1K Aug 14 19:40 apploader-25561.log -rw-r--r-- 1 crifan root 4.2K Aug 14 19:40 apploader-25572.log -rw-r--r-- 1 crifan root 2.2K Aug 14 19:40 apploader-25645.log -rw-r--r-- 1 crifan root 2.2K Aug 14 19:40 apploader-25649.log -rw-r--r-- 1 crifan root 4.0K Aug 14 19:44 apploader-5222.log -rw-r--r-- 1 crifan root 4.0K Aug 14 19:44 apploader-5227.log -rw-r--r-- 1 crifan root 4.0K Aug 14 19:44 apploader-5233.log -rw-r--r-- 1 crifan root 4.0K Aug 14 19:44 apploader-5248.log -rw-r--r-- 1 crifan root 4.0K Aug 14 19:44 apploader-5254.log -rw-r--r-- 1 crifan root 4.1K Aug 14 19:44 apploader-5260.log -rw-r--r-- 1 crifan root 4.1K Aug 14 19:44 apploader-5275.log -rw-r--r-- 1 crifan root 4.1K Aug 14 19:44 apploader-5290.log -rw-r--r-- 1 crifan root 4.0K Aug 14 19:46 apploader-5671.log -rw-r--r-- 1 crifan root 4.2K Aug 14 19:46 apploader-5676.log -rw-r--r-- 1 crifan root 4.0K Aug 14 19:46 apploader-6058.log -rw-r--r-- 1 crifan root 4.2K Aug 14 19:46 apploader-6063.log -rw-r--r-- 1 crifan root 4.0K Aug 14 19:46 apploader-6293.log -rw-r--r-- 1 crifan root 4.2K Aug 14 19:46 apploader-6298.log -rw-r--r-- 1 crifan root 2.8K Aug 14 19:25 modconfig-17596.log -rw-r--r-- 1 crifan root 2.7K Aug 14 19:25 modconfig-17601.log -rw-r--r-- 1 crifan root 3.4K Aug 14 19:25 modconfig-17607.log -rw-r--r-- 1 crifan root 2.6K Aug 14 19:25 modconfig-17622.log -rw-r--r-- 1 crifan root 2.6K Aug 14 19:25 modconfig-17628.log -rw-r--r-- 1 crifan root 3.0K Aug 14 19:25 modconfig-17634.log -rw-r--r-- 1 crifan root 3.0K Aug 14 19:25 modconfig-17649.log -rw-r--r-- 1 crifan root 3.6K Aug 14 19:28 modconfig-17671.log -rw-r--r-- 1 crifan root 2.8K Aug 14 19:39 modconfig-18249.log -rw-r--r-- 1 crifan root 4.1K Aug 14 19:39 modconfig-18254.log -rw-r--r-- 1 crifan root 2.8K Aug 14 19:39 modconfig-19006.log -rw-r--r-- 1 crifan root 3.6K Aug 14 19:39 modconfig-19011.log -rw-r--r-- 1 crifan root 2.8K Aug 14 19:40 modconfig-19241.log -rw-r--r-- 1 crifan root 3.7K Aug 14 19:40 modconfig-19246.log -rw-r--r-- 1 crifan root 2.8K Aug 14 19:44 modconfig-5222.log -rw-r--r-- 1 crifan root 2.7K Aug 14 19:44 modconfig-5227.log -rw-r--r-- 1 crifan root 3.4K Aug 14 19:44 modconfig-5233.log -rw-r--r-- 1 crifan root 2.6K Aug 14 19:44 modconfig-5248.log -rw-r--r-- 1 crifan root 2.6K Aug 14 19:44 modconfig-5254.log -rw-r--r-- 1 crifan root 3.0K Aug 14 19:44 modconfig-5260.log -rw-r--r-- 1 crifan root 3.0K Aug 14 19:44 modconfig-5275.log -rw-r--r-- 1 crifan root 3.6K Aug 14 19:44 modconfig-5290.log -rw-r--r-- 1 crifan root 2.8K Aug 14 19:46 modconfig-5671.log -rw-r--r-- 1 crifan root 3.6K Aug 14 19:46 modconfig-5676.log -rw-r--r-- 1 crifan root 2.8K Aug 14 19:46 modconfig-6058.log -rw-r--r-- 1 crifan root 3.6K Aug 14 19:46 modconfig-6063.log -rw-r--r-- 1 crifan root 2.8K Aug 14 19:46 modconfig-6293.log -rw-r--r-- 1 crifan root 3.7K Aug 14 19:46 modconfig-6298.log crifan@ubuntu:source$
所以,试试去手动,再次去把我们的打了补丁的包,弄成当前的:
结果却发现已经没了tar了,只有解压后的了:
crifan@ubuntu:source$ ls -lha total 7.2M drwxr-xr-x 4 root root 4.0K Aug 14 20:08 . drwxr-xr-x 3 root root 4.0K Aug 14 20:08 .. drwxr-xr-x 5 root root 4.0K Feb 28 22:06 vmci-only -rw-r--r-- 1 root root 1.1M Aug 14 19:44 vmci.tar_backup -rw-r--r-- 1 root root 1.2M Aug 14 19:44 vmci.tar.old.0 -rw-r--r-- 1 root root 1.2M Aug 14 20:08 vmci.tar.old.1 drwxr-xr-x 3 root root 4.0K Feb 28 22:06 vmhgfs-only -rw-r--r-- 1 root root 1.3M Aug 14 19:44 vmhgfs.tar_backup -rw-r--r-- 1 root root 1.3M Aug 14 19:44 vmhgfs.tar.old.0 -rw-r--r-- 1 root root 1.3M Aug 14 20:08 vmhgfs.tar.old.1 crifan@ubuntu:source$ cd .. crifan@ubuntu:modules$ ls source crifan@ubuntu:modules$ pwd /usr/lib/vmware-tools/modules crifan@ubuntu:modules$ cd source/ crifan@ubuntu:source$ ls vmci-only vmci.tar_backup vmci.tar.old.0 vmci.tar.old.1 vmhgfs-only vmhgfs.tar_backup vmhgfs.tar.old.0 vmhgfs.tar.old.1 crifan@ubuntu:source$ cd ls -a bash: cd: ls: No such file or directory crifan@ubuntu:source$ ls -a . .. vmci-only vmci.tar_backup vmci.tar.old.0 vmci.tar.old.1 vmhgfs-only vmhgfs.tar_backup vmhgfs.tar.old.0 vmhgfs.tar.old.1 crifan@ubuntu:source$
5.所以,那就去手动打patch:
结果发现竟然是,已经打过了:
crifan@ubuntu:source$ cd vmci-only/ crifan@ubuntu:vmci-only$ ls -lha total 60K drwxr-xr-x 5 root root 4.0K Feb 28 22:06 . drwxr-xr-x 4 root root 4.0K Aug 14 20:08 .. drwxr-xr-x 2 root root 4.0K Feb 28 22:06 common -r--r--r-- 1 root root 18K Feb 28 21:40 COPYING drwxr-xr-x 2 root root 4.0K Aug 14 19:39 linux -rw-r--r-- 1 root root 4.3K Feb 28 21:40 Makefile -r--r--r-- 1 root root 2.2K Feb 28 21:40 Makefile.kernel -r--r--r-- 1 root root 4.4K Feb 28 21:40 Makefile.normal drwxr-xr-x 3 root root 4.0K Feb 28 22:06 shared crifan@ubuntu:vmci-only$ sudo patch -p1 < /home/crifan/develop/vmwaretools/patches/vmware-vmci.patch patching file linux/driver.c Reversed (or previously applied) patch detected! Assume -R? [n] Apply anyway? [n] Skipping patch. 3 out of 3 hunks ignored -- saving rejects to file linux/driver.c.rej crifan@ubuntu:vmci-only$
6.那就只能继续去编译安装vmware tools了,根据之前的错误,找到参考资料:
去手动修改vmci-only/shared/compat_mm.h:
改为:
/* * In 2.4.10, vmtruncate was changed from returning void to returning int. */ //#if LINUX_VERSION_CODE < KERNEL_VERSION(2, 4, 10) #if LINUX_VERSION_CODE < KERNEL_VERSION(3, 8, 0) #define compat_vmtruncate(inode, size) \ ({ \ int result = 0; \ vmtruncate(inode, size); \ result; \ }) #else //#define compat_vmtruncate(inode, size) vmtruncate(inode, size) #define compat_vmtruncate(inode, size) \ ({ \ result = inode_newsize_ok(inode, size); \ if (!result) \ { \ truncate_setsize(inode, size); \ } \ result; \ }) #endif
(等弄好后,再去整理出来一个patch)
然后再去继续编译安装vmci试试,结果还是出错:
Using 2.6.x kernel build system. make: Entering directory `/tmp/vmware-root-1988730176/modules/vmci-only' make -C /lib/modules/3.8.0-27-generic/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. \ MODULEBUILDDIR= modules make[1]: Entering directory `/usr/src/linux-headers-3.8.0-27-generic' CC [M] /tmp/vmware-root-1988730176/modules/vmci-only/linux/driver.o CC [M] /tmp/vmware-root-1988730176/modules/vmci-only/linux/vmciKernelIf.o CC [M] /tmp/vmware-root-1988730176/modules/vmci-only/common/vmciContext.o CC [M] /tmp/vmware-root-1988730176/modules/vmci-only/common/vmciDatagram.o CC [M] /tmp/vmware-root-1988730176/modules/vmci-only/common/vmciDoorbell.o CC [M] /tmp/vmware-root-1988730176/modules/vmci-only/common/vmciDriver.o CC [M] /tmp/vmware-root-1988730176/modules/vmci-only/common/vmciEvent.o CC [M] /tmp/vmware-root-1988730176/modules/vmci-only/common/vmciHashtable.o CC [M] /tmp/vmware-root-1988730176/modules/vmci-only/common/vmciQPair.o CC [M] /tmp/vmware-root-1988730176/modules/vmci-only/common/vmciQueuePair.o CC [M] /tmp/vmware-root-1988730176/modules/vmci-only/common/vmciResource.o CC [M] /tmp/vmware-root-1988730176/modules/vmci-only/common/vmciRoute.o CC [M] /tmp/vmware-root-1988730176/modules/vmci-only/driverLog.o /tmp/vmware-root-1988730176/modules/vmci-only/linux/driver.c:127:4: error: implicit declaration of function ‘__devexit_p’ [-Werror=implicit-function-declaration] /tmp/vmware-root-1988730176/modules/vmci-only/linux/driver.c:127:4: error: initializer element is not constant /tmp/vmware-root-1988730176/modules/vmci-only/linux/driver.c:127:4: error: (near initialization for ‘vmci_driver.remove’) /tmp/vmware-root-1988730176/modules/vmci-only/linux/driver.c:1745:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘vmci_probe_device’ /tmp/vmware-root-1988730176/modules/vmci-only/linux/driver.c:1973:1: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘vmci_remove_device’ /tmp/vmware-root-1988730176/modules/vmci-only/linux/driver.c: In function ‘__check_disable_host’: /tmp/vmware-root-1988730176/modules/vmci-only/linux/driver.c:2498:1: warning: return from incompatible pointer type [enabled by default] /tmp/vmware-root-1988730176/modules/vmci-only/linux/driver.c: In function ‘__check_disable_guest’: /tmp/vmware-root-1988730176/modules/vmci-only/linux/driver.c:2501:1: warning: return from incompatible pointer type [enabled by default] /tmp/vmware-root-1988730176/modules/vmci-only/linux/driver.c: In function ‘__check_disable_msi’: /tmp/vmware-root-1988730176/modules/vmci-only/linux/driver.c:2504:1: warning: return from incompatible pointer type [enabled by default] /tmp/vmware-root-1988730176/modules/vmci-only/linux/driver.c: In function ‘__check_disable_msix’: /tmp/vmware-root-1988730176/modules/vmci-only/linux/driver.c:2507:1: warning: return from incompatible pointer type [enabled by default] /tmp/vmware-root-1988730176/modules/vmci-only/linux/driver.c: At top level: /tmp/vmware-root-1988730176/modules/vmci-only/linux/driver.c:119:12: warning: ‘vmci_probe_device’ used but never defined [enabled by default] /tmp/vmware-root-1988730176/modules/vmci-only/linux/driver.c:121:13: warning: ‘vmci_remove_device’ used but never defined [enabled by default] /tmp/vmware-root-1988730176/modules/vmci-only/linux/driver.c:2054:1: warning: ‘vmci_interrupt’ defined but not used [-Wunused-function] /tmp/vmware-root-1988730176/modules/vmci-only/linux/driver.c:2128:1: warning: ‘vmci_interrupt_bm’ defined but not used [-Wunused-function] /tmp/vmware-root-1988730176/modules/vmci-only/linux/driver.c:1708:1: warning: ‘vmci_enable_msix’ defined but not used [-Wunused-function] cc1: some warnings being treated as errors make[2]: *** [/tmp/vmware-root-1988730176/modules/vmci-only/linux/driver.o] Error 1 make[2]: *** Waiting for unfinished jobs.... make[1]: *** [_module_/tmp/vmware-root-1988730176/modules/vmci-only] Error 2 make[1]: Leaving directory `/usr/src/linux-headers-3.8.0-27-generic' make: *** [vmci.ko] Error 2 make: Leaving directory `/tmp/vmware-root-1988730176/modules/vmci-only'
7.此刻再去看看:
/tmp/vmware-root-1988730176/modules/vmci-only/linux/
的内容,是否是已经打了patch的:
结果还是,tmp下其实是没有解压出来的vmci的:
crifan@ubuntu:shared$ ls /tmp/vmware-root-1988730176/ ls: cannot open directory /tmp/vmware-root-1988730176/: Permission denied crifan@ubuntu:shared$ sudo ls /tmp/vmware-root-1988730176/ apploader-25373.log apploader-25399.log apploader-25426.log modconfig-25378.log modconfig-25405.log modconfig-25441.log apploader-25378.log apploader-25405.log apploader-25441.log modconfig-25384.log modconfig-25411.log apploader-25384.log apploader-25411.log modconfig-25373.log modconfig-25399.log modconfig-25426.log crifan@ubuntu:shared$ sudo chown -R crifan /tmp/vmware-root-1988730176/ crifan@ubuntu:shared$ ls /tmp/vmware-root-1988730176/ apploader-25373.log apploader-25399.log apploader-25426.log modconfig-25378.log modconfig-25405.log modconfig-25441.log apploader-25378.log apploader-25405.log apploader-25441.log modconfig-25384.log modconfig-25411.log apploader-25384.log apploader-25411.log modconfig-25373.log modconfig-25399.log modconfig-25426.log crifan@ubuntu:shared$
8.所以,只能去/usr/lib下看看了:
crifan@ubuntu:source$ ls legacy vmci-only vmci.tar.old.0 vmhgfs.tar vmhgfs.tar.old.1 vmwgfx.tar vmxnet.tar pvscsi.tar vmci.tar vmci.tar.old.1 vmhgfs.tar_backup vmmemctl.tar vmxnet3_npa.tar vsock.tar vmblock.tar vmci.tar_backup vmhgfs-only vmhgfs.tar.old.0 vmsync.tar vmxnet3.tar crifan@ubuntu:source$ cd vmci-only/shared/ crifan@ubuntu:shared$ ls autoconf compat_ioport.h compat_pci_mapping.h compat_version.h vm_basic_asm_x86.h vmciQueue.h backdoor_def.h compat_kernel.h compat_pgtable.h compat_workqueue.h vm_basic_defs.h vm_device_version.h backdoor_types.h compat_log2.h compat_sched.h dbllnklst.h vm_basic_math.h vmware.h circList.h compat_mm.h compat_scsi.h driver-config.h vm_basic_types.h vmware_pack_begin.h community_source.h compat_mm.h~ compat_semaphore.h driverLog.c vmci_call_defs.h vmware_pack_end.h compat_autoconf.h compat_module.h compat_skbuff.h driverLog.h vmci_defs.h vmware_pack_init.h compat_cred.h compat_mutex.h compat_slab.h guest_msg_def.h vmci_handle_array.h x86cpuid_asm.h compat_dcache.h compat_namei.h compat_sock.h includeCheck.h vmci_infrastructure.h x86cpuid.h compat_ethtool.h compat_netdevice.h compat_spinlock.h pgtbl.h vmci_iocontrols.h compat_fs.h compat_page-flags.h compat_statfs.h vm_assert.h vmciKernelAPI1.h compat_highmem.h compat_page.h compat_string.h vm_atomic.h vmciKernelAPI2.h compat_init.h compat_pagemap.h compat_timer.h vm_basic_asm.h vmciKernelAPI.h compat_interrupt.h compat_pci.h compat_uaccess.h vm_basic_asm_x86_64.h vmci_kernel_if.h crifan@ubuntu:shared$ cd .. crifan@ubuntu:vmci-only$ ls common COPYING linux Makefile Makefile.kernel Makefile.normal shared crifan@ubuntu:vmci-only$ cd linux/ crifan@ubuntu:linux$ ls driver.c driver.c.orig driver.c.rej vmciKernelIf.c vmci_version.h crifan@ubuntu:linux$ gedit driver.c
结果确认driver.c中,是修改过的:
static struct pci_driver vmci_driver = { .name = "vmci", .id_table = vmci_ids, .probe = vmci_probe_device, .remove = vmci_remove_device, };
所以,应该是安装过程中用的代码,没有用到正确的内容。
9.然后去手动删除掉当前的vmci-only,重新解压vmci.tar出来:
crifan@ubuntu:source$ ls legacy vmci-only vmci.tar.old.0 vmhgfs.tar vmhgfs.tar.old.1 vmwgfx.tar vmxnet.tar pvscsi.tar vmci.tar vmci.tar.old.1 vmhgfs.tar_backup vmmemctl.tar vmxnet3_npa.tar vsock.tar vmblock.tar vmci.tar_backup vmhgfs-only vmhgfs.tar.old.0 vmsync.tar vmxnet3.tar crifan@ubuntu:source$ sudo rm vmci-only/ -rf crifan@ubuntu:source$ ls -lha total 18M drwxr-xr-x 4 root root 4.0K Aug 14 22:09 . drwxr-xr-x 4 root root 4.0K Aug 14 21:52 .. drwxr-xr-x 2 root root 4.0K Aug 14 21:52 legacy -rw-r--r-- 1 root root 800K Aug 14 21:52 pvscsi.tar -rw-r--r-- 1 root root 710K Aug 14 21:52 vmblock.tar -rw-r--r-- 1 root root 1.1M Aug 14 21:52 vmci.tar -rw-r--r-- 1 root root 1.1M Aug 14 19:44 vmci.tar_backup -rw-r--r-- 1 root root 1.2M Aug 14 19:44 vmci.tar.old.0 -rw-r--r-- 1 root root 1.2M Aug 14 20:08 vmci.tar.old.1 drwxr-xr-x 3 root root 4.0K Feb 28 22:06 vmhgfs-only -rw-r--r-- 1 root root 1.3M Aug 14 21:52 vmhgfs.tar -rw-r--r-- 1 root root 1.3M Aug 14 19:44 vmhgfs.tar_backup -rw-r--r-- 1 root root 1.3M Aug 14 19:44 vmhgfs.tar.old.0 -rw-r--r-- 1 root root 1.3M Aug 14 20:08 vmhgfs.tar.old.1 -rw-r--r-- 1 root root 700K Aug 14 21:52 vmmemctl.tar -rw-r--r-- 1 root root 640K Aug 14 21:52 vmsync.tar -rw-r--r-- 1 root root 1.8M Aug 14 21:52 vmwgfx.tar -rw-r--r-- 1 root root 970K Aug 14 21:52 vmxnet3_npa.tar -rw-r--r-- 1 root root 920K Aug 14 21:52 vmxnet3.tar -rw-r--r-- 1 root root 810K Aug 14 21:52 vmxnet.tar -rw-r--r-- 1 root root 930K Aug 14 21:52 vsock.tar crifan@ubuntu:source$ sudo tar xf vmci.tar crifan@ubuntu:source$ ls -lha total 18M drwxr-xr-x 5 root root 4.0K Aug 14 22:09 . drwxr-xr-x 4 root root 4.0K Aug 14 21:52 .. drwxr-xr-x 2 root root 4.0K Aug 14 21:52 legacy -rw-r--r-- 1 root root 800K Aug 14 21:52 pvscsi.tar -rw-r--r-- 1 root root 710K Aug 14 21:52 vmblock.tar drwxr-xr-x 5 root root 4.0K Feb 28 22:06 vmci-only -rw-r--r-- 1 root root 1.1M Aug 14 21:52 vmci.tar -rw-r--r-- 1 root root 1.1M Aug 14 19:44 vmci.tar_backup -rw-r--r-- 1 root root 1.2M Aug 14 19:44 vmci.tar.old.0 -rw-r--r-- 1 root root 1.2M Aug 14 20:08 vmci.tar.old.1 drwxr-xr-x 3 root root 4.0K Feb 28 22:06 vmhgfs-only -rw-r--r-- 1 root root 1.3M Aug 14 21:52 vmhgfs.tar -rw-r--r-- 1 root root 1.3M Aug 14 19:44 vmhgfs.tar_backup -rw-r--r-- 1 root root 1.3M Aug 14 19:44 vmhgfs.tar.old.0 -rw-r--r-- 1 root root 1.3M Aug 14 20:08 vmhgfs.tar.old.1 -rw-r--r-- 1 root root 700K Aug 14 21:52 vmmemctl.tar -rw-r--r-- 1 root root 640K Aug 14 21:52 vmsync.tar -rw-r--r-- 1 root root 1.8M Aug 14 21:52 vmwgfx.tar -rw-r--r-- 1 root root 970K Aug 14 21:52 vmxnet3_npa.tar -rw-r--r-- 1 root root 920K Aug 14 21:52 vmxnet3.tar -rw-r--r-- 1 root root 810K Aug 14 21:52 vmxnet.tar -rw-r--r-- 1 root root 930K Aug 14 21:52 vsock.tar crifan@ubuntu:source$ sudo gedit vmci-only/linux/driver.c
然后发现果然是内容没有修改掉:
static struct pci_driver vmci_driver = { .name = "vmci", .id_table = vmci_ids, .probe = vmci_probe_device, .remove = __devexit_p(vmci_remove_device), };
所以,想办法,让vmware安装脚本,能够用到当前真正的打了补丁的这个vmci.tar。
不要再去生成old.X的文件。
再去看看,之前旧的:
crifan@ubuntu:source$ sudo rm vmci.tar crifan@ubuntu:source$ sudo cp vmci.tar.old.0 vmci.tar crifan@ubuntu:source$ sudo rm vmci-only/ -rf crifan@ubuntu:source$ sudo tar xf vmci.tar crifan@ubuntu:source$ sudo gedit vmci-only/linux/driver.c
果然是修改过后的:
static struct pci_driver vmci_driver = { .name = "vmci", .id_table = vmci_ids, .probe = vmci_probe_device, .remove = vmci_remove_device, };
所以,保持现在已经解压后的vmci-only文件夹,然后待会重新安装vmware tools,或许就可以直接用这个文件夹了?
而不再弄出个old.x了?
10.去看了看那个安装脚本,貌似是每次uninstall的时候,去备份的文件。
所以,此处去:
先手动卸载掉vmware tools:
crifan@ubuntu:vmware-tools-distrib$ sudo vmware-uninstall-tools.pl Uninstalling the tar installation of VMware Tools. Stopping services for VMware Tools initctl: Unknown instance: File /usr/lib/vmware-tools/lib32/libconf/etc/gtk-2.0/gdk-pixbuf.loaders is backed up to /usr/lib/vmware-tools/lib32/libconf/etc/gtk-2.0/gdk-pixbuf.loaders.old.13. File /usr/lib/vmware-tools/lib32/libconf/etc/pango/pangorc is backed up to /usr/lib/vmware-tools/lib32/libconf/etc/pango/pangorc.old.13. This program previously created the file /usr/lib/vmware-tools/libconf/etc/pango/pangorc, and was about to remove it. Somebody else apparently did it already. File /etc/vmware-tools/vmware-user.desktop is backed up to /etc/vmware-tools/vmware-user.desktop.old.13. File /usr/lib/vmware-tools/lib32/libconf/etc/fonts/fonts.conf is backed up to /usr/lib/vmware-tools/lib32/libconf/etc/fonts/fonts.conf.old.11. This program previously created the file /usr/lib/vmware-tools/lib32/libconf/etc/pango/pango.modules, and was about to remove it. Somebody else apparently did it already. This program previously created the file /usr/lib/vmware-tools/libconf/etc/gtk-2.0/gdk-pixbuf.loaders, and was about to remove it. Somebody else apparently did it already. File /usr/lib/vmware-tools/lib32/libconf/etc/gtk-2.0/gtk.immodules is backed up to /usr/lib/vmware-tools/lib32/libconf/etc/gtk-2.0/gtk.immodules.old.13. This program previously created the file /usr/lib/vmware-tools/libconf/etc/gtk-2.0/gtk.immodules, and was about to remove it. Somebody else apparently did it already. This program previously created the file /usr/lib/vmware-tools/lib32/libconf/etc/pango/pangox.aliases, and was about to remove it. Somebody else apparently did it already. File /usr/lib/vmware-tools/modules/source/vmci.tar is backed up to /usr/lib/vmware-tools/modules/source/vmci.tar.old.2. update-initramfs: Generating /boot/initrd.img-3.8.0-27-generic update-initramfs: Generating /boot/initrd.img-3.8.0-19-generic The removal of VMware Tools 8.8.6 build-1035889 for Linux completed successfully. Thank you for having tried this software. crifan@ubuntu:vmware-tools-distrib$
再重新打包:
crifan@ubuntu:source$ ls legacy vmci-only vmci.tar.old.0 vmhgfs.tar vmhgfs.tar.old.1 vmwgfx.tar vmxnet.tar pvscsi.tar vmci.tar vmci.tar.old.1 vmhgfs.tar_backup vmmemctl.tar vmxnet3_npa.tar vsock.tar vmblock.tar vmci.tar_backup vmhgfs-only vmhgfs.tar.old.0 vmsync.tar vmxnet3.tar crifan@ubuntu:source$ pwd /usr/lib/vmware-tools/modules/source crifan@ubuntu:source$ ls vmci-only vmci.tar.old.0 vmci.tar.old.2 vmhgfs.tar_backup vmhgfs.tar.old.1 vmci.tar_backup vmci.tar.old.1 vmhgfs-only vmhgfs.tar.old.0 crifan@ubuntu:source$ sudo cp vmci.tar.old.0 vmci.tar crifan@ubuntu:source$ sudo cp vmhgfs.tar.old.0 vmhgfs.tar crifan@ubuntu:source$ ls vmci-only vmci.tar_backup vmci.tar.old.1 vmhgfs-only vmhgfs.tar_backup vmhgfs.tar.old.1 vmci.tar vmci.tar.old.0 vmci.tar.old.2 vmhgfs.tar vmhgfs.tar.old.0 crifan@ubuntu:source$
再重新安装:
然后安装过程中问是否覆盖vmhgfs.tar和vmci.tar,当然选择no了:
The file /usr/lib/vmware-tools/modules/source/vmhgfs.tar that this program was about to install already exists. Overwrite? [yes] no The file /usr/lib/vmware-tools/modules/source/vmci.tar that this program was about to install already exists. Overwrite? [yes] no
然后后面就可以正常编译和安装vmci和vmhgfs了,只是vmxnet有错误,暂且不理会。
完整log如下:
crifan@ubuntu:vmware-tools-distrib$ sudo ./vmware-install.pl The installer found the following conflicting packages installed on the system and will now remove them: open-vm-tools dpkg: warning: ignoring request to remove open-vm-tools, only the config files of which are on the system; use --purge to remove them too Creating a new VMware Tools installer database using the tar4 format. Installing VMware Tools. In which directory do you want to install the binary files? [/usr/bin] What is the directory that contains the init directories (rc0.d/ to rc6.d/)? [/etc] What is the directory that contains the init scripts? [/etc/init.d] In which directory do you want to install the daemon files? [/usr/sbin] In which directory do you want to install the library files? [/usr/lib/vmware-tools] The file /usr/lib/vmware-tools/modules/source/vmhgfs.tar that this program was about to install already exists. Overwrite? [yes] no The file /usr/lib/vmware-tools/modules/source/vmci.tar that this program was about to install already exists. Overwrite? [yes] no In which directory do you want to install the documentation files? [/usr/share/doc/vmware-tools] The path "/usr/share/doc/vmware-tools" does not exist currently. This program is going to create it, including needed parent directories. Is this what you want? [yes] The installation of VMware Tools 8.8.6 build-1035889 for Linux completed successfully. You can decide to remove this software from your system at any time by invoking the following command: "/usr/bin/vmware-uninstall-tools.pl". Before running VMware Tools for the first time, you need to configure it by invoking the following command: "/usr/bin/vmware-config-tools.pl". Do you want this program to invoke the command for you now? [yes] Initializing... Making sure services for VMware Tools are stopped. [EXPERIMENTAL] The VMware FileSystem Sync Driver (vmsync) is a new feature that creates backups of virtual machines. Please refer to the VMware Knowledge Base for more details on this capability. Do you wish to enable this feature? [no] Before you can compile modules, you need to have the following installed... make gcc kernel headers of the running kernel Searching for GCC... Detected GCC binary at "/usr/bin/gcc". The path "/usr/bin/gcc" appears to be a valid path to the gcc binary. Would you like to change it? [no] Searching for a valid kernel header path... Detected the kernel headers at "/lib/modules/3.8.0-27-generic/build/include". The path "/lib/modules/3.8.0-27-generic/build/include" appears to be a valid path to the 3.8.0-27-generic kernel headers. Would you like to change it? [no] Using 2.6.x kernel build system. make: Entering directory `/tmp/vmware-root-207801624/modules/vmci-only' make -C /lib/modules/3.8.0-27-generic/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. \ MODULEBUILDDIR= modules make[1]: Entering directory `/usr/src/linux-headers-3.8.0-27-generic' CC [M] /tmp/vmware-root-207801624/modules/vmci-only/linux/driver.o CC [M] /tmp/vmware-root-207801624/modules/vmci-only/linux/vmciKernelIf.o CC [M] /tmp/vmware-root-207801624/modules/vmci-only/common/vmciContext.o CC [M] /tmp/vmware-root-207801624/modules/vmci-only/common/vmciDatagram.o CC [M] /tmp/vmware-root-207801624/modules/vmci-only/common/vmciDoorbell.o CC [M] /tmp/vmware-root-207801624/modules/vmci-only/common/vmciDriver.o CC [M] /tmp/vmware-root-207801624/modules/vmci-only/common/vmciEvent.o CC [M] /tmp/vmware-root-207801624/modules/vmci-only/common/vmciHashtable.o CC [M] /tmp/vmware-root-207801624/modules/vmci-only/common/vmciQPair.o CC [M] /tmp/vmware-root-207801624/modules/vmci-only/common/vmciQueuePair.o CC [M] /tmp/vmware-root-207801624/modules/vmci-only/common/vmciResource.o CC [M] /tmp/vmware-root-207801624/modules/vmci-only/common/vmciRoute.o CC [M] /tmp/vmware-root-207801624/modules/vmci-only/driverLog.o /tmp/vmware-root-207801624/modules/vmci-only/linux/driver.c: In function ‘__check_disable_host’: /tmp/vmware-root-207801624/modules/vmci-only/linux/driver.c:2498:1: warning: return from incompatible pointer type [enabled by default] /tmp/vmware-root-207801624/modules/vmci-only/linux/driver.c: In function ‘__check_disable_guest’: /tmp/vmware-root-207801624/modules/vmci-only/linux/driver.c:2501:1: warning: return from incompatible pointer type [enabled by default] /tmp/vmware-root-207801624/modules/vmci-only/linux/driver.c: In function ‘__check_disable_msi’: /tmp/vmware-root-207801624/modules/vmci-only/linux/driver.c:2504:1: warning: return from incompatible pointer type [enabled by default] /tmp/vmware-root-207801624/modules/vmci-only/linux/driver.c: In function ‘__check_disable_msix’: /tmp/vmware-root-207801624/modules/vmci-only/linux/driver.c:2507:1: warning: return from incompatible pointer type [enabled by default] LD [M] /tmp/vmware-root-207801624/modules/vmci-only/vmci.o Building modules, stage 2. MODPOST 1 modules CC /tmp/vmware-root-207801624/modules/vmci-only/vmci.mod.o LD [M] /tmp/vmware-root-207801624/modules/vmci-only/vmci.ko make[1]: Leaving directory `/usr/src/linux-headers-3.8.0-27-generic' make -C $PWD SRCROOT=$PWD/. \ MODULEBUILDDIR= postbuild make[1]: Entering directory `/tmp/vmware-root-207801624/modules/vmci-only' make[1]: `postbuild' is up to date. make[1]: Leaving directory `/tmp/vmware-root-207801624/modules/vmci-only' cp -f vmci.ko ./../vmci.o make: Leaving directory `/tmp/vmware-root-207801624/modules/vmci-only' Using 2.6.x kernel build system. make: Entering directory `/tmp/vmware-root-207801624/modules/vmci-only' make -C /lib/modules/3.8.0-27-generic/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. \ MODULEBUILDDIR= modules make[1]: Entering directory `/usr/src/linux-headers-3.8.0-27-generic' CC [M] /tmp/vmware-root-207801624/modules/vmci-only/linux/driver.o CC [M] /tmp/vmware-root-207801624/modules/vmci-only/linux/vmciKernelIf.o CC [M] /tmp/vmware-root-207801624/modules/vmci-only/common/vmciContext.o CC [M] /tmp/vmware-root-207801624/modules/vmci-only/common/vmciDatagram.o CC [M] /tmp/vmware-root-207801624/modules/vmci-only/common/vmciDoorbell.o CC [M] /tmp/vmware-root-207801624/modules/vmci-only/common/vmciDriver.o CC [M] /tmp/vmware-root-207801624/modules/vmci-only/common/vmciEvent.o CC [M] /tmp/vmware-root-207801624/modules/vmci-only/common/vmciHashtable.o CC [M] /tmp/vmware-root-207801624/modules/vmci-only/common/vmciQPair.o CC [M] /tmp/vmware-root-207801624/modules/vmci-only/common/vmciQueuePair.o CC [M] /tmp/vmware-root-207801624/modules/vmci-only/common/vmciResource.o CC [M] /tmp/vmware-root-207801624/modules/vmci-only/common/vmciRoute.o CC [M] /tmp/vmware-root-207801624/modules/vmci-only/driverLog.o /tmp/vmware-root-207801624/modules/vmci-only/linux/driver.c: In function ‘__check_disable_host’: /tmp/vmware-root-207801624/modules/vmci-only/linux/driver.c:2498:1: warning: return from incompatible pointer type [enabled by default] /tmp/vmware-root-207801624/modules/vmci-only/linux/driver.c: In function ‘__check_disable_guest’: /tmp/vmware-root-207801624/modules/vmci-only/linux/driver.c:2501:1: warning: return from incompatible pointer type [enabled by default] /tmp/vmware-root-207801624/modules/vmci-only/linux/driver.c: In function ‘__check_disable_msi’: /tmp/vmware-root-207801624/modules/vmci-only/linux/driver.c:2504:1: warning: return from incompatible pointer type [enabled by default] /tmp/vmware-root-207801624/modules/vmci-only/linux/driver.c: In function ‘__check_disable_msix’: /tmp/vmware-root-207801624/modules/vmci-only/linux/driver.c:2507:1: warning: return from incompatible pointer type [enabled by default] LD [M] /tmp/vmware-root-207801624/modules/vmci-only/vmci.o Building modules, stage 2. MODPOST 1 modules CC /tmp/vmware-root-207801624/modules/vmci-only/vmci.mod.o LD [M] /tmp/vmware-root-207801624/modules/vmci-only/vmci.ko make[1]: Leaving directory `/usr/src/linux-headers-3.8.0-27-generic' make -C $PWD SRCROOT=$PWD/. \ MODULEBUILDDIR= postbuild make[1]: Entering directory `/tmp/vmware-root-207801624/modules/vmci-only' make[1]: `postbuild' is up to date. make[1]: Leaving directory `/tmp/vmware-root-207801624/modules/vmci-only' cp -f vmci.ko ./../vmci.o make: Leaving directory `/tmp/vmware-root-207801624/modules/vmci-only' Using 2.6.x kernel build system. make: Entering directory `/tmp/vmware-root-207801624/modules/vsock-only' make -C /lib/modules/3.8.0-27-generic/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. \ MODULEBUILDDIR= modules make[1]: Entering directory `/usr/src/linux-headers-3.8.0-27-generic' CC [M] /tmp/vmware-root-207801624/modules/vsock-only/linux/af_vsock.o CC [M] /tmp/vmware-root-207801624/modules/vsock-only/linux/notify.o CC [M] /tmp/vmware-root-207801624/modules/vsock-only/linux/notifyQState.o CC [M] /tmp/vmware-root-207801624/modules/vsock-only/linux/stats.o CC [M] /tmp/vmware-root-207801624/modules/vsock-only/linux/util.o CC [M] /tmp/vmware-root-207801624/modules/vsock-only/linux/vsockAddr.o CC [M] /tmp/vmware-root-207801624/modules/vsock-only/driverLog.o LD [M] /tmp/vmware-root-207801624/modules/vsock-only/vsock.o Building modules, stage 2. MODPOST 1 modules CC /tmp/vmware-root-207801624/modules/vsock-only/vsock.mod.o LD [M] /tmp/vmware-root-207801624/modules/vsock-only/vsock.ko make[1]: Leaving directory `/usr/src/linux-headers-3.8.0-27-generic' make -C $PWD SRCROOT=$PWD/. \ MODULEBUILDDIR= postbuild make[1]: Entering directory `/tmp/vmware-root-207801624/modules/vsock-only' make[1]: `postbuild' is up to date. make[1]: Leaving directory `/tmp/vmware-root-207801624/modules/vsock-only' cp -f vsock.ko ./../vsock.o make: Leaving directory `/tmp/vmware-root-207801624/modules/vsock-only' The module vmxnet3 has already been installed on this system by another installer or package and will not be modified by this installer. Use the flag --clobber-kernel-modules=vmxnet3 to override. The module pvscsi has already been installed on this system by another installer or package and will not be modified by this installer. Use the flag --clobber-kernel-modules=pvscsi to override. The module vmmemctl has already been installed on this system by another installer or package and will not be modified by this installer. Use the flag --clobber-kernel-modules=vmmemctl to override. The VMware Host-Guest Filesystem allows for shared folders between the host OS and the guest OS in a Fusion or Workstation virtual environment. Do you wish to enable this feature? [yes] Using 2.6.x kernel build system. make: Entering directory `/tmp/vmware-root-207801624/modules/vmci-only' make -C /lib/modules/3.8.0-27-generic/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. \ MODULEBUILDDIR= modules make[1]: Entering directory `/usr/src/linux-headers-3.8.0-27-generic' CC [M] /tmp/vmware-root-207801624/modules/vmci-only/linux/driver.o CC [M] /tmp/vmware-root-207801624/modules/vmci-only/linux/vmciKernelIf.o CC [M] /tmp/vmware-root-207801624/modules/vmci-only/common/vmciContext.o CC [M] /tmp/vmware-root-207801624/modules/vmci-only/common/vmciDatagram.o CC [M] /tmp/vmware-root-207801624/modules/vmci-only/common/vmciDoorbell.o CC [M] /tmp/vmware-root-207801624/modules/vmci-only/common/vmciDriver.o CC [M] /tmp/vmware-root-207801624/modules/vmci-only/common/vmciEvent.o CC [M] /tmp/vmware-root-207801624/modules/vmci-only/common/vmciHashtable.o CC [M] /tmp/vmware-root-207801624/modules/vmci-only/common/vmciQPair.o CC [M] /tmp/vmware-root-207801624/modules/vmci-only/common/vmciQueuePair.o CC [M] /tmp/vmware-root-207801624/modules/vmci-only/common/vmciResource.o CC [M] /tmp/vmware-root-207801624/modules/vmci-only/common/vmciRoute.o CC [M] /tmp/vmware-root-207801624/modules/vmci-only/driverLog.o /tmp/vmware-root-207801624/modules/vmci-only/linux/driver.c: In function ‘__check_disable_host’: /tmp/vmware-root-207801624/modules/vmci-only/linux/driver.c:2498:1: warning: return from incompatible pointer type [enabled by default] /tmp/vmware-root-207801624/modules/vmci-only/linux/driver.c: In function ‘__check_disable_guest’: /tmp/vmware-root-207801624/modules/vmci-only/linux/driver.c:2501:1: warning: return from incompatible pointer type [enabled by default] /tmp/vmware-root-207801624/modules/vmci-only/linux/driver.c: In function ‘__check_disable_msi’: /tmp/vmware-root-207801624/modules/vmci-only/linux/driver.c:2504:1: warning: return from incompatible pointer type [enabled by default] /tmp/vmware-root-207801624/modules/vmci-only/linux/driver.c: In function ‘__check_disable_msix’: /tmp/vmware-root-207801624/modules/vmci-only/linux/driver.c:2507:1: warning: return from incompatible pointer type [enabled by default] LD [M] /tmp/vmware-root-207801624/modules/vmci-only/vmci.o Building modules, stage 2. MODPOST 1 modules CC /tmp/vmware-root-207801624/modules/vmci-only/vmci.mod.o LD [M] /tmp/vmware-root-207801624/modules/vmci-only/vmci.ko make[1]: Leaving directory `/usr/src/linux-headers-3.8.0-27-generic' make -C $PWD SRCROOT=$PWD/. \ MODULEBUILDDIR= postbuild make[1]: Entering directory `/tmp/vmware-root-207801624/modules/vmci-only' make[1]: `postbuild' is up to date. make[1]: Leaving directory `/tmp/vmware-root-207801624/modules/vmci-only' cp -f vmci.ko ./../vmci.o make: Leaving directory `/tmp/vmware-root-207801624/modules/vmci-only' Using 2.6.x kernel build system. make: Entering directory `/tmp/vmware-root-207801624/modules/vmhgfs-only' make -C /lib/modules/3.8.0-27-generic/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. \ MODULEBUILDDIR= modules make[1]: Entering directory `/usr/src/linux-headers-3.8.0-27-generic' CC [M] /tmp/vmware-root-207801624/modules/vmhgfs-only/backdoor.o CC [M] /tmp/vmware-root-207801624/modules/vmhgfs-only/backdoorGcc32.o CC [M] /tmp/vmware-root-207801624/modules/vmhgfs-only/bdhandler.o CC [M] /tmp/vmware-root-207801624/modules/vmhgfs-only/cpName.o CC [M] /tmp/vmware-root-207801624/modules/vmhgfs-only/cpNameLinux.o CC [M] /tmp/vmware-root-207801624/modules/vmhgfs-only/cpNameLite.o CC [M] /tmp/vmware-root-207801624/modules/vmhgfs-only/dentry.o CC [M] /tmp/vmware-root-207801624/modules/vmhgfs-only/dir.o CC [M] /tmp/vmware-root-207801624/modules/vmhgfs-only/file.o CC [M] /tmp/vmware-root-207801624/modules/vmhgfs-only/filesystem.o CC [M] /tmp/vmware-root-207801624/modules/vmhgfs-only/fsutil.o CC [M] /tmp/vmware-root-207801624/modules/vmhgfs-only/hgfsBd.o CC [M] /tmp/vmware-root-207801624/modules/vmhgfs-only/hgfsEscape.o CC [M] /tmp/vmware-root-207801624/modules/vmhgfs-only/hgfsUtil.o CC [M] /tmp/vmware-root-207801624/modules/vmhgfs-only/inode.o CC [M] /tmp/vmware-root-207801624/modules/vmhgfs-only/link.o CC [M] /tmp/vmware-root-207801624/modules/vmhgfs-only/message.o CC [M] /tmp/vmware-root-207801624/modules/vmhgfs-only/module.o CC [M] /tmp/vmware-root-207801624/modules/vmhgfs-only/page.o CC [M] /tmp/vmware-root-207801624/modules/vmhgfs-only/request.o CC [M] /tmp/vmware-root-207801624/modules/vmhgfs-only/rpcout.o CC [M] /tmp/vmware-root-207801624/modules/vmhgfs-only/stubs.o CC [M] /tmp/vmware-root-207801624/modules/vmhgfs-only/super.o CC [M] /tmp/vmware-root-207801624/modules/vmhgfs-only/tcp.o CC [M] /tmp/vmware-root-207801624/modules/vmhgfs-only/transport.o CC [M] /tmp/vmware-root-207801624/modules/vmhgfs-only/vmci.o CC [M] /tmp/vmware-root-207801624/modules/vmhgfs-only/kernelStubsLinux.o /tmp/vmware-root-207801624/modules/vmhgfs-only/inode.c:131:4: warning: initialization from incompatible pointer type [enabled by default] /tmp/vmware-root-207801624/modules/vmhgfs-only/inode.c:131:4: warning: (near initialization for ‘HgfsDirInodeOperations.create’) [enabled by default] /tmp/vmware-root-207801624/modules/vmhgfs-only/inode.c:134:4: warning: initialization from incompatible pointer type [enabled by default] /tmp/vmware-root-207801624/modules/vmhgfs-only/inode.c:134:4: warning: (near initialization for ‘HgfsDirInodeOperations.mkdir’) [enabled by default] /tmp/vmware-root-207801624/modules/vmhgfs-only/inode.c: In function ‘HgfsPermission’: /tmp/vmware-root-207801624/modules/vmhgfs-only/inode.c:1755:8: warning: ‘dentry’ may be used uninitialized in this function [-Wmaybe-uninitialized] /tmp/vmware-root-207801624/modules/vmhgfs-only/inode.c:1813:22: note: ‘dentry’ was declared here LD [M] /tmp/vmware-root-207801624/modules/vmhgfs-only/vmhgfs.o Building modules, stage 2. MODPOST 1 modules CC /tmp/vmware-root-207801624/modules/vmhgfs-only/vmhgfs.mod.o LD [M] /tmp/vmware-root-207801624/modules/vmhgfs-only/vmhgfs.ko make[1]: Leaving directory `/usr/src/linux-headers-3.8.0-27-generic' make -C $PWD SRCROOT=$PWD/. \ MODULEBUILDDIR= postbuild make[1]: Entering directory `/tmp/vmware-root-207801624/modules/vmhgfs-only' make[1]: `postbuild' is up to date. make[1]: Leaving directory `/tmp/vmware-root-207801624/modules/vmhgfs-only' cp -f vmhgfs.ko ./../vmhgfs.o make: Leaving directory `/tmp/vmware-root-207801624/modules/vmhgfs-only' Using 2.6.x kernel build system. make: Entering directory `/tmp/vmware-root-207801624/modules/vmxnet-only' make -C /lib/modules/3.8.0-27-generic/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. \ MODULEBUILDDIR= modules make[1]: Entering directory `/usr/src/linux-headers-3.8.0-27-generic' CC [M] /tmp/vmware-root-207801624/modules/vmxnet-only/vmxnet.o /tmp/vmware-root-207801624/modules/vmxnet-only/vmxnet.c:525:4: error: unknown field ‘get_rx_csum’ specified in initializer /tmp/vmware-root-207801624/modules/vmxnet-only/vmxnet.c:525:4: warning: initialization from incompatible pointer type [enabled by default] /tmp/vmware-root-207801624/modules/vmxnet-only/vmxnet.c:525:4: warning: (near initialization for ‘vmxnet_ethtool_ops.get_eeprom_len’) [enabled by default] /tmp/vmware-root-207801624/modules/vmxnet-only/vmxnet.c:526:4: error: unknown field ‘set_rx_csum’ specified in initializer /tmp/vmware-root-207801624/modules/vmxnet-only/vmxnet.c:526:4: warning: initialization from incompatible pointer type [enabled by default] /tmp/vmware-root-207801624/modules/vmxnet-only/vmxnet.c:526:4: warning: (near initialization for ‘vmxnet_ethtool_ops.get_eeprom’) [enabled by default] /tmp/vmware-root-207801624/modules/vmxnet-only/vmxnet.c:527:4: error: unknown field ‘get_tx_csum’ specified in initializer /tmp/vmware-root-207801624/modules/vmxnet-only/vmxnet.c:527:4: warning: initialization from incompatible pointer type [enabled by default] /tmp/vmware-root-207801624/modules/vmxnet-only/vmxnet.c:527:4: warning: (near initialization for ‘vmxnet_ethtool_ops.set_eeprom’) [enabled by default] /tmp/vmware-root-207801624/modules/vmxnet-only/vmxnet.c:528:4: error: unknown field ‘set_tx_csum’ specified in initializer /tmp/vmware-root-207801624/modules/vmxnet-only/vmxnet.c:528:4: warning: initialization from incompatible pointer type [enabled by default] /tmp/vmware-root-207801624/modules/vmxnet-only/vmxnet.c:528:4: warning: (near initialization for ‘vmxnet_ethtool_ops.get_coalesce’) [enabled by default] /tmp/vmware-root-207801624/modules/vmxnet-only/vmxnet.c:529:4: error: unknown field ‘get_sg’ specified in initializer /tmp/vmware-root-207801624/modules/vmxnet-only/vmxnet.c:529:27: error: ‘ethtool_op_get_sg’ undeclared here (not in a function) /tmp/vmware-root-207801624/modules/vmxnet-only/vmxnet.c:530:4: error: unknown field ‘set_sg’ specified in initializer /tmp/vmware-root-207801624/modules/vmxnet-only/vmxnet.c:530:27: error: ‘ethtool_op_set_sg’ undeclared here (not in a function) /tmp/vmware-root-207801624/modules/vmxnet-only/vmxnet.c:532:4: error: unknown field ‘get_tso’ specified in initializer /tmp/vmware-root-207801624/modules/vmxnet-only/vmxnet.c:532:27: error: ‘ethtool_op_get_tso’ undeclared here (not in a function) /tmp/vmware-root-207801624/modules/vmxnet-only/vmxnet.c:533:4: error: unknown field ‘set_tso’ specified in initializer /tmp/vmware-root-207801624/modules/vmxnet-only/vmxnet.c:533:4: warning: initialization from incompatible pointer type [enabled by default] /tmp/vmware-root-207801624/modules/vmxnet-only/vmxnet.c:533:4: warning: (near initialization for ‘vmxnet_ethtool_ops.get_pauseparam’) [enabled by default] /tmp/vmware-root-207801624/modules/vmxnet-only/vmxnet.c:535:4: error: unknown field ‘get_ufo’ specified in initializer /tmp/vmware-root-207801624/modules/vmxnet-only/vmxnet.c:535:27: error: ‘ethtool_op_get_ufo’ undeclared here (not in a function) /tmp/vmware-root-207801624/modules/vmxnet-only/vmxnet.c: In function ‘vmxnet_probe_device’: /tmp/vmware-root-207801624/modules/vmxnet-only/vmxnet.c:1008:7: error: unknown field ‘ndo_set_multicast_list’ specified in initializer /tmp/vmware-root-207801624/modules/vmxnet-only/vmxnet.c:1008:7: warning: initialization from incompatible pointer type [enabled by default] /tmp/vmware-root-207801624/modules/vmxnet-only/vmxnet.c:1008:7: warning: (near initialization for ‘vmxnet_netdev_ops.ndo_vlan_rx_add_vid’) [enabled by default] /tmp/vmware-root-207801624/modules/vmxnet-only/vmxnet.c: In function ‘vmxnet_map_pkt’: /tmp/vmware-root-207801624/modules/vmxnet-only/vmxnet.c:2085:32: error: incompatible type for argument 2 of ‘pci_map_page’ In file included from /usr/src/linux-headers-3.8.0-27-generic/arch/x86/include/asm/pci.h:148:0, from include/linux/pci.h:1422, from /tmp/vmware-root-207801624/modules/vmxnet-only/./shared/compat_pci.h:27, from /tmp/vmware-root-207801624/modules/vmxnet-only/vmxnet.c:31: include/asm-generic/pci-dma-compat.h:43:1: note: expected ‘struct page *’ but argument is of type ‘struct <anonymous>’ /tmp/vmware-root-207801624/modules/vmxnet-only/vmxnet.c:2104:26: error: incompatible type for argument 2 of ‘pci_map_page’ In file included from /usr/src/linux-headers-3.8.0-27-generic/arch/x86/include/asm/pci.h:148:0, from include/linux/pci.h:1422, from /tmp/vmware-root-207801624/modules/vmxnet-only/./shared/compat_pci.h:27, from /tmp/vmware-root-207801624/modules/vmxnet-only/vmxnet.c:31: include/asm-generic/pci-dma-compat.h:43:1: note: expected ‘struct page *’ but argument is of type ‘struct <anonymous>’ /tmp/vmware-root-207801624/modules/vmxnet-only/vmxnet.c: In function ‘vmxnet_rx_frags’: /tmp/vmware-root-207801624/modules/vmxnet-only/vmxnet.c:2599:48: error: incompatible types when assigning to type ‘struct <anonymous>’ from type ‘struct page *’ make[2]: *** [/tmp/vmware-root-207801624/modules/vmxnet-only/vmxnet.o] Error 1 make[1]: *** [_module_/tmp/vmware-root-207801624/modules/vmxnet-only] Error 2 make[1]: Leaving directory `/usr/src/linux-headers-3.8.0-27-generic' make: *** [vmxnet.ko] Error 2 make: Leaving directory `/tmp/vmware-root-207801624/modules/vmxnet-only' The fast network device driver (vmxnet module) is used only for our fast networking interface. The rest of the software provided by VMware Tools is designed to work independently of this feature. If you wish to have the fast network driver enabled, you can install the driver by running vmware-config-tools.pl again after making sure that gcc, binutils, make and the kernel sources for your running kernel are installed on your machine. These packages are available on your distribution's installation CD. [ Press Enter key to continue ] Using 2.6.x kernel build system. make: Entering directory `/tmp/vmware-root-207801624/modules/vmblock-only' make -C /lib/modules/3.8.0-27-generic/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. \ MODULEBUILDDIR= modules make[1]: Entering directory `/usr/src/linux-headers-3.8.0-27-generic' CC [M] /tmp/vmware-root-207801624/modules/vmblock-only/linux/block.o CC [M] /tmp/vmware-root-207801624/modules/vmblock-only/linux/control.o CC [M] /tmp/vmware-root-207801624/modules/vmblock-only/linux/dbllnklst.o CC [M] /tmp/vmware-root-207801624/modules/vmblock-only/linux/dentry.o CC [M] /tmp/vmware-root-207801624/modules/vmblock-only/linux/file.o CC [M] /tmp/vmware-root-207801624/modules/vmblock-only/linux/filesystem.o CC [M] /tmp/vmware-root-207801624/modules/vmblock-only/linux/inode.o CC [M] /tmp/vmware-root-207801624/modules/vmblock-only/linux/module.o CC [M] /tmp/vmware-root-207801624/modules/vmblock-only/linux/stubs.o CC [M] /tmp/vmware-root-207801624/modules/vmblock-only/linux/super.o /tmp/vmware-root-207801624/modules/vmblock-only/linux/control.c: In function ‘ExecuteBlockOp’:/tmp/vmware-root-207801624/modules/vmblock-only/linux/dentry.c:38:4: warning: initialization from incompatible pointer type [enabled by default] /tmp/vmware-root-207801624/modules/vmblock-only/linux/dentry.c:38:4: warning: (near initialization for ‘LinkDentryOps.d_revalidate’) [enabled by default] /tmp/vmware-root-207801624/modules/vmblock-only/linux/dentry.c: In function ‘DentryOpRevalidate’: /tmp/vmware-root-207801624/modules/vmblock-only/linux/dentry.c:104:7: warning: passing argument 2 of ‘actualDentry->d_op->d_revalidate’ makes integer from pointer without a cast [enabled by default] /tmp/vmware-root-207801624/modules/vmblock-only/linux/dentry.c:104:7: note: expected ‘unsigned int’ but argument is of type ‘struct nameidata *’ /tmp/vmware-root-207801624/modules/vmblock-only/linux/control.c:285:9: warning: assignment from incompatible pointer type [enabled by default] /tmp/vmware-root-207801624/modules/vmblock-only/linux/control.c:296:4: warning: passing argument 1 of ‘putname’ from incompatible pointer type [enabled by default] In file included from include/linux/proc_fs.h:5:0, from /tmp/vmware-root-207801624/modules/vmblock-only/linux/control.c:28: include/linux/fs.h:2052:13: note: expected ‘struct filename *’ but argument is of type ‘char *’ /tmp/vmware-root-207801624/modules/vmblock-only/linux/inode.c:49:4: warning: initialization from incompatible pointer type [enabled by default] /tmp/vmware-root-207801624/modules/vmblock-only/linux/inode.c:49:4: warning: (near initialization for ‘RootInodeOps.lookup’) [enabled by default] LD [M] /tmp/vmware-root-207801624/modules/vmblock-only/vmblock.o Building modules, stage 2. MODPOST 1 modules WARNING: "putname" [/tmp/vmware-root-207801624/modules/vmblock-only/vmblock.ko] undefined! CC /tmp/vmware-root-207801624/modules/vmblock-only/vmblock.mod.o LD [M] /tmp/vmware-root-207801624/modules/vmblock-only/vmblock.ko make[1]: Leaving directory `/usr/src/linux-headers-3.8.0-27-generic' make -C $PWD SRCROOT=$PWD/. \ MODULEBUILDDIR= postbuild make[1]: Entering directory `/tmp/vmware-root-207801624/modules/vmblock-only' make[1]: `postbuild' is up to date. make[1]: Leaving directory `/tmp/vmware-root-207801624/modules/vmblock-only' cp -f vmblock.ko ./../vmblock.o make: Leaving directory `/tmp/vmware-root-207801624/modules/vmblock-only' !!! [EXPERIMENTAL] !!! VMware automatic kernel modules enables automatic building and installation of VMware kernel modules at boot they are not already present. By selecting yes, you will be enabling this experimental feature. You can always disable this feature by re-running vmware-config-tools.pl. Would you like to enable VMware automatic kernel modules? [no] Disabling timer-based audio scheduling in pulseaudio. Detected X server version 1.13.3 Distribution provided drivers for Xorg X server are used. Skipping X configuration because X drivers are not included. Creating a new initrd boot image for the kernel. update-initramfs: Generating /boot/initrd.img-3.8.0-27-generic vmware-tools start/running The configuration of VMware Tools 8.8.6 build-1035889 for Linux for this running kernel completed successfully. You must restart your X session before any mouse or graphics changes take effect. You can now run VMware Tools by invoking "/usr/bin/vmware-toolbox-cmd" from the command line or by invoking "/usr/bin/vmware-toolbox" from the command line during an X server session. To enable advanced X features (e.g., guest resolution fit, drag and drop, and file and text copy/paste), you will need to do one (or more) of the following: 1. Manually start /usr/bin/vmware-user 2. Log out and log back into your desktop session; and, 3. Restart your X session. Enjoy, --the VMware team crifan@ubuntu:vmware-tools-distrib$
再去试试是否可以看到共享文件夹,结果是可以了:
crifan@ubuntu:vmware-tools-distrib$ ls /mnt/hgfs/ crosstool_ng crifan@ubuntu:vmware-tools-distrib$
【总结】
注意,直接参考:
Patching VMware Tools to fix multiple installation errors on Ubuntu 13.04
的话,在我此处,好像是不行的。
因为:
(1)没有安装vmware tools之前的话,在:
/usr/lib/vmware-tools/modules/source
中是没有对应的源码,没法去打补丁的。
(2)而去运行安装vmware tools的话,其又会自动检测到
/usr/lib/vmware-tools/modules/source
存在了vmci.tar和vmhgfs.tar,和其原始的文件不一样,而会去给你变成vmci.tar.old.0和vmhgfs.tar.old.0
而不用你这两个打了补丁的文件,导致打了补丁也白打。
所以,最后的可行的办法,目前是:
0.参考那人方法:
Patching VMware Tools to fix multiple installation errors on Ubuntu 13.04
建立一个version.h的软连接
1.先安装一遍vmware tools
其中编译vmci会出错(就更不会编译vmhgfs了)
但是可以使得
/usr/lib/vmware-tools/modules/source
中会有vmci.tar和vmhgfs.tar
2.然后再参考那人的方法:
Patching VMware Tools to fix multiple installation errors on Ubuntu 13.04
去建立一个修改打补丁现存的vmci.tar和vmhgfs.tar
记得保留一份打了补丁后的vmci.tar和vmhgfs.tar
3.然后再卸载掉vmware tools:
sudo vmware-uninstall-tools.pl
4.再重新安装vmware tools,其会检测到已有vmci.tar和vmhgfs.tar,问你是否覆盖,输入no不覆盖
然后继续安装,期间会编译vmci和vmhgfs,才能正常编译。
期间,vmxnet没编译成功,不理会。
5.最终至正常安装完毕,使得:
剪贴板共享(复制和粘贴)都可用;
文件夹共享也可用了
转载请注明:在路上 » 【已解决】VMware Workstation 8下Ubuntu 13.04中安装VMware Tools出错:/tmp/vmware-root/modules/vmci-only/linux/driver.c:127:4: error: implicit declaration of function ‘__devexit_p’ [-Werror=implicit-function-declaration]