我一直在 xubuntu 12.04 上使用 vmware 3.1.6 补丁,效果非常好。我必须使用 3.1.6,因为我必须使用这些 32 位笔记本电脑,而 3.1.6 是最后一个允许我在非 64 位硬件上安装的版本。
这是我一直在使用的补丁: 修补
现在,在更新到 xubuntu 14.04 后,我无法让它再次运行。我尝试过升级安装、清理模块、尝试过全新的全新安装、不同的补丁等等,但现在我已经力不从心了。
这是我通常的安装方式:
sudo bash VMware-Player-3.1.6-744570.i386.bundle
然后链接新的内核头文件:
sudo ln -s /usr/src/linux-headers-$(uname -r)/include/generated/uapi/linux/version.h /usr/src/linux-headers-$(uname -r)/include/linux/version.h
安装构建必需品:
sudo apt-get install build-essential linux-headers-$(uname -r)
应用补丁:
sudo bash patch-modules_3.2.0.sh
我现在收到此错误:
patching file vmblock-only/linux/dentry.c
patching file vmblock-only/linux/filesystem.c
patching file vmci-only/linux/driver.c
patching file vmmon-only/linux/driver.c
patching file vmmon-only/linux/hostif.c
patching file vmmon-only/linux/iommu.c
patching file vmnet-only/compat_netdevice.h
patching file vmnet-only/driver.c
patching file vmnet-only/filter.c
patching file vmnet-only/hub.c
patching file vmnet-only/netif.c
patching file vmnet-only/userif.c
patching file vsock-only/linux/af_vsock.c
patching file vsock-only/linux/util.c
Stopping VMware services:
VMware USB Arbitrator done
VM communication interface socket family done
Virtual machine communication interface done
Virtual machine monitor done
Blocking file system done
Using 2.6.x kernel build system.
make: Gehe in Verzeichnis '/tmp/vmware-root/modules/vmmon-only'
make -C /lib/modules/3.13.0-34-generic/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. \
MODULEBUILDDIR= modules
make[1]: Betrete Verzeichnis '/usr/src/linux-headers-3.13.0-34-generic'
CC [M] /tmp/vmware-root/modules/vmmon-only/linux/driver.o
In file included from /tmp/vmware-root/modules/vmmon-only/./include/vcpuset.h:103:0,
from /tmp/vmware-root/modules/vmmon-only/./include/modulecall.h:37,
from /tmp/vmware-root/modules/vmmon-only/./common/vmx86.h:33,
from /tmp/vmware-root/modules/vmmon-only/linux/driver.h:29,
from /tmp/vmware-root/modules/vmmon-only/linux/driver.c:100:
/tmp/vmware-root/modules/vmmon-only/./include/vm_atomic.h: In function ‘AtomicAssertOnCompilePtr’:
/tmp/vmware-root/modules/vmmon-only/./include/vm_atomic.h:2185:20: warning: typedef ‘AssertOnCompileFailed’ locally defined but not used [-Wunused-local-typedefs]
typedef char AssertOnCompileFailed[AssertOnCompileMisused]; \
^
/tmp/vmware-root/modules/vmmon-only/./include/vm_atomic.h:2348:1: note: in expansion of macro ‘MAKE_ATOMIC_TYPE’
MAKE_ATOMIC_TYPE(Ptr, 32, void const *, void *, uintptr_t)
^
/tmp/vmware-root/modules/vmmon-only/./include/vm_atomic.h: In function ‘AtomicAssertOnCompileInt’:
/tmp/vmware-root/modules/vmmon-only/./include/vm_atomic.h:2185:20: warning: typedef ‘AssertOnCompileFailed’ locally defined but not used [-Wunused-local-typedefs]
typedef char AssertOnCompileFailed[AssertOnCompileMisused]; \
^
/tmp/vmware-root/modules/vmmon-only/./include/vm_atomic.h:2350:1: note: in expansion of macro ‘MAKE_ATOMIC_TYPE’
MAKE_ATOMIC_TYPE(Int, 32, int, int, int)
^
In file included from /tmp/vmware-root/modules/vmmon-only/./include/vmware.h:40:0,
from /tmp/vmware-root/modules/vmmon-only/linux/driver.c:98:
/tmp/vmware-root/modules/vmmon-only/./include/vcpuset.h: In function ‘VCPUSet_Singleton’:
/tmp/vmware-root/modules/vmmon-only/./include/vm_assert.h:275:20: warning: typedef ‘AssertOnCompileFailed’ locally defined but not used [-Wunused-local-typedefs]
typedef char AssertOnCompileFailed[AssertOnCompileMisused]; \
^
/tmp/vmware-root/modules/vmmon-only/./include/vcpuset.h:120:4: note: in expansion of macro ‘ASSERT_ON_COMPILE’
ASSERT_ON_COMPILE(VCPUID_INVALID >= 32); // Ensure test below catches invalid VCPUs
^
/tmp/vmware-root/modules/vmmon-only/./include/busmem_def.h: In function ‘BUSMEMDEFS’:
/tmp/vmware-root/modules/vmmon-only/./include/vm_assert.h:275:20: warning: typedef ‘AssertOnCompileFailed’ locally defined but not used [-Wunused-local-typedefs]
typedef char AssertOnCompileFailed[AssertOnCompileMisused]; \
^
/tmp/vmware-root/modules/vmmon-only/./include/vm_assert.h:297:7: note: in definition of macro ‘MY_ASSERTS’
assertions \
^
/tmp/vmware-root/modules/vmmon-only/./include/busmem_def.h:67:12: note: in expansion of macro ‘ASSERT_ON_COMPILE’
ASSERT_ON_COMPILE(sizeof(BusMem_PageList) <= PAGE_SIZE);)
^
/tmp/vmware-root/modules/vmmon-only/./include/pshare_ext.h: In function ‘PSHARE_EXT’:
/tmp/vmware-root/modules/vmmon-only/./include/vm_assert.h:275:20: warning: typedef ‘AssertOnCompileFailed’ locally defined but not used [-Wunused-local-typedefs]
typedef char AssertOnCompileFailed[AssertOnCompileMisused]; \
^
/tmp/vmware-root/modules/vmmon-only/./include/vm_assert.h:297:7: note: in definition of macro ‘MY_ASSERTS’
assertions \
^
/tmp/vmware-root/modules/vmmon-only/./include/pshare_ext.h:62:12: note: in expansion of macro ‘ASSERT_ON_COMPILE’
ASSERT_ON_COMPILE(PSHARE_HINT_UPDATES_MAX <=
^
/tmp/vmware-root/modules/vmmon-only/./include/iocontrols.h: In function ‘VA64ToPtr’:
/tmp/vmware-root/modules/vmmon-only/./include/vm_assert.h:275:20: warning: typedef ‘AssertOnCompileFailed’ locally defined but not used [-Wunused-local-typedefs]
typedef char AssertOnCompileFailed[AssertOnCompileMisused]; \
^
/tmp/vmware-root/modules/vmmon-only/./include/iocontrols.h:77:4: note: in expansion of macro ‘ASSERT_ON_COMPILE’
ASSERT_ON_COMPILE(sizeof (void *) == 4);
^
/tmp/vmware-root/modules/vmmon-only/./include/iocontrols.h: In function ‘PtrToVA64’:
/tmp/vmware-root/modules/vmmon-only/./include/vm_assert.h:275:20: warning: typedef ‘AssertOnCompileFailed’ locally defined but not used [-Wunused-local-typedefs]
typedef char AssertOnCompileFailed[AssertOnCompileMisused]; \
^
/tmp/vmware-root/modules/vmmon-only/./include/iocontrols.h:113:4: note: in expansion of macro ‘ASSERT_ON_COMPILE’
ASSERT_ON_COMPILE(sizeof ptr <= sizeof (VA64));
^
/tmp/vmware-root/modules/vmmon-only/linux/driver.c: In function ‘LinuxDriver_Ioctl’:
/tmp/vmware-root/modules/vmmon-only/linux/driver.c:2057:26: error: invalid operands to binary == (have ‘kuid_t’ and ‘kuid_t’)
if (current_euid() == current_uid() &&
^
/tmp/vmware-root/modules/vmmon-only/linux/driver.c:2058:20: error: invalid operands to binary == (have ‘kuid_t’ and ‘kuid_t’)
current_fsuid() == current_uid() &&
^
/tmp/vmware-root/modules/vmmon-only/linux/driver.c:2059:26: error: invalid operands to binary == (have ‘kgid_t’ and ‘kgid_t’)
current_egid() == current_gid() &&
^
/tmp/vmware-root/modules/vmmon-only/linux/driver.c:2060:20: error: invalid operands to binary == (have ‘kgid_t’ and ‘kgid_t’)
current_fsgid() == current_gid()) {
^
make[2]: *** [/tmp/vmware-root/modules/vmmon-only/linux/driver.o] Fehler 1
make[1]: *** [_module_/tmp/vmware-root/modules/vmmon-only] Fehler 2
make[1]: Verlasse Verzeichnis '/usr/src/linux-headers-3.13.0-34-generic'
make: *** [vmmon.ko] Fehler 2
make: Verlasse Verzeichnis '/tmp/vmware-root/modules/vmmon-only'
Unable to install vmmon
All done, you can now run VMWare Player.
Modules sources backup can be found in the '/usr/lib/vmware/modules/source-player3.1.6-2014-08-21-12:12:54-backup' directory
3.1 内核似乎发生了一些变化...我尝试了在谷歌搜索时找到的不同方法,但都没有奏效。在另一件事的问题上发现了这个,错误似乎与此有关。但由于我不是程序员,所以我无法理解:
http://ubuntuforums.org/showthread.php?t=2217794
任何帮助都将不胜感激,因为我想继续使用这里的一些旧的 32 位笔记本电脑和 14.04 lts 版本。但是如果没有我使用的已构建映像和软件包的 vmware player 3.1.6,我将不得不寻找一个全新的模拟解决方案...
答案1
尝试较新版本的 vmware player,应该无需任何额外添加即可与新的 ubuntu 配合使用。
Vmware player 现在的版本是 6.x,并且仍然免费。