VMWARE fails to install on 15.6

Greetings All,

I am attempting to move my machine to SUSE 15.6 (was running SUSE 15.5).
As with previous releases, VMWARE does not play well with SUSE.

When attempting to install, I get the following error:

error: implicit declaration of function \u2018skb_gso_segment\u2019;
did you mean \u2018tcp_gso_segment\u2019? [-Werror=implicit-function-declaration]
segs = skb_gso_segment(skb, 0);\n ^~~~~~~~~~~~~~~
tcp_gso_segment\n/tmp/modconfig-HImgi7/vmnet-only/bridge.c:1416:9: warning:
assignment makes pointer from integer without a cast [-Wint-conversion]
segs = skb_gso_segment(skb, 0);
/tmp/modconfig-HImgi7/vmnet-only/userif.o: warning: objtool:
VNetCsumAndCopyToUser+0x28: call to csum_partial_copy_nocheck() with UACCESS enabled\ncc1:
some warnings being treated as errors
make[2]: *** [/usr/src/linux-6.4.0-150600.23.14/scripts/Makefile.build:252:
/tmp/modconfig-HImgi7/vmnet-only/bridge.o] Error 1
make[2]: *** Waiting for unfinished jobs…\nmake[1]:
*** […/…/…/linux-6.4.0-150600.23.14/Makefile:2066:
/tmp/modconfig-HImgi7/vmnet-only] Error 2\nmake: *** [Makefile:117: vmnet.ko] Error
<\code>

I’ve attempted to utilize GitHub - mkubecek/vmware-host-modules: Patches needed to build VMware (Player and Workstation) host modules against recent kernels
However, this code also gives the same error about ‘skb_gso_segment’

