Package Details: vmware-modules-dkms 308.0-15

Git Clone URL: (read-only)
Package Base: vmware-modules-dkms
Description: VMware Workstation kernel modules (DKMS)
Upstream URL:
Licenses: GPL2
Conflicts: open-vm-tools-modules
Submitter: Raansu
Maintainer: SwooshyCueb
Last Packager: SwooshyCueb
Votes: 14
Popularity: 0.005066
First Submitted: 2015-09-21 08:45
Last Updated: 2017-03-21 00:31

Latest Comments

timofonic commented on 2017-12-23 22:51

Could you please update this against latest kernels and vmware versions? Please, thanks in advance :D

swordfeng commented on 2017-05-16 01:51

I reported this issue here:
The kernel changed the meaning of the third parameter of 'VNetBridgeNotify' since 3.11.

swordfeng commented on 2017-05-13 18:30

I think (not tested yet) there's an issue in vmnet/bridge.c:

--- bridge.c 2017-05-14 02:24:23.764324763 +0800
+++ bridge_new.c 2017-05-14 02:24:20.494352085 +0800
@@ -1146,7 +1146,7 @@
void *data) // IN: device pertaining to event
VNetBridge *bridge = list_entry(this, VNetBridge, notifier);
- struct net_device *dev = (struct net_device *) data;
+ struct net_device *dev = netdev_notifier_info_to_dev(data);

