VMware Communities
jpearso
Enthusiast
Enthusiast

VMware Workstation 12.5.7 build-5813279.x86_64 does not compile on openSUSE-Leap-42.3-DVD-x86_64

Hello all

I installed VMware-Workstation-Full-12.5.7-5813279 on openSUSE-Leap-42.3-DVD-x86_64

The installation goes fine but both vmnet-only and vmmon-only modules error out when compiling which means that VMware "Virtual machine monitor" and "Virtual ethernet " services fail to start.

I was wondering if there are any patchs or work arounds.

TIA

James

# specs

VMware Workstation Version : 12.5.7

Release Date : 2017-06-22

Bundle : VMware-Workstation-Full-12.5.7-5813279.x86_64.bundle

openSUSE-Leap-42.3-DVD-x86_64

uname -a : Linux linux-6l9t 4.4.75-1-default #1 SMP Fri Jul 7 11:28:32 UTC 2017 (0b7a836) x86_64 x86_64 x86_64 GNU/Linux

Log details are below.

# Compiling the vmnet and vmmon modules....

# You are in /tmp/vmware/source...

Compiling the vmnet module...

vmnet-only/

vmnet-only/smac_compat.h

vmnet-only/vmware_pack_init.h

vmnet-only/smac_compat.c

vmnet-only/userif.c

vmnet-only/netdev_has_dev_net.c

vmnet-only/compat_autoconf.h

vmnet-only/compat_skbuff.h

vmnet-only/Makefile.kernel

vmnet-only/compat_module.h

vmnet-only/vm_basic_asm_x86.h

vmnet-only/vm_basic_types.h

vmnet-only/netdev_has_net.c

vmnet-only/x86cpuid.h

vmnet-only/vnetKernel.h

vmnet-only/driver-config.h

vmnet-only/smac.c

vmnet-only/Makefile.normal

vmnet-only/monitorAction_exported.h

vmnet-only/vm_basic_asm_x86_64.h

vmnet-only/COPYING

vmnet-only/procfs.c

vmnet-only/smac.h

vmnet-only/compat_sock.h

vmnet-only/vm_basic_defs.h

vmnet-only/vmnetInt.h

vmnet-only/vnet.h

vmnet-only/geninclude.c

vmnet-only/netif.c

vmnet-only/vm_basic_asm_x86_common.h

vmnet-only/community_source.h

vmnet-only/bridge.c

vmnet-only/vm_atomic.h

vmnet-only/vnetFilterInt.h

vmnet-only/nfhook_uses_skb.c

vmnet-only/vm_basic_asm.h

vmnet-only/compat_version.h

vmnet-only/vmware_pack_begin.h

vmnet-only/vm_device_version.h

vmnet-only/net.h

vmnet-only/vm_assert.h

vmnet-only/hub.c

vmnet-only/vnetFilter.h

vmnet-only/vnetEvent.h

vmnet-only/Makefile

vmnet-only/vnetEvent.c

vmnet-only/compat_netdevice.h

vmnet-only/driver.c

vmnet-only/vmware_pack_end.h

vmnet-only/includeCheck.h

vmnet-only/skblin.c

vmnet-only/vnetUserListener.c

vmnet-only/vnetInt.h

vmnet-only/vm_oui.h

Using kernel build system.

make -C /lib/modules/4.4.75-1-default/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. \

  MODULEBUILDDIR= modules

make[1]: Entering directory '/usr/src/linux-4.4.75-1-obj/x86_64/default'

  CC [M]  /tmp/vmware/source/vmnet-only/driver.o

  CC [M]  /tmp/vmware/source/vmnet-only/hub.o

  CC [M]  /tmp/vmware/source/vmnet-only/userif.o

/tmp/vmware/source/vmnet-only/userif.c: In function ‘UserifLockPage’:

/tmp/vmware/source/vmnet-only/userif.c:125:28: warning: passing argument 1 of ‘get_user_pages’ makes integer from pointer without a cast [enabled by default]

                            1, 1, 0, &page, NULL);

                            ^

