VMware Communities
tester88
Contributor
Contributor

[SOLVED] VMWare Workstation Pro 16.1.2 - Unable to recompile vmmon/vmnet since OpenSuSE Kern. 5.12.4

Hello Community,

Since the fore last Kernel update on OpenSuSE Tumbleweed (to Kernel 5.12.4), trying to compile the vmmon/vmnet kernel modules with the command:

sudo vmware-modconfig --console --install-all

systematically breaks with following error message:

(process:XXXXXX): GLib-CRITICAL [...] g_file_test: assertion 'filename != NULL' failed

This error happens even when replacing the original vmmon/vmnet modules with those from the git:

https://github.com/mkubecek/vmware-host-modules/tree/workstation-16.1.2

and following these instructions:

https://github.com/mkubecek/vmware-host-modules/issues/35

As suggested by Michal Kubeček at the bottom of the latter github page, "The glib issue is not related to kernel modules. It has been discussed multiple times in various places, IIRC it's some library compatibility problem between some distributions and VMware userspace software."

Is there then any workaround in order to (at least manually) get those modules compiled again? In the mean time, the Kernel was updated to

5.12.9.1.

Note: the gcc version is 11.1.1; kernel headers are installed (in kernel-default-devel and kernel-devel).

Many thanks for your help.

 

Reply
0 Kudos
16 Replies
mkubecek
Hot Shot
Hot Shot

When using the other method (i.e. building and installing the modules manually), you won't have to rund vmware-modconfig and won't run into libraries issues on build. (You might still have problems when running the vmware gui, though.)

Reply
0 Kudos
tester88
Contributor
Contributor

Hello mkubecek,

Many thanks for your answer. May be one further information: after just compiling fine for years on each kernel update, now, when I just start the newly installed VMWare WS 16.1.2 Pro, I get the VMware Kernel Module Updater Window asking for the location of the Kernel Headers 5.12.9.1-default headers. When I provide the only location it is willing to accept in order to compilke vmmon and vmnet:

/usr/src/linux-5.12.9-1-obj/x86_64/default/include

it starts and fails to compile with the error log (attached file, for some reason, only pdf instead of text log attachment is accepted) which ends with the same line when I manually enter sudo vmware-modconfig --console --install-all

i.e. the error message:

(process:11797): GLib-CRITICAL **: 11:40:59.573: g_file_test: assertion 'filename != NULL' failed

Now, in order to get my VMWare WS Pro up and running again, I am willing to build and install the modules manually (from scartch?) as proposed but have never done that. Are there some instructions/links available that could help?

Many thanks for your help.

Kind regards.

Reply
0 Kudos
tester88
Contributor
Contributor

Hello mkubecek,

In the meantime, I did try the following:

Any further configuration necessary before compiling (header location as argument,...)?

Many thanks for your help.

Kind regards

Reply
0 Kudos
mkubecek
Hot Shot
Hot Shot

