tester88
Contributor
Contributor

VMWare Workstation Pro 16.1.2 - Unable to recompile vmmon/vmnet since OpenSuSE Kernel 5.12.4 & later

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.

 

0 Kudos
7 Replies
mkubecek
Enthusiast
Enthusiast

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.)

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.

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

0 Kudos
mkubecek
Enthusiast
Enthusiast

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.

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.

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.

0 Kudos