switch (msg) {

and seems that this exists for a long time

SwooshyCueb commented on 2017-03-12 15:15

I am currently out of town, but I'll see if I can't update this at some point in the next few days

swordfeng commented on 2017-03-12 12:56

It seems that `generic_readlink` in vmblock should be changed to `vfs_readlink` for kernel version >= 4.10

TrakTrakTrugui commented on 2017-01-30 00:50

Thank you, works nicely in 4.9.6-1-ARCH

aasoft commented on 2017-01-29 03:04

The following successfully compiled for me on 4.9.6-1-ARCH.

Untar vmmon.tar and vmnet.tar, apply the patches below, tar them back.

# tar xpf vmmon.tar
# tar xpf vmnet.tar

# mv vmmon.tar vmmon.tar.old
# mv vmnet.tar vmnet.tar.old

# tar cf vmmon.tar vmmon-only
# tar cf vmnet.tar vmnet-only


diff -u -r vmmon-only/linux/hostif.c vmmon-new/linux/hostif.c
--- vmmon-only/linux/hostif.c 2016-11-11 23:15:51.000000000 -0800
+++ vmmon-new/linux/hostif.c 2017-01-28 18:56:51.665442691 -0800
@@ -1163,7 +1163,7 @@

- retval = get_user_pages((unsigned long)uvAddr, numPages, 0, 0, ppages, NULL);
+ retval = get_user_pages((unsigned long)uvAddr, numPages, 0, ppages, NULL);
retval = get_user_pages(current, current->mm, (unsigned long)uvAddr,
numPages, 0, 0, ppages, NULL);

diff -u -r vmnet-only/userif.c vmnet-new/userif.c
--- vmnet-only/userif.c 2016-11-11 23:15:55.000000000 -0800
+++ vmnet-new/userif.c 2017-01-28 18:57:00.872006425 -0800
@@ -114,7 +114,7 @@

- retval = get_user_pages(addr, 1, 1, 0, &page, NULL);
+ retval = get_user_pages(addr, 1, FOLL_WRITE, &page, NULL);
retval = get_user_pages(current, current->mm, addr,
1, 1, 0, &page, NULL);

SwooshyCueb commented on 2017-01-23 18:58

Still having problems with vsock's symbol versions. If anyone has any elegant solutions I'm open for ideas.

SwooshyCueb commented on 2017-01-23 18:35

updated for 4.9

mobad commented on 2017-01-20 02:52

Doesn't work with 4.9.

/tmp/modconfig-QCwpbE/vmmon-only/linux/hostif.c: In function ‘HostIFGetUserPages’:
/tmp/modconfig-QCwpbE/vmmon-only/linux/hostif.c:1166:67: error: passing argument 5 of ‘get_user_pages’ from incompatible pointer type [-Werror=incompatible-pointer-types]
retval = get_user_pages((unsigned long)uvAddr, numPages, 0, 0, ppages, NULL);
In file included from /tmp/modconfig-QCwpbE/vmmon-only/./include/compat_page.h:23:0,
from /tmp/modconfig-QCwpbE/vmmon-only/linux/hostif.c:32:
./include/linux/mm.h:1280:6: note: expected ‘struct vm_area_struct **’ but argument is of type ‘struct page **’
long get_user_pages(unsigned long start, unsigned long nr_pages,
/tmp/modconfig-QCwpbE/vmmon-only/linux/hostif.c:1166:13: error: too many arguments to function ‘get_user_pages’
retval = get_user_pages((unsigned long)uvAddr, numPages, 0, 0, ppages, NULL);

To fix the following needs to be changed in many places:
retval = get_user_pages((unsigned long)uvAddr, numPages, 0, 0, ppages, NULL);
retval = get_user_pages((unsigned long)uvAddr, numPages, 0, ppages, NULL);

The "write" parameter was removed.

Also, could you remove "linux" from makedepends as it forces people using other kernels like "linux-ck" to install "linux".

Most other dkms modules I've seen don't have "linux" as a makedepends.

SwooshyCueb commented on 2016-09-21 21:32

Okay it looks like there's a problem with the vsock and vmblock modules. They build fine, but modprobe fails. It might be a day or two before I can look into this.

SwooshyCueb commented on 2016-09-18 22:05

Taking over maintenance of this package again, as it seems nobody else is willing currently. Just updated to work with VMWare Workstation 12.5 and Linux 4.7.1. Let me know if you have any issues.

SwooshyCueb commented on 2016-07-16 21:49

Disowned package because I cannot currently update it regularly. Whomever decides to maintain it in the future, if you'd like to add me as co-maintainer I can help out from time to time

SwooshyCueb commented on 2016-07-15 16:50

I'm not going to be able to update this for some time. Should I disown the package, or would someone like to be added as co-maintainer?

Anonymous comment on 2016-07-04 02:46

In /etc/udev/rules.d/60-vmware.rules, 660 needs to be surrounded with double-quotes. It is currently only correct on line 2.

KERNEL=="vmci", GROUP="vmware", MODE="660"
KERNEL=="vmw_vmci", GROUP="vmware", MODE="660"
KERNEL=="vmmon", GROUP="vmware", MODE="660"
KERNEL=="vsock", GROUP="vmware", MODE="660"

phant0m commented on 2016-06-29 15:58

No, it's still doesn't build correctly:

/var/lib/dkms/vmware-modules/308.0/build/vmci/linux/driver.c:746:40: error: passing argument 5 of ‘VMCIContext_InitContext’ from incompatible pointer type [-Werror=incompatible-pointer-types]
&user, &vmciLinux->context);

z3t0 commented on 2016-06-25 00:00

Hi, I am new to Arch and AUR so I do not know how I can contribute to the PKGBUILD but I was able to get vmware 12 to run without this package by following the solution at.

1) vmmon.tar
- untar
- change ./vmmon-only/linux/hostif.c
- replace all:
"get_user_pages" to "get_user_pages_remote"
- tar and replace original
2) vmnet.tar
- untar
- change ./vmnet-only/userif.c
- replace all:
"get_user_pages" to "get_user_pages_remote"
- tar and replace original

Successful compiled on FC23 FC24, FC25 (kernel 4.7) ARCH 4.6.2-1


SwooshyCueb commented on 2016-06-23 03:40

Seems to build fine for 4.6.2-2, at least on my end. If you're still having issues, let me know, and some build logs would be nice

SwooshyCueb commented on 2016-06-10 04:01

I plan on looking into this tomorrow. Haven't actually been able to test my 4.6 support yet, so thanks for the feedback.

s1kx commented on 2016-06-09 21:12

I have the same problem as doblerone with VMWare Workstation 12.1.0.

doblerone commented on 2016-06-09 08:47

Since the update to kernel 4.6.1-2, I'm not able to launch VMPlayer. I reinstalled the new version of the Player (12.1.1) but it fails when it's building the virtual machine monitor and virtual network device.

SwooshyCueb commented on 2016-05-26 05:49

Should be updated for 4.5. Working on a few tweaks and also 4.6 support.

If you compiled this previously by just commenting out the .follow_link assignment (or using a patch that effectively does the same thing) you'll want to update, as the new patch should make proper use of .follow_link's replacement.

Anonymous comment on 2016-05-22 16:07