In file included from /usr/src/linux-4.4.75-1/include/linux/highmem.h:7:0,

                 from /tmp/vmware/source/vmnet-only/userif.c:26:

/usr/src/linux-4.4.75-1/include/linux/mm.h:1264:6: note: expected ‘long unsigned int’ but argument is of type ‘struct task_struct *’

long get_user_pages(unsigned long start, unsigned long nr_pages,

      ^

/tmp/vmware/source/vmnet-only/userif.c:125:28: warning: passing argument 2 of ‘get_user_pages’ makes integer from pointer without a cast [enabled by default]

                            1, 1, 0, &page, NULL);

                            ^

In file included from /usr/src/linux-4.4.75-1/include/linux/highmem.h:7:0,

                 from /tmp/vmware/source/vmnet-only/userif.c:26:

/usr/src/linux-4.4.75-1/include/linux/mm.h:1264:6: note: expected ‘long unsigned int’ but argument is of type ‘struct mm_struct *’

long get_user_pages(unsigned long start, unsigned long nr_pages,

      ^

/tmp/vmware/source/vmnet-only/userif.c:125:28: warning: passing argument 4 of ‘get_user_pages’ makes pointer from integer without a cast [enabled by default]

                            1, 1, 0, &page, NULL);

                            ^

In file included from /usr/src/linux-4.4.75-1/include/linux/highmem.h:7:0,

                 from /tmp/vmware/source/vmnet-only/userif.c:26:

/usr/src/linux-4.4.75-1/include/linux/mm.h:1264:6: note: expected ‘struct page **’ but argument is of type ‘int’

long get_user_pages(unsigned long start, unsigned long nr_pages,

      ^

/tmp/vmware/source/vmnet-only/userif.c:125:28: warning: passing argument 5 of ‘get_user_pages’ makes pointer from integer without a cast [enabled by default]

                            1, 1, 0, &page, NULL);

                            ^

In file included from /usr/src/linux-4.4.75-1/include/linux/highmem.h:7:0,

                 from /tmp/vmware/source/vmnet-only/userif.c:26:

/usr/src/linux-4.4.75-1/include/linux/mm.h:1264:6: note: expected ‘struct vm_area_struct **’ but argument is of type ‘int’

long get_user_pages(unsigned long start, unsigned long nr_pages,

      ^

/tmp/vmware/source/vmnet-only/userif.c:125:28: error: too many arguments to function ‘get_user_pages’

                            1, 1, 0, &page, NULL);

                            ^

In file included from /usr/src/linux-4.4.75-1/include/linux/highmem.h:7:0,

                 from /tmp/vmware/source/vmnet-only/userif.c:26:

/usr/src/linux-4.4.75-1/include/linux/mm.h:1264:6: note: declared here