Either kernel-default-devel with matching version is missing or perhaps you ran into openSUSE bug 1186710 (I'm not sure if the fix has been already released in Tumbleweed repositories). It's sad but some of recent changes in Tumbleweed break VMware Workstation/Player quite badly and neither people behind these changes nor VMware seem to care.

Reply
0 Kudos
tester88
Contributor
Contributor

Hello mkubecek,

Many thanks, almost there (the modules still do not load). Indeed, it was the openSUSE bug 1186710 for which I re-linked one level higher both the build an source links in the folder

/lib/modules/5.12.9-1-default

i.e.

sudo ln -s ../../../../usr/src/linux-5.12.9-1-obj/x86_64/default build
sudo ln -s ../../../../usr/src/linux-5.12.9-1 source

Thereafter, at least the compilation works fine again:

sudo vmware-modconfig --console --install-all

BUT the modules vmmon and vmnet do not load: (not getting "OpenSuSE-signed" anymore in a secure boot-only environment?)

[...]

Starting VMware services:
Virtual machine monitor failed
Virtual machine communication interface done
VM communication interface socket family done
Virtual ethernet failed
VMware Authentication Daemon done
Unable to start services

and the output of dmesg: (the modules seem not to be signed during building as they did formerly)

[    151.455717]     vmmon: loading out-of-tree module taints kernel.
[ 151.455821] vmmon: module verification failed: signature and/or required key missing - tainting kernel
[ 151.456044] module: x86/modules: Skipping invalid relocation target, existing value is nonzero for type 1, loc 00000000377de6aa, val ffffffffc1837690
[ 151.504860] Guest personality initialized and is inactive
[ 151.504935] VMCI host device registered (name=vmci, major=10, minor=122)
[ 151.504937] Initialized host personality
[ 151.531336] NET: Registered protocol family 40
[ 151.563657] ppdev: user-space parallel port driver
[ 151.564462] module: x86/modules: Skipping invalid relocation target, existing value is nonzero for type 1, loc 0000000069e58a7b, val ffffffffc185d1b0

[...] the latter line then repeats a dozen times

Just in case, I then fully uninstalled VMWare WS 16.1.2:

sudo vmware-installer -u vmware-workstation

and did a new installation of the last original package:

sudo ./VMware-Workstation-Full-16.1.2-17966106.x86_64.bundle

which installs fine BUT again, both modules vmmon and vmnet do not load (same dmesg output about signature...). Thereby only the VMWare WS GUI starts but no VM (giving the error message about the missing/not loaded vmmon/vmnet modules).

Details are included in the attached log file.

Would you have any hint to get the module signed (OpenSuSE Kernel-signing key?) during building if this is the problem?

Many thanks for your help.

Best regards.

Reply
0 Kudos
tester88
Contributor
Contributor

Hello Pitke,

Thank you, however as described in my former post, I am now able to compile the 2 modules (vmmon and vmnet) but they just do not get signed with the OpenSuSE kernel certificate (checked with modinfo) and thereby they will not be loaded by the kernel in a secure boot environment. Btw. before kernel v5.12.4-1 this never was a problem.

Does the signing of the above modules after compiling still work in RedHat/CentOS with the latest kernels?

Do I now have to sign them on my own (and include a new public key to the system's MOK list along with the official one)?

Kind regards.

tester88
Contributor
Contributor

Hello community,

The issue is now SOLVED with the introduction of Kernel 5.12.10-1-default in OpenSuSE Tumbleweed:

  • sudo zypper in -f -y kernel-default kernel-source kernel-devel     => newest kernel 5.12.10-1-default
  • reboot
  • sudo vmware-modconfig --console --install-all

which compiles nicely (build and source links are now correct) the modules vmmon and vmnet which do not get signed but just load fine (no more modprobe: ERROR: could not insert 'vmmon': Exec format error)...

Many thanks for your hints.

Kind regards.

jrchilds01
Contributor
Contributor

Sorry, dosent work for me.

Here are my results

No provider of 'kernel-devel=kernel' found.
No provider of '5.12.10-1-default' found.

Tags (2)
Reply
0 Kudos
mkubecek
Hot Shot
Hot Shot

The trailing part of the line starting with "=>" is a comment, not part of the command.

Reply
0 Kudos
jrchilds01
Contributor
Contributor

Thanks, kinds new at this.

                       Still getting the Glibs error though and sudo vmware-modconfig --console --install-all just keeps cycling and never finishes

 

Reply
0 Kudos
tester88
Contributor
Contributor

Hello, I just did "sudo vmware-modconfig --console --install-all" again with the newest Tumbleweed kernel (5.12.12-1-default) being installed and it worked perfectly. Even directly starting VMWare WSPro 16.1.2 after a kernel update, it asks for recompiling both modules (in a pop-up window), which then also works fine as formerly.

Reply
0 Kudos
jrchilds01
Contributor
Contributor

Had to do a fresh install of Tumbleweed on my laptop, followed your instructions and they worked perfectly, I must have screwed up my Tumbleweed setup some how (not the 1st, or 10th time) I need win 10 to run the program to tune my bike and I hate to reboot into windows to run it. Sort of makes me feel Bill Gates has won and I have hated him since he stole dos and screwed OS2. Which is ware I started with Linux.

Thank you very much

Jack

Reply
0 Kudos
johnson111
Contributor
Contributor

my solutions are 

No provider of 'kernel-devel=kernel' found.
No provider of '5.12.10-1-default' found.

also, take a look at our guide on wheelie on mountain bike

Tags (1)
Reply
0 Kudos
vmware_noob2
Contributor
Contributor

I've got the same issue and I'm using arch linux 

Reply
0 Kudos
Neo_Vedder
Contributor
Contributor

Seems new things have happened since then. This is my very first try installing VMware Player 16.2.1 in Tumbleweed 20220227 snapshot (kernel 5.16.11-1). I've tried the tips posted here, but still the same original error. Someone can help me?

 

Spoiler
Log for VMware Workstation pid=24079 version=16.2.1 build=build-18811642 option=Release
The host is 64-bit.
Host codepage=UTF-8 encoding=UTF-8
Host is Linux 5.16.11-1-default openSUSE Tumbleweed openSUSE Tumbleweed 20220227
Host offset from UTC is -03:00.
DictionaryLoad: Cannot open file "/usr/lib/vmware/settings": No such file or directory.
[msg.dictionary.load.openFailed] Cannot open file "/usr/lib/vmware/settings": No such file or directory.
PREF Optional preferences file not found at /usr/lib/vmware/settings. Using default values.
DictionaryLoad: Cannot open file "/home/neo/.vmware/config": No such file or directory.
[msg.dictionary.load.openFailed] Cannot open file "/home/neo/.vmware/config": No such file or directory.
PREF Optional preferences file not found at /home/neo/.vmware/config. Using default values.
DictionaryLoad: Cannot open file "/home/neo/.vmware/preferences": No such file or directory.
[msg.dictionary.load.openFailed] Cannot open file "/home/neo/.vmware/preferences": No such file or directory.
PREF Optional preferences file not found at /home/neo/.vmware/preferences. Using default values.
Logging to /tmp/vmware-neo/vmware-24079.log
Obtaining info using the running kernel.
Created new pathsHash.
Setting header path for 5.16.11-1-default to "/lib/modules/5.16.11-1-default/build/include".
Validating path "/lib/modules/5.16.11-1-default/build/include" for kernel release "5.16.11-1-default".
Failed to find /lib/modules/5.16.11-1-default/build/include/linux/version.h
/lib/modules/5.16.11-1-default/build/include/linux/version.h not found, looking for generated/uapi/linux/version.h instead.
using /usr/bin/gcc-11 for preprocess check
Preprocessed UTS_RELEASE, got value "5.16.11-1-default".
The header path "/lib/modules/5.16.11-1-default/build/include" for the kernel "5.16.11-1-default" is valid. Whoohoo!
found symbol version file /lib/modules/5.16.11-1-default/build/Module.symvers
Reading symbol versions from /lib/modules/5.16.11-1-default/build/Module.symvers.
Read 24809 symbol versions
Reading in info for the vmmon module.
Reading in info for the vmnet module.
Invoking modinfo on "vmmon".
"/sbin/modinfo" exited with status 256.
Invoking modinfo on "vmnet".
"/sbin/modinfo" exited with status 256.
to be installed: vmmon status: 0
to be installed: vmnet status: 0
Obtaining info using the running kernel.
Setting header path for 5.16.11-1-default to "/lib/modules/5.16.11-1-default/build/include".
Validating path "/lib/modules/5.16.11-1-default/build/include" for kernel release "5.16.11-1-default".
Failed to find /lib/modules/5.16.11-1-default/build/include/linux/version.h
/lib/modules/5.16.11-1-default/build/include/linux/version.h not found, looking for generated/uapi/linux/version.h instead.
using /usr/bin/gcc-11 for preprocess check
Preprocessed UTS_RELEASE, got value "5.16.11-1-default".
The header path "/lib/modules/5.16.11-1-default/build/include" for the kernel "5.16.11-1-default" is valid. Whoohoo!
found symbol version file /lib/modules/5.16.11-1-default/build/Module.symvers
Reading symbol versions from /lib/modules/5.16.11-1-default/build/Module.symvers.
Read 24809 symbol versions
Kernel header path retrieved from FileEntry: /lib/modules/5.16.11-1-default/build/include
Update kernel header path to /lib/modules/5.16.11-1-default/build/include
Validating path "/lib/modules/5.16.11-1-default/build/include" for kernel release "5.16.11-1-default".
Failed to find /lib/modules/5.16.11-1-default/build/include/linux/version.h
/lib/modules/5.16.11-1-default/build/include/linux/version.h not found, looking for generated/uapi/linux/version.h instead.
using /usr/bin/gcc-11 for preprocess check
Preprocessed UTS_RELEASE, got value "5.16.11-1-default".
The header path "/lib/modules/5.16.11-1-default/build/include" for the kernel "5.16.11-1-default" is valid. Whoohoo!
Found compiler at "/usr/bin/gcc"
Got gcc version "11".
The GCC version matches the kernel GCC minor version like a glove.
Got gcc version "11".
The GCC version matches the kernel GCC minor version like a glove.
Trying to find a suitable PBM set for kernel "5.16.11-1-default".
No matching PBM set was found for kernel "5.16.11-1-default".
The GCC version matches the kernel GCC minor version like a glove.
Validating path "/lib/modules/5.16.11-1-default/build/include" for kernel release "5.16.11-1-default".
Failed to find /lib/modules/5.16.11-1-default/build/include/linux/version.h
/lib/modules/5.16.11-1-default/build/include/linux/version.h not found, looking for generated/uapi/linux/version.h instead.
using /usr/bin/gcc-11 for preprocess check
Preprocessed UTS_RELEASE, got value "5.16.11-1-default".
The header path "/lib/modules/5.16.11-1-default/build/include" for the kernel "5.16.11-1-default" is valid. Whoohoo!
The GCC version matches the kernel GCC minor version like a glove.
Validating path "/lib/modules/5.16.11-1-default/build/include" for kernel release "5.16.11-1-default".
Failed to find /lib/modules/5.16.11-1-default/build/include/linux/version.h
/lib/modules/5.16.11-1-default/build/include/linux/version.h not found, looking for generated/uapi/linux/version.h instead.
using /usr/bin/gcc-11 for preprocess check
Preprocessed UTS_RELEASE, got value "5.16.11-1-default".
The header path "/lib/modules/5.16.11-1-default/build/include" for the kernel "5.16.11-1-default" is valid. Whoohoo!
Using temp dir "/tmp".
Stopping VMware services:
VMware Authentication Daemon done
Virtual machine monitor done
make: Entering directory '/tmp/modconfig-NWV7q6/vmmon-only'
/usr/bin/make -C /lib/modules/5.16.11-1-default/build/include/.. M=$PWD SRCROOT=$PWD/. \
MODULEBUILDDIR= modules
make[1]: Entering directory '/usr/src/linux-5.16.11-1-obj/x86_64/default'
CC [M] /tmp/modconfig-NWV7q6/vmmon-only/linux/driver.o
CC [M] /tmp/modconfig-NWV7q6/vmmon-only/linux/driverLog.o
CC [M] /tmp/modconfig-NWV7q6/vmmon-only/linux/hostif.o
CC [M] /tmp/modconfig-NWV7q6/vmmon-only/common/apic.o
make[1]: Leaving directory '/usr/src/linux-5.16.11-1-obj/x86_64/default'
make: Leaving directory '/tmp/modconfig-NWV7q6/vmmon-only'
make: Entering directory '/tmp/modconfig-NWV7q6/vmnet-only'
/usr/bin/make -C /lib/modules/5.16.11-1-default/build/include/.. M=$PWD SRCROOT=$PWD/. \
MODULEBUILDDIR= modules
make[1]: Entering directory '/usr/src/linux-5.16.11-1-obj/x86_64/default'
CC [M] /tmp/modconfig-NWV7q6/vmnet-only/driver.o
CC [M] /tmp/modconfig-NWV7q6/vmnet-only/hub.o
CC [M] /tmp/modconfig-NWV7q6/vmnet-only/netif.o
CC [M] /tmp/modconfig-NWV7q6/vmnet-only/userif.o
make[1]: Leaving directory '/usr/src/linux-5.16.11-1-obj/x86_64/default'
make: Leaving directory '/tmp/modconfig-NWV7q6/vmnet-only'
[AppLoader] GLib does not have GSettings support.
Using kernel build system.
In file included from /tmp/modconfig-NWV7q6/vmmon-only/common/apic.c:19:
/tmp/modconfig-NWV7q6/vmmon-only/./include/vm_basic_defs.h:54:12: fatal error: stddef.h: No such file or directory
54 | # include <stddef.h>
| ^~~~~~~~~~
compilation terminated.
make[2]: *** [/usr/src/linux-5.16.11-1/scripts/Makefile.build:288: /tmp/modconfig-NWV7q6/vmmon-only/common/apic.o] Error 1
make[2]: *** Waiting for unfinished jobs....
In file included from /tmp/modconfig-NWV7q6/vmmon-only/linux/driverLog.h:33,
from /tmp/modconfig-NWV7q6/vmmon-only/linux/driverLog.c:31:
/tmp/modconfig-NWV7q6/vmmon-only/./include/vm_assert.h:43:10: fatal error: stdarg.h: No such file or directory
43 | #include <stdarg.h>
| ^~~~~~~~~~
compilation terminated.
make[2]: *** [/usr/src/linux-5.16.11-1/scripts/Makefile.build:288: /tmp/modconfig-NWV7q6/vmmon-only/linux/driverLog.o] Error 1
In file included from /tmp/modconfig-NWV7q6/vmmon-only/./include/cpu_types.h:29,
from /tmp/modconfig-NWV7q6/vmmon-only/./include/modulecall.h:33,
from /tmp/modconfig-NWV7q6/vmmon-only/linux/hostif.c:58:
/tmp/modconfig-NWV7q6/vmmon-only/./include/vm_basic_defs.h:54:12: fatal error: stddef.h: No such file or directory
54 | # include <stddef.h>
| ^~~~~~~~~~
compilation terminated.
make[2]: *** [/usr/src/linux-5.16.11-1/scripts/Makefile.build:288: /tmp/modconfig-NWV7q6/vmmon-only/linux/hostif.o] Error 1
In file included from /tmp/modconfig-NWV7q6/vmmon-only/linux/driverLog.h:33,
from /tmp/modconfig-NWV7q6/vmmon-only/linux/driver.c:46:
/tmp/modconfig-NWV7q6/vmmon-only/./include/vm_assert.h:43:10: fatal error: stdarg.h: No such file or directory
43 | #include <stdarg.h>
| ^~~~~~~~~~
compilation terminated.
make[2]: *** [/usr/src/linux-5.16.11-1/scripts/Makefile.build:288: /tmp/modconfig-NWV7q6/vmmon-only/linux/driver.o] Error 1
make[1]: *** [../../../linux-5.16.11-1/Makefile:1860: /tmp/modconfig-NWV7q6/vmmon-only] Error 2
make: *** [Makefile:117: vmmon.ko] Error 2
Using kernel build system.
In file included from /tmp/modconfig-NWV7q6/vmnet-only/vm_atomic.h:49,
from /tmp/modconfig-NWV7q6/vmnet-only/vnet.h:28,
from /tmp/modconfig-NWV7q6/vmnet-only/vnetInt.h:24,
from /tmp/modconfig-NWV7q6/vmnet-only/netif.c:43:
/tmp/modconfig-NWV7q6/vmnet-only/vm_assert.h:43:10: fatal error: stdarg.h: No such file or directory
43 | #include <stdarg.h>
| ^~~~~~~~~~
compilation terminated.
make[2]: *** [/usr/src/linux-5.16.11-1/scripts/Makefile.build:288: /tmp/modconfig-NWV7q6/vmnet-only/netif.o] Error 1
make[2]: *** Waiting for unfinished jobs....
In file included from /tmp/modconfig-NWV7q6/vmnet-only/vm_atomic.h:49,
from /tmp/modconfig-NWV7q6/vmnet-only/vnet.h:28,
from /tmp/modconfig-NWV7q6/vmnet-only/vnetInt.h:24,
from /tmp/modconfig-NWV7q6/vmnet-only/userif.c:46:
/tmp/modconfig-NWV7q6/vmnet-only/vm_assert.h:43:10: fatal error: stdarg.h: No such file or directory
43 | #include <stdarg.h>
| ^~~~~~~~~~
compilation terminated.
In file included from /tmp/modconfig-NWV7q6/vmnet-only/vm_atomic.h:49,
from /tmp/modconfig-NWV7q6/vmnet-only/vnet.h:28,
from /tmp/modconfig-NWV7q6/vmnet-only/vnetInt.h:24,
from /tmp/modconfig-NWV7q6/vmnet-only/hub.c:43:
/tmp/modconfig-NWV7q6/vmnet-only/vm_assert.h:43:10: fatal error: stdarg.h: No such file or directory
43 | #include <stdarg.h>
| ^~~~~~~~~~
compilation terminated.
make[2]: *** [/usr/src/linux-5.16.11-1/scripts/Makefile.build:288: /tmp/modconfig-NWV7q6/vmnet-only/userif.o] Error 1
make[2]: *** [/usr/src/linux-5.16.11-1/scripts/Makefile.build:288: /tmp/modconfig-NWV7q6/vmnet-only/hub.o] Error 1
In file included from /tmp/modconfig-NWV7q6/vmnet-only/vm_atomic.h:49,
from /tmp/modconfig-NWV7q6/vmnet-only/vnet.h:28,
from /tmp/modconfig-NWV7q6/vmnet-only/vnetInt.h:24,
from /tmp/modconfig-NWV7q6/vmnet-only/driver.c:48:
/tmp/modconfig-NWV7q6/vmnet-only/vm_assert.h:43:10: fatal error: stdarg.h: No such file or directory
43 | #include <stdarg.h>
| ^~~~~~~~~~
compilation terminated.
make[2]: *** [/usr/src/linux-5.16.11-1/scripts/Makefile.build:288: /tmp/modconfig-NWV7q6/vmnet-only/driver.o] Error 1
make[1]: *** [../../../linux-5.16.11-1/Makefile:1860: /tmp/modconfig-NWV7q6/vmnet-only] Error 2
make: *** [Makefile:117: vmnet.ko] Error 2
Unable to install all modules. See log for details.
Reply
0 Kudos