I am NOT a ‘C’ programmer (nor have I played one on TV :slight_smile:
Can someone give me some direction to get this working?

I’ve built 15.6 as new (not an upgrade).
VMware install file (downloaded from the Broadcom site):
VMware-Workstation-Full-17.5.2-23775571.x86_64.bundle
Which appears to be the latest available.
Hardware is an AMD Ryzen 5 with an AMD Graphics card.

Thanx.

Richard Rosa

Downloaded and installed in Leap:
https://softwareupdate.vmware.com/cds/vmw-desktop/player/17.5.2/23775571/linux/core/

./VMware-Player-17.5.2-23775571.x86_64.bundle 
Extracting VMware Installer...done.
Installing VMware Installer 3.1.0
Copying files...
Configuring...
Installing VMware Player Setup 17.5.2
Copying files...
Configuring...
Installing VMware USB Arbitrator 20.10.0
Copying files...
Configuring...
Installing VMware Network Editor 17.5.2
Copying files...
Configuring...
Installing VMware VMX 17.5.2
Copying files...
Configuring...
--- Logging error ---
Traceback (most recent call last):
  File "/tmp/vmis.Mck3jw/install/vmware-installer/python/lib/logging/__init__.py", line 1103, in emit
    stream.write(msg + self.terminator)
UnicodeEncodeError: 'ascii' codec can't encode character '\u2018' in position 940: ordinal not in range(128)
Call stack:
  File "/tmp/vmis.Mck3jw/install/vmware-installer/vmware-installer.py", line 694, in <module>
    main(options)
  File "/tmp/vmis.Mck3jw/install/vmware-installer/vmware-installer.py", line 536, in main
    txn.Install(options.installComponent,
  File "/tmp/vmis.Mck3jw/install/vmware-installer/vmis/core/transaction.py", line 687, in Install
    RunTransaction(actions, options)
  File "/tmp/vmis.Mck3jw/install/vmware-installer/vmis/core/transaction.py", line 414, in RunTransaction
    RunThreadedTransaction(txn, actions)
  File "/tmp/vmis.Mck3jw/install/vmware-installer/vmis/core/transaction.py", line 472, in RunThreadedTransaction
    txn.Run()
  File "/tmp/vmis.Mck3jw/install/vmware-installer/vmis/core/transaction.py", line 78, in Run
    self.get()()
  File "/tmp/vmis.Mck3jw/install/vmware-installer/vmis/core/common.py", line 156, in Show
    wrap(i.PostTransaction, txn.opts['ignoreErrors'])
  File "/tmp/vmis.Mck3jw/install/vmware-installer/vmis/util/__init__.py", line 26, in wrap
    func(*args, **kwargs)
  File "/tmp/vmis.Mck3jw/install/vmware-installer/vmis/core/install.py", line 308, in PostTransaction
    self._installer.PostTransactionInstall(**self.args)
  File "/tmp/vmis.Mck3jw/install/vmware-installer/vmis/core/remoteinstaller.py", line 94, in PostTransactionInstall
    return self.MessageOut(self.whoami(), old, new, upgrade)
  File "/tmp/vmis.Mck3jw/install/vmware-installer/vmis/core/remoteinstaller.py", line 387, in MessageOut
    retval = vmispy.RunExternalMethod(self._remoteUID, 0, strio.getvalue().decode('latin-1'))
  File "/tmp/vmis.Mck3jw/install/vmware-installer/vmis/core/installer.py", line 122, in MessageIn
    self.proxyObject.MessageIn(uid, str)
  File "/tmp/vmis.Mck3jw/install/vmware-installer/vmis/core/remoteinstallerops.py", line 403, in MessageIn
    ret = method(*args, **kwargs)
  File "<string>", line 372, in PostTransactionInstall
  File "/tmp/vmis.Mck3jw/install/vmware-installer/vmis/core/installer.py", line 40, in Info
    return self.installer.Log('info', *args, **kwargs)
  File "/tmp/vmis.Mck3jw/install/vmware-installer/vmis/core/installer.py", line 335, in Log
    return self.proxyObject.Log(logType, *args, **kwargs)
  File "/tmp/vmis.Mck3jw/install/vmware-installer/vmis/core/remoteinstallerops.py", line 159, in Log
    return self.MessageOut(self.whoami(), logType, *args, **kwargs)
  File "/tmp/vmis.Mck3jw/install/vmware-installer/vmis/core/remoteinstallerops.py", line 485, in MessageOut
    retval = vmispy.RunExternalMethod(0, self._UID, strio.getvalue().decode('latin-1'))
  File "/tmp/vmis.Mck3jw/install/vmware-installer/vmis/core/remoteinstaller.py", line 301, in MessageIn
    ret = method(*args, **kwargs)
  File "/tmp/vmis.Mck3jw/install/vmware-installer/vmis/core/installer.py", line 335, in Log
    return self.proxyObject.Log(logType, *args, **kwargs)
  File "/tmp/vmis.Mck3jw/install/vmware-installer/vmis/core/localinstallerops.py", line 241, in Log
    ltype(*args, **kwargs)
Message: "stderr: [AppLoader] GLib does not have GSettings support.\nUsing kernel build system.\n/tmp/modconfig-Tu5yLi/vmmon-only/common/crosspage.o: warning: objtool: CrossPage_CodePage+0x207: 'naked' return found in RETHUNK build\n/tmp/modconfig-Tu5yLi/vmmon-only/common/phystrack.o: warning: objtool: PhysTrack_Free() falls through to next function PhysTrack_Add()\n/tmp/modconfig-Tu5yLi/vmmon-only/common/phystrack.o: warning: objtool: PhysTrack_Add() falls through to next function PhysTrack_Remove()\n/tmp/modconfig-Tu5yLi/vmmon-only/common/phystrack.o: warning: objtool: PhysTrack_Remove() falls through to next function PhysTrack_Test()\n/tmp/modconfig-Tu5yLi/vmmon-only/common/task.o: warning: objtool: .text: unexpected end of section\nSkipping BTF generation for /tmp/modconfig-Tu5yLi/vmmon-only/vmmon.ko due to unavailability of vmlinux\nUsing kernel build system.\n/tmp/modconfig-Tu5yLi/vmnet-only/bridge.c: In function \u2018VNetBridgeSendLargePacket\u2019:\n/tmp/modconfig-Tu5yLi/vmnet-only/bridge.c:1416:11: error: implicit declaration of function \u2018skb_gso_segment\u2019; did you mean \u2018tcp_gso_segment\u2019? [-Werror=implicit-function-declaration]\n    segs = skb_gso_segment(skb, 0);\n           ^~~~~~~~~~~~~~~\n           tcp_gso_segment\n/tmp/modconfig-Tu5yLi/vmnet-only/bridge.c:1416:9: warning: assignment makes pointer from integer without a cast [-Wint-conversion]\n    segs = skb_gso_segment(skb, 0);\n         ^\n/tmp/modconfig-Tu5yLi/vmnet-only/userif.o: warning: objtool: VNetCsumAndCopyToUser+0x28: call to csum_partial_copy_nocheck() with UACCESS enabled\ncc1: some warnings being treated as errors\nmake[2]: *** [/usr/src/linux-6.4.0-150600.23.14/scripts/Makefile.build:252: /tmp/modconfig-Tu5yLi/vmnet-only/bridge.o] Fehler 1\nmake[1]: *** [../../../linux-6.4.0-150600.23.14/Makefile:2066: /tmp/modconfig-Tu5yLi/vmnet-only] Error 2\nmake: *** [Makefile:117: vmnet.ko] Error 2\nUnable to install all modules.  See log for details.\n\n"
Arguments: ()
Installing VMware Player Application 17.5.2
Copying files...
Configuring...
Installing VMware OVF Tool component for Linux 4.6.2
Copying files...
Configuring...
Installing VMware Player 17.5.2
Copying files...
Configuring...
Installation was successful.

Now it will be deleted, because I use Virtualbox and Qemu/KVM…

Thanx, but this image gives me the same error.

I DO have VirtualBox installed, but I’ve had a number of problems in the past with some USB devices. VMWare has MUCH better USB support.

Just for jollies, I built an Ubuntu image on a separate partition, and VMWare installed without any issues. This problem is definitely something related to the SUSE libraries.

Richard Rosa

Oops, vmware does also not build here.

My fault, excuse me.

Try this one, I get rejected ko’s because of secure boot.
In the first file I have changed line 89:

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

and added the 2 lines in the second file.

This is my journal:

Jul 31 19:10:45 linux64 systemd[1]: Starting VMware host virtualization and network services for Workstation...
Jul 31 19:10:45 linux64 vmware[16945]: Starting VMware services:
Jul 31 19:10:45 linux64 vmware[16945]:    Virtual machine monitor - failed
Jul 31 19:10:45 linux64 kernel: Loading of unsigned module is rejected
Jul 31 19:10:45 linux64 vmware[16945]:    Virtual machine communication interface - done
Jul 31 19:10:45 linux64 vmware[16945]:    VM communication interface socket family - done
Jul 31 19:10:45 linux64 vmware[16945]:    Virtual ethernet - failed
Jul 31 19:10:45 linux64 kernel: Loading of unsigned module is rejected
Jul 31 19:10:45 linux64 vmware[16945]:    VMware Authentication Daemon - done
Jul 31 19:10:45 linux64 systemd[1]: vmware.service: Control process exited, code=exited, status=1/FAILURE
Jul 31 19:10:45 linux64 systemd[1]: vmware.service: Failed with result 'exit-code'.

The 2 ko’s:

ls -al /lib/modules/6.4.0-150600.23.14-default/misc/
insgesamt 8192
drwxr-xr-x 2 root root    4096 31. Jul 19:10 .
drwxr-xr-x 5 root root    4096 31. Jul 19:10 ..
-rw-r--r-- 1 root root 4306928 31. Jul 19:10 vmmon.ko
-rw-r--r-- 1 root root 4070720 31. Jul 19:10 vmnet.ko

This does work for me with VMWare Workstation 17.5.2 and 6.4.0-150600.23.14-default kernel from Leap 15.6. Apply this git diff to the workstation-17.5.1 branch of mkubecek repository:

diff --git a/vmmon-only/include/pgtbl.h b/vmmon-only/include/pgtbl.h
index 7eaa49a..2722af3 100644
--- a/vmmon-only/include/pgtbl.h
+++ b/vmmon-only/include/pgtbl.h
@@ -88,7 +88,8 @@ PgtblVa2MPNLocked(struct mm_struct *mm, // IN: Mm structure of a process
          if (pmd_large(*pmd)) {
             mpn = pmd_pfn(*pmd) + ((addr & ~PMD_MASK) >> PAGE_SHIFT);
          } else {
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(6,5,0)
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(6,5,0) || ( defined(CONFIG_SUSE_VERSION ) && CONFIG_SUSE_VERSION == 15  && \
+                                                     defined(CONFIG_SUS_PATCHLEVEL) && CONFIG_SUSE_PATCHLEVEL >= 6)
             pte_t *pte = pte_offset_kernel(pmd, addr);
 #else
             pte_t *pte = pte_offset_map(pmd, addr);
diff --git a/vmnet-only/bridge.c b/vmnet-only/bridge.c
index 4c13957..7965167 100644
--- a/vmnet-only/bridge.c
+++ b/vmnet-only/bridge.c
@@ -26,7 +26,8 @@
 #include <linux/slab.h>
 #include <linux/poll.h>
 
-#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 4, 10)
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 4, 10) || ( defined(CONFIG_SUSE_VERSION) && CONFIG_SUSE_VERSION == 15 && \
+                                                        defined(CONFIG_SUSE_PATCHLEVEL) && CONFIG_SUSE_PATCHLEVEL >= 6 )
 #include <net/gso.h>
 #endif
 #include <linux/netdevice.h>

Thank you! That did the trick
Followed the instructions posted by tanc7 (untar, edit, tar) and VMWARE is now functional.

Thank you again!

Richard Rosa