long get_user_pages(unsigned long start, unsigned long nr_pages,

      ^

/usr/src/linux-4.4.75-1/scripts/Makefile.build:259: recipe for target '/tmp/vmware/source/vmnet-only/userif.o' failed

make[4]: *** [/tmp/vmware/source/vmnet-only/userif.o] Error 1

/usr/src/linux-4.4.75-1/Makefile:1428: recipe for target '_module_/tmp/vmware/source/vmnet-only' failed

make[3]: *** [_module_/tmp/vmware/source/vmnet-only] Error 2

Makefile:150: recipe for target 'sub-make' failed

make[2]: *** [sub-make] Error 2

Makefile:24: recipe for target '__sub-make' failed

make[1]: *** [__sub-make] Error 2

make[1]: Leaving directory '/usr/src/linux-4.4.75-1-obj/x86_64/default'

Makefile:120: recipe for target 'vmnet.ko' failed

make: *** [vmnet.ko] Error 2

Finished compiling the vmnet module...

ls: cannot access 'vmnet.o': No such file or directory

Copying the vmnet module to /lib/modules/4.4.75-1-default/kernel/drivers/misc/...

cp: cannot stat './vmnet.o': No such file or directory

Compiling the vmmon module...

vmmon-only/

vmmon-only/Makefile.kernel

vmmon-only/Makefile.normal

vmmon-only/COPYING

vmmon-only/include/

vmmon-only/include/vmware_pack_init.h

vmmon-only/include/cpuid_info.h

vmmon-only/include/x86apic.h

vmmon-only/include/uccostTable.h

vmmon-only/include/x86vt-vmcs-fields.h

vmmon-only/include/compat_spinlock.h

vmmon-only/include/compat_autoconf.h

vmmon-only/include/compat_module.h

vmmon-only/include/vm_basic_asm_x86.h

vmmon-only/include/vm_basic_types.h

vmmon-only/include/overheadmem_types.h

vmmon-only/include/vm_asm_x86_64.h

vmmon-only/include/x86cpuid.h

vmmon-only/include/ptsc.h

vmmon-only/include/driver-config.h

vmmon-only/include/usercalldefs.h

vmmon-only/include/pcip_defs.h

vmmon-only/include/vm_basic_math.h

vmmon-only/include/compat_highmem.h

vmmon-only/include/monitorAction_exported.h

vmmon-only/include/vm_basic_asm_x86_64.h

vmmon-only/include/compat_pci.h

vmmon-only/include/cpu_defs.h

vmmon-only/include/modulecall.h

vmmon-only/include/x86vt.h

vmmon-only/include/iocontrols.h

vmmon-only/include/x86cpuid_asm.h

vmmon-only/include/vm_basic_defs.h

vmmon-only/include/rateconv.h

vmmon-only/include/compat_pgtable.h

vmmon-only/include/vmware.h

vmmon-only/include/x86sel.h

vmmon-only/include/x86types.h

vmmon-only/include/circList.h

vmmon-only/include/versioned_atomic.h

vmmon-only/include/address_defs.h

vmmon-only/include/memDefaults.h

vmmon-only/include/vm_time.h

vmmon-only/include/vm_basic_asm_x86_common.h

vmmon-only/include/x86desc.h

vmmon-only/include/pgtbl.h

vmmon-only/include/vm_asm.h

vmmon-only/include/pageLock_defs.h

vmmon-only/include/mon_assert.h

vmmon-only/include/community_source.h

vmmon-only/include/vm_atomic.h

vmmon-only/include/contextinfo.h

vmmon-only/include/vmmem_shared.h

vmmon-only/include/perfctr_generic.h

vmmon-only/include/crossgdt.h

vmmon-only/include/compat_interrupt.h

vmmon-only/include/vm_basic_asm.h

vmmon-only/include/vcpuset_types.h

vmmon-only/include/compat_version.h

vmmon-only/include/vmware_pack_begin.h

vmmon-only/include/compat_kernel.h

vmmon-only/include/compat_page.h

vmmon-only/include/numa_defs.h

vmmon-only/include/initblock.h

vmmon-only/include/vm_assert.h

vmmon-only/include/x86segdescrs.h

vmmon-only/include/modulecallstructs.h

vmmon-only/include/compat_cred.h

vmmon-only/include/x86vendor.h

vmmon-only/include/x86vtinstr.h

vmmon-only/include/x86_basic_defs.h

vmmon-only/include/vcpuid.h

vmmon-only/include/basic_initblock.h

vmmon-only/include/pagelist.h

vmmon-only/include/vmware_pack_end.h

vmmon-only/include/includeCheck.h

vmmon-only/include/compat_sched.h

vmmon-only/include/compat_ioport.h

vmmon-only/include/pshare_ext.h

vmmon-only/include/x86perfctr.h

vmmon-only/include/compat_semaphore.h

vmmon-only/include/vcpuset.h

vmmon-only/include/x86msr.h

vmmon-only/include/vm_asm_x86.h

vmmon-only/include/hashFunc.h

vmmon-only/include/x86svm.h

vmmon-only/include/vmm_constants.h

vmmon-only/autoconf/

vmmon-only/autoconf/tsc_khz.c

vmmon-only/autoconf/geninclude.c

vmmon-only/autoconf/smpcall.c

vmmon-only/README

vmmon-only/Makefile

vmmon-only/linux/

vmmon-only/linux/hostif.c

vmmon-only/linux/driver.h

vmmon-only/linux/driverLog.h

vmmon-only/linux/vmhost.h

vmmon-only/linux/driverLog.c

vmmon-only/linux/hostif_priv.h

vmmon-only/linux/driver.c

vmmon-only/linux/vmmonInt.h

vmmon-only/vmcore/

vmmon-only/vmcore/driver_vmcore.h

vmmon-only/vmcore/moduleloop.c

vmmon-only/common/

vmmon-only/common/hostif.h

vmmon-only/common/memtrack.h

vmmon-only/common/apic.h

vmmon-only/common/vmx86.h

vmmon-only/common/vmx86.c

vmmon-only/common/phystrack.h

vmmon-only/common/memtrack.c

vmmon-only/common/comport.c

vmmon-only/common/hashFunc.c

vmmon-only/common/phystrack.c

vmmon-only/common/hostKernel.h

vmmon-only/common/hostifGlobalLock.h

vmmon-only/common/task.h

vmmon-only/common/cpuid.h

vmmon-only/common/cpuid.c

vmmon-only/common/hostifMem.h

vmmon-only/common/comport.h

vmmon-only/common/apic.c

vmmon-only/common/task.c

Using kernel build system.

make -C /lib/modules/4.4.75-1-default/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. \

  MODULEBUILDDIR= modules

make[1]: Entering directory '/usr/src/linux-4.4.75-1-obj/x86_64/default'

  CC [M]  /tmp/vmware/source/vmmon-only/linux/driver.o

/tmp/vmware/source/vmmon-only/linux/driver.c:1291:1: warning: always_inline function might not be inlinable [-Wattributes]

LinuxDriverSyncReadTSCs(uint64 *delta) // OUT: TSC max - TSC min

^

  CC [M]  /tmp/vmware/source/vmmon-only/linux/hostif.o

/tmp/vmware/source/vmmon-only/linux/hostif.c: In function ‘HostIFGetUserPages’:

/tmp/vmware/source/vmmon-only/linux/hostif.c:1174:28: warning: passing argument 1 of ‘get_user_pages’ makes integer from pointer without a cast [enabled by default]

                            numPages, 0, 0, ppages, NULL);

                            ^