It seems like you can simplify the package function:

package() {
# make folder for dkms
install -m755 -d ${pkgdir}/usr/src/${_pkgbase}-${pkgver}
install -D -m0644 ${srcdir}/60-vmware.rules ${pkgdir}/etc/udev/rules.d/60-vmware.rules

for file in {dkms.conf,Makefile}; do
install -D -m0644 ${srcdir}/$file ${pkgdir}/usr/src/${_pkgbase}-${pkgver}/$file

for patch in {vmblock,vmci,vmmon,vmnet,vsock,inode}; do
install -D -m0644 ${srcdir}/$patch.patch ${pkgdir}/usr/src/${_pkgbase}-${pkgver}/$patch.patch

zxalexis commented on 2016-05-12 18:40

New patch for Kernel 4.5+ is here:

# vmware-modules-308.1.0-inode.patch
--- a/vmblock-only/linux/inode.c 2016-03-18 18:27:18.844594271 -0400
+++ b/vmblock-only/linux/inode.c 2016-03-18 18:29:21.846590637 -0400
@@ -63,7 +63,11 @@ static struct inode_operations LinkInode
struct inode_operations LinkInodeOps = {
.readlink = InodeOpReadlink,
- .follow_link = InodeOpFollowlink,
+ .follow_link = InodeOpFollowlink
+ .follow_link = InodeOpFollowlink


sproche72 commented on 2016-05-11 12:10

The drivers don't compile immediately in Arch Linux with kernel 4.5. However, I have found where the error is (an assignment to a missing field) and commented out that assignment.

drws commented on 2016-04-18 16:47

There is probably linux-lts missing for the linux dependency and linux-lts-headers for the linux-headers dependency. There are however more exotic variants such as linux-lts310-ck-headers satisfying the dependency... is there a specific reason a generic -lts variant is missing?

SwooshyCueb commented on 2016-02-22 01:28

Yeah, it's out of date again. Might be a bit before I can fix it, as my main PC is currently on its way back from a repair depot.

dummys commented on 2016-01-06 12:27

pacman up2date.

Can't build:

Building module:
cleaning build area...
make KERNELRELEASE=4.3.3-2-ARCH KVERSION=4.3.3-2-ARCH....(bad exit status: 2)
Error! Bad return status for module build on kernel: 4.3.3-2-ARCH (x86_64)
Consult /var/lib/dkms/vmware-modules/308.0/build/make.log for more information.
error: command failed to execute correctly


DKMS make.log for vmware-modules-308.0 for kernel 4.3.3-2-ARCH (x86_64)
Wed Jan 6 12:06:54 CET 2016
tar xf /usr/lib/vmware/modules/source/vmblock.tar
mv vmblock-only vmblock
chmod -R +w vmblock
if [ -e vmblock.patch ] ; then \
patch -p1 < vmblock.patch ; \
patching file vmblock/linux/control.c
patching file vmblock/linux/dentry.c
patching file vmblock/linux/file.c
patching file vmblock/linux/inode.c
patching file vmblock/shared/compat_namei.h
make VM_UNAME=4.3.3-2-ARCH VM_KBUILD=yes -C vmblock
make[1]: Entering directory '/var/lib/dkms/vmware-modules/308.0/build/vmblock'
Using kernel build system.
make -C /lib/modules/4.3.3-2-ARCH/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. \
make[2]: Entering directory '/usr/lib/modules/4.3.3-2-ARCH/build'
CC [M] /var/lib/dkms/vmware-modules/308.0/build/vmblock/linux/filesystem.o
CC [M] /var/lib/dkms/vmware-modules/308.0/build/vmblock/linux/dentry.o
CC [M] /var/lib/dkms/vmware-modules/308.0/build/vmblock/linux/file.o
CC [M] /var/lib/dkms/vmware-modules/308.0/build/vmblock/linux/block.o
CC [M] /var/lib/dkms/vmware-modules/308.0/build/vmblock/linux/inode.o
CC [M] /var/lib/dkms/vmware-modules/308.0/build/vmblock/linux/super.o
CC [M] /var/lib/dkms/vmware-modules/308.0/build/vmblock/linux/module.o
CC [M] /var/lib/dkms/vmware-modules/308.0/build/vmblock/linux/stubs.o
CC [M] /var/lib/dkms/vmware-modules/308.0/build/vmblock/linux/control.o
LD [M] /var/lib/dkms/vmware-modules/308.0/build/vmblock/vmblock.o
Building modules, stage 2.
MODPOST 1 modules
CC /var/lib/dkms/vmware-modules/308.0/build/vmblock/vmblock.mod.o
LD [M] /var/lib/dkms/vmware-modules/308.0/build/vmblock/vmblock.ko
make[2]: Leaving directory '/usr/lib/modules/4.3.3-2-ARCH/build'
make -C $PWD SRCROOT=$PWD/. \
make[2]: Entering directory '/var/lib/dkms/vmware-modules/308.0/build/vmblock'
make[2]: 'postbuild' is up to date.
make[2]: Leaving directory '/var/lib/dkms/vmware-modules/308.0/build/vmblock'
cp -f vmblock.ko ./../vmblock.o
make[1]: Leaving directory '/var/lib/dkms/vmware-modules/308.0/build/vmblock'
mv vmblock.o vmblock.ko
tar xf /usr/lib/vmware/modules/source/vmci.tar
mv vmci-only vmci
chmod -R +w vmci
if [ -e vmci.patch ] ; then \
patch -p1 < vmci.patch ; \
patching file vmci/linux/driver.c
patching file vmci/linux/vmciKernelIf.c
patching file vmci/shared/vm_device_version.h
patching file vmci/shared/vmci_kernel_if.h
make VM_UNAME=4.3.3-2-ARCH VM_KBUILD=yes -C vmci
make[1]: Entering directory '/var/lib/dkms/vmware-modules/308.0/build/vmci'
Using kernel build system.
make -C /lib/modules/4.3.3-2-ARCH/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. \
make[2]: Entering directory '/usr/lib/modules/4.3.3-2-ARCH/build'
CC [M] /var/lib/dkms/vmware-modules/308.0/build/vmci/linux/driver.o
/var/lib/dkms/vmware-modules/308.0/build/vmci/linux/driver.c: In function ‘LinuxDriver_Ioctl’:
/var/lib/dkms/vmware-modules/308.0/build/vmci/linux/driver.c:746:40: warning: passing argument 5 of ‘VMCIContext_InitContext’ from incompatible pointer type [-Wincompatible-pointer-types]
&user, &vmciLinux->context);
In file included from /var/lib/dkms/vmware-modules/308.0/build/vmci/linux/driver.c:73:0:
/var/lib/dkms/vmware-modules/308.0/build/vmci/./common/vmciContext.h:47:5: note: expected ‘VMCIHostUser * {aka struct <anonymous> *}’ but argument is of type ‘uid_t * {aka unsigned int *}’
int VMCIContext_InitContext(VMCIId cid, VMCIPrivilegeFlags flags,
/var/lib/dkms/vmware-modules/308.0/build/vmci/linux/driver.c: In function ‘vmci_exit’:
/var/lib/dkms/vmware-modules/308.0/build/vmci/linux/driver.c:2495:14: error: void value not ignored as it ought to be
retval = misc_deregister(&linuxState.misc);
scripts/ recipe for target '/var/lib/dkms/vmware-modules/308.0/build/vmci/linux/driver.o' failed
make[3]: *** [/var/lib/dkms/vmware-modules/308.0/build/vmci/linux/driver.o] Error 1
Makefile:1378: recipe for target '_module_/var/lib/dkms/vmware-modules/308.0/build/vmci' failed
make[2]: *** [_module_/var/lib/dkms/vmware-modules/308.0/build/vmci] Error 2
make[2]: Leaving directory '/usr/lib/modules/4.3.3-2-ARCH/build'
Makefile:120: recipe for target 'vmci.ko' failed
make[1]: *** [vmci.ko] Error 2
make[1]: Leaving directory '/var/lib/dkms/vmware-modules/308.0/build/vmci'
Makefile:17: recipe for target 'vmci.ko' failed
make: *** [vmci.ko] Error 2

SwooshyCueb commented on 2015-10-11 05:21

Updated for 308.0 (the version included with Workstation 12)
I don't know if it works with earlier versions, as I don't have any to test against.

Raansu commented on 2015-09-21 09:39


Raansu commented on 2015-09-21 08:52

Adopted and updated for AUR4, let me know if there are any issues.

Raansu commented on 2015-09-21 08:52

Adopted and updated for AUR4, let me know if there are any issues!