In file included from /tmp/vmware/source/vmmon-only/./include/compat_page.h:23:0,

                 from /tmp/vmware/source/vmmon-only/linux/hostif.c:32:

/usr/src/linux-4.4.75-1/include/linux/mm.h:1264:6: note: expected ‘long unsigned int’ but argument is of type ‘struct task_struct *’

long get_user_pages(unsigned long start, unsigned long nr_pages,

      ^

/tmp/vmware/source/vmmon-only/linux/hostif.c:1174:28: warning: passing argument 2 of ‘get_user_pages’ makes integer from pointer without a cast [enabled by default]

                            numPages, 0, 0, ppages, NULL);

                            ^

In file included from /tmp/vmware/source/vmmon-only/./include/compat_page.h:23:0,

                 from /tmp/vmware/source/vmmon-only/linux/hostif.c:32:

/usr/src/linux-4.4.75-1/include/linux/mm.h:1264:6: note: expected ‘long unsigned int’ but argument is of type ‘struct mm_struct *’

long get_user_pages(unsigned long start, unsigned long nr_pages,

      ^

/tmp/vmware/source/vmmon-only/linux/hostif.c:1174:28: warning: passing argument 4 of ‘get_user_pages’ makes pointer from integer without a cast [enabled by default]

                            numPages, 0, 0, ppages, NULL);

                            ^

In file included from /tmp/vmware/source/vmmon-only/./include/compat_page.h:23:0,

                 from /tmp/vmware/source/vmmon-only/linux/hostif.c:32:

/usr/src/linux-4.4.75-1/include/linux/mm.h:1264:6: note: expected ‘struct page **’ but argument is of type ‘unsigned int’

long get_user_pages(unsigned long start, unsigned long nr_pages,

      ^

/tmp/vmware/source/vmmon-only/linux/hostif.c:1174:28: error: too many arguments to function ‘get_user_pages’

                            numPages, 0, 0, ppages, NULL);

                            ^

In file included from /tmp/vmware/source/vmmon-only/./include/compat_page.h:23:0,

                 from /tmp/vmware/source/vmmon-only/linux/hostif.c:32:

/usr/src/linux-4.4.75-1/include/linux/mm.h:1264:6: note: declared here

long get_user_pages(unsigned long start, unsigned long nr_pages,

      ^

/usr/src/linux-4.4.75-1/scripts/Makefile.build:259: recipe for target '/tmp/vmware/source/vmmon-only/linux/hostif.o' failed

make[4]: *** [/tmp/vmware/source/vmmon-only/linux/hostif.o] Error 1

/usr/src/linux-4.4.75-1/Makefile:1428: recipe for target '_module_/tmp/vmware/source/vmmon-only' failed

make[3]: *** [_module_/tmp/vmware/source/vmmon-only] Error 2

Makefile:150: recipe for target 'sub-make' failed

make[2]: *** [sub-make] Error 2

Makefile:24: recipe for target '__sub-make' failed

make[1]: *** [__sub-make] Error 2

make[1]: Leaving directory '/usr/src/linux-4.4.75-1-obj/x86_64/default'

Makefile:120: recipe for target 'vmmon.ko' failed

make: *** [vmmon.ko] Error 2

Finished compiling the vmmon module...

ls: cannot access 'vmmon.o': No such file or directory

Copying the vmmon module to /lib/modules/4.4.75-1-default/kernel/drivers/misc/...

cp: cannot stat 'vmmon.o': No such file or directory

Loading new module dependencies...

Restarting vmware...

Stopping VMware services:

   VMware Authentication Daemon                                        done

   VM communication interface socket family                            done

   Virtual machine communication interface                             done

   Virtual machine monitor                                             done

   Blocking file system                                                done

Starting VMware services:

   Virtual machine monitor                                            failed

   Virtual machine communication interface                             done

   VM communication interface socket family                            done

   Blocking file system                                                done

   Virtual ethernet                                                   failed

8 Replies
jpearso
Enthusiast
Enthusiast

I am adding a short resume of my problem of both the vmnet-only and vmmon-only modules erroring out when compiling on openSUSE-Leap-42.3 (x86_64) using VMware-Workstation-Full-12.5.7-5813279

The current openSUSE-Leap-42.3 kernel version is 4.4.75-1

uname -a

Linux Home 4.4.75-1-default #1 SMP Fri Jul 7 11:28:32 UTC 2017 (0b7a836) x86_64 x86_64 x86_64 GNU/Linux

The versions of Installed kernel rpms are :

kernel-default-4.4.75-1.1.x86_64

kernel-devel-4.4.75-1.1.noarch

I installed Virtual Box v5.1.22 and it works fine

######################################################

# Error details when compiling the vmnet module

######################################################

In file included from /usr/src/linux-4.4.75-1/include/linux/highmem.h:7:0,

                 from /tmp/vmware/source/vmnet-only/userif.c:26:

/usr/src/linux-4.4.75-1/include/linux/mm.h:1264:6: note: expected ‘struct vm_area_struct **’ but argument is of type ‘int’

long get_user_pages(unsigned long start, unsigned long nr_pages,

      ^

/tmp/vmware/source/vmnet-only/userif.c:125:28: error: too many arguments to function ‘get_user_pages’

                            1, 1, 0, &page, NULL);

                            ^

In file included from /usr/src/linux-4.4.75-1/include/linux/highmem.h:7:0,

                 from /tmp/vmware/source/vmnet-only/userif.c:26:

/usr/src/linux-4.4.75-1/include/linux/mm.h:1264:6: note: declared here

long get_user_pages(unsigned long start, unsigned long nr_pages,

/usr/src/linux-4.4.75-1/scripts/Makefile.build:259: recipe for target '/tmp/vmware/source/vmnet-only/userif.o' failed

make[4]: *** [/tmp/vmware/source/vmnet-only/userif.o] Error 1

/usr/src/linux-4.4.75-1/Makefile:1428: recipe for target '_module_/tmp/vmware/source/vmnet-only' failed

make[3]: *** [_module_/tmp/vmware/source/vmnet-only] Error 2

Makefile:150: recipe for target 'sub-make' failed

make[2]: *** [sub-make] Error 2

Makefile:24: recipe for target '__sub-make' failed

make[1]: *** [__sub-make] Error 2

make[1]: Leaving directory '/usr/src/linux-4.4.75-1-obj/x86_64/default'

Makefile:120: recipe for target 'vmnet.ko' failed

make: *** [vmnet.ko] Error 2

Finished ...

ls: cannot access 'vmnet.o': No such file or directory

Copying the vmnet module to /lib/modules/4.4.75-1-default/kernel/drivers/misc/...

cp: cannot stat './vmnet.o': No such file or directory

######################################################

# Error compiling the vmmon module

######################################################

file included from /tmp/vmware/source/vmmon-only/./include/compat_page.h:23:0,

                 from /tmp/vmware/source/vmmon-only/linux/hostif.c:32:

/usr/src/linux-4.4.75-1/include/linux/mm.h:1264:6: note: expected ‘struct page **’ but argument is of type ‘unsigned int’

long get_user_pages(unsigned long start, unsigned long nr_pages,

      ^

/tmp/vmware/source/vmmon-only/linux/hostif.c:1174:28: error: too many arguments to function ‘get_user_pages’

                            numPages, 0, 0, ppages, NULL);

                            ^

In file included from /tmp/vmware/source/vmmon-only/./include/compat_page.h:23:0,

                 from /tmp/vmware/source/vmmon-only/linux/hostif.c:32:

/usr/src/linux-4.4.75-1/include/linux/mm.h:1264:6: note: declared here

long get_user_pages(unsigned long start, unsigned long nr_pages,

      ^

/usr/src/linux-4.4.75-1/scripts/Makefile.build:259: recipe for target '/tmp/vmware/source/vmmon-only/linux/hostif.o' failed

make[4]: *** [/tmp/vmware/source/vmmon-only/linux/hostif.o] Error 1

/usr/src/linux-4.4.75-1/Makefile:1428: recipe for target '_module_/tmp/vmware/source/vmmon-only' failed

make[3]: *** [_module_/tmp/vmware/source/vmmon-only] Error 2

Makefile:150: recipe for target 'sub-make' failed

make[2]: *** [sub-make] Error 2

Makefile:24: recipe for target '__sub-make' failed

make[1]: *** [__sub-make] Error 2

make[1]: Leaving directory '/usr/src/linux-4.4.75-1-obj/x86_64/default'

Makefile:120: recipe for target 'vmmon.ko' failed

make: *** [vmmon.ko] Error 2

Any patchs or suggestions are more than welcome

TIA

Reply
0 Kudos
AishR
VMware Employee
VMware Employee

Open Suse leap 42 is not supported with vmware Workstation 12.5.7.

Reply
0 Kudos
jpearso
Enthusiast
Enthusiast

Hello

Thank you for the come back.

>Open Suse leap 42 is not supported with vmware Workstation 12.5.7.

You are indeed correct that openSUSE LEAP 42.3 (which will be released in 6 days*) and which is currently on kernel 4.4.76-1-default** is not supported on the lastest build of VMware Workstation (which was 12.5.7 build-5813279.x86_64 as of 10 days ago).

[*] URL: openSUSE News

cat /etc/os-release

NAME="openSUSE Leap"

VERSION="42.3"

ID=opensuse

ID_LIKE="suse"

VERSION_ID="42.3"

PRETTY_NAME="openSUSE Leap 42.3"

ANSI_COLOR="0;32"

CPE_NAME="cpe:/o:opensuse:leap:42.3"

BUG_REPORT_URL="https://bugs.opensuse.org"

HOME_URL="https://www.opensuse.org/"

[**]

uname -a

Linux hero 4.4.76-1-default #1 SMP Fri Jul 14 08:48:13 UTC 2017 (9a2885c) x86_64 x86_64 x86_64 GNU/Linux

This is exactly the reason ***why*** I created this thread   - I am an early adopter and I use vmware Workstation on linux.

Please note that vmware Workstation has been supported on openSUSE LEAP 42.2 for  ages. I would have raised an issue here for all and any problems if it wasn't.

According to my records, the last vmware Workstation update for linux was in ~Dec 2015. At that least that was the last time I paid to update my vmware Workstation licence.

virtualbox-5.1.22-20.2.x86_64 works on openSUSE LEAP 42.3, the problem is that my linux setup is adapted to vmware Workstation and I am lazy. At least for now.

The bottom line is that :

1)  I would like to run vmware Workstation on openSUSE Leap 42.3 but both vmnet-only and vmmon-only modules error out when compiling

2)  no one in my house uses Windows except under vmware because I have the choice.

The second point isn't going to change - I am keeping my fingers crossed however, and hoping that the first point will change soon : choice is good.

TIA

Regards

James

Reply
0 Kudos
bluefirestorm
Champion
Champion

Have a look at this Re: Kernel 4.6 - VmPlayer 12 - vmnet & vmmon compilation failure which appeared on "More Like This" panel on the right hand side.

Reply
0 Kudos
jpearso
Enthusiast
Enthusiast

Hello

Thank you for the comeback.

I will check out what you suggested and report back.

In the meantime I just installed VMware-Workstation-Full-e.x.p-6056110.x86_64.bundle in order to see what would happen...

When I try to compile the vmnet module on the e.x.p version - it fails

The vmmon module complies OK

The error when I compile the vmnet module follows...

                                              ^

/tmp/vmware/source/vmnet-only/netif.c:468:4: note: in expansion of macro ‘compat_netif_trans_update’

    compat_netif_trans_update(dev);

    ^

/usr/src/linux-4.4.76-1/scripts/Makefile.build:259: recipe for target '/tmp/vmware/source/vmnet-only/netif.o' failed

make[4]: *** [/tmp/vmware/source/vmnet-only/netif.o] Error 1

/usr/src/linux-4.4.76-1/Makefile:1428: recipe for target '_module_/tmp/vmware/source/vmnet-only' failed

make[3]: *** [_module_/tmp/vmware/source/vmnet-only] Error 2

Makefile:150: recipe for target 'sub-make' failed

make[2]: *** [sub-make] Error 2

Makefile:24: recipe for target '__sub-make' failed

make[1]: *** [__sub-make] Error 2

make[1]: Leaving directory '/usr/src/linux-4.4.76-1-obj/x86_64/default'

Makefile:120: recipe for target 'vmnet.ko' failed

make: *** [vmnet.ko] Error 2

Finished compiling the vmnet module...

ls: cannot access 'vmnet.o': No such file or directory

Copying the vmnet module to /lib/modules/4.4.76-1-default/kernel/drivers/misc/...

cp: cannot stat './vmnet.o': No such file or directory

Below is what I get when I stop / start the VMware services...

Restarting vmware...

Stopping VMware services:

   VMware Authentication Daemon                                        done

   VM communication interface socket family                            done

   Virtual machine communication interface                             done

   Virtual machine monitor                                             done

   Blocking file system                                                done

Starting VMware services:

   Virtual machine monitor                                             done

   Virtual machine communication interface                             done

   VM communication interface socket family                            done

   Blocking file system                                                done

   Virtual ethernet                                                   failed

   VMware Authentication Daemon                                        done

All comments welcome !

TIA

Regards

James

Reply
0 Kudos
jpearso
Enthusiast
Enthusiast

Hello

I managed to get VMware-Workstation up and running on openSUSE 42.3 by installing the E.X.P. version : VMware-Workstation-Full-e.x.p-6056110.x86_64.bundle

I still had to manually change the netif.c file (which is in the vmnet.tar) so that the vmnet module would compile.

The details can be found in the thread "Failed to build vmnet module on Linux 4.4.76-1-default openSUSE Leap 42.3 which is on Workstation Pro Tech Preview forum

Hope this helps someone.

James

SteveBacon
Contributor
Contributor

SOLVED...

In another thread this patch was posted

7. Re: VMware WS 12.5.6  fails to compile on openSUSE Leap 42.3 with kernel 4.4.68-2-default

hendrikw84Novice

I solved this by manually editing the sources of the kernel modules.

How (for vmware player 12.5.7):

>>> go to the modules sources and unpack:

cd /usr/lib/vmware/modules/source/

tar -xf vmnet.tar

tar -xf vmmon.tar

cd vmmon-only/linux/

vi hostif.c

>>> replace:

#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 9, 0)

   retval = get_user_pages((unsigned long)uvAddr, numPages, 0, ppages, NULL);

#elif LINUX_VERSION_CODE >= KERNEL_VERSION(4, 6, 0)

   retval = get_user_pages((unsigned long)uvAddr, numPages, 0, 0, ppages, NULL);

#else

   retval = get_user_pages(current, current->mm, (unsigned long)uvAddr,

                           numPages, 0, 0, ppages, NULL);

#endif

>>> with:

#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 9, 0)

   retval = get_user_pages((unsigned long)uvAddr, numPages, 0, ppages, NULL);

#elif LINUX_VERSION_CODE >= KERNEL_VERSION(4, 6, 0)

   retval = get_user_pages((unsigned long)uvAddr, numPages, 0, 0, ppages, NULL);

#else

   retval = retval = get_user_pages((unsigned long)uvAddr, numPages, 0, ppages, NULL);

#endif

cd ../..

cd vmnet-only/

vi userif.c

>>>  replace:

#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 9, 0)

   retval = get_user_pages(addr, 1, FOLL_WRITE, &page, NULL);

#elif LINUX_VERSION_CODE >= KERNEL_VERSION(4, 6, 0)

   retval = get_user_pages(addr, 1, 1, 0, &page, NULL);

#else

   retval = get_user_pages(current, current->mm, addr,

                           1, 1, 0, &page, NULL);

#endif

>>> with :

#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 9, 0)

   retval = get_user_pages(addr, 1, FOLL_WRITE, &page, NULL);

#elif LINUX_VERSION_CODE >= KERNEL_VERSION(4, 6, 0)

   retval = get_user_pages(addr, 1, 1, 0, &page, NULL);

#else

   retval = get_user_pages(addr, 1, 0, &page, NULL);

#endif

vi netif.c

>>> change:

compat_netif_trans_update(dev);

>>> to:

netif_trans_update(dev);

>>> put the changed files back into the tar balls:

cd ..

tar -cf vmnet.tar vmnet-only/

tar -cf vmmon.tar vmmon-only/

>>> compile everything:

vmware-modconfig --console --install-all

-----------------------------------------------------------

As you can see, the interface of get_user_pages() changed from Leap 42.2 to 42.3 even though it is the same kernel version (4.4).

Backports ...

Hendrik

9. Re: VMware WS 12.5.6  fails to compile on openSUSE Leap 42.3 with kernel 4.4.68-2-default

Stephen BaconLurker

Thanks Hendrik,

  I applied this patch and all is compiling properly. Some caveats to previous posts...

I installed default kernel source and build environment rather vanilla version as

I run the default kernel  4.4.76-1-default in the production version of Leap 42.3.

Thanks again,

stevedb

Reply
0 Kudos
JurgenD
Contributor
Contributor

We do use VMware products since 2 decades. And we start to notice Your organization starts to move away to support properly Your community.
Recently VMware workstation 14 does not support CPU that worked previously with VMware workstation. You start to create close source modules
that hook into the kernel. What are you doing. You kill your product for our community and more people will move to other solutions.

Reply
0 Kudos