VMware Communities
jsberrios
Contributor
Contributor

Workstation 16 "Could not open /dev/vmmon" on OpenSUSE Leap 15.2 using secure boot

I just upgraded to VMWare Workstation 16.  The program install without any problems.  However, when I try to load a virtual machine, I get the following error Messages:

1. 

Could not open /dev/vmmon: No such file or directory.

Please make sure that the kernel module `vmmon' is loaded.

2. 

Failed to initialize monitor device.

3.

Unable to change virtual machine power state: Transport (VMDB) error -14: Pipe connection has been broken.

I did a search on the Internet and found the following tutorial to fix this problem:  VMware Knowledge Base

The problem is that the tutorial does not work on openSUSE Leap 15.2 because there seems not to exist a 'linux-headers' command. 

Does anyone know a possible fix that works on openSUSE Leap 15.2?

Reply
0 Kudos
14 Replies
bluefirestorm
Champion
Champion

The command is sign-file not linux-headers

I am not familar with OpenSUSE and I am an Ubuntu noob.

Suggest you try the sign-file command and maybe it will suggest the zypper installation required.

Reply
0 Kudos
jsberrios
Contributor
Contributor

I tried the sign-file command and this is what I got:

% sign-file

If 'sign-file' is not a typo you can use command-not-found to lookup the package that contains it, like this:

    cnf sign-file

I tried running the 'cnf sign-file" command and this was the result:

% cnf sign-file

sign-file: command not found      

Any ideas?

Reply
0 Kudos
jsberrios
Contributor
Contributor

I was able to locate the 'sign-file' command.  It is located in the following directory:  /usr/src/linux-5.3.18-lp152.41-obj/x86_64/default/scripts

I entered the following commands:

# /usr/src/linux-5.3.18-lp152.41-obj/x86_64/default/scripts/sign-file sha256 ./MOK.priv ./MOK.der $(modinfo -n vmmon)

# /usr/src/linux-5.3.18-lp152.41-obj/x86_64/default/scripts/sign-file sha256 ./MOK.priv ./MOK.der $(modinfo -n vmnet)

# mokutil --import MOK.der

I rebooted my computer and had to authorize the modification to the kernel.  However, it still has the same problem.  Is there anything else that I need to do?

Again thanks for all your help on this issue.

Reply
0 Kudos
Neil_Harsant
Contributor
Contributor

I have tried the suggestion on https://kb.vmware.com/s/article/2146460 but with no success.

My system:- Operating System: openSUSE Leap 15.2
KDE Plasma Version: 5.18.6
KDE Frameworks Version: 5.71.0
Qt Version: 5.12.7
Kernel Version: 5.3.18-lp152.75-default
OS Type: 64-bit
Processors: 16 × AMD Ryzen 7 2700X Eight-Core Processor
Memory: 15.6 GiB of RAM

System is dual boot with Windows 10

Secure boot is enabled.

( $ mokutil --sb-state
SecureBoot enabled

)

Everything was working perfectly on this same hardware when running SuSE leap 15.1 with VmWare Pro 14 (although though without secure boot which is wanted for an alternative boot of Windows 10 - I did a clean install of SuSE leap 15.2 and dual boot Windows 10)

I then installed VmWare 16 following suggestions on https://kb.vmware.com/s/article/2146460

# Created signing info
openssl req -new -x509 -newkey rsa:2048 -keyout MokKey.priv -outform DER -out MokKey.der -nodes -days 36500 -subj "/CN=VMware/"

# Signed vmmon and vmnet as per descriptions:-
/usr/src/linux-5.3.18-lp152.75-obj/x86_64/default/scripts/sign-file sha256 ./MokKey.priv ./MokKey.der $(modinfo -n vmmon)
/usr/src/linux-5.3.18-lp152.75-obj/x86_64/default/scripts/sign-file sha256 ./MokKey.priv ./MokKey.der $(modinfo -n vmnet)

mokutil --import MokKey.der

# Shut down and rebooted Suse system, Answered the "Enroll MOK", Confirmed and entered password from previous step then rebooted.

VmWare starts OK but when I try a Resume I always get "Could not open /dev/vmmon"

I am new to secure boot complexities. Here is what I have seen so far:-

$ mokutil --list-enrolled |grep ubject
Subject: CN=openSUSE Secure Boot CA, C=DE, L=Nuremberg, O=openSUSE Project/emailAddress=build@opensuse.org
Subject Public Key Info:
X509v3 Subject Key Identifier:
Subject: CN=Local build for nvidia-gfxG05 460.73.01 on 2021-05-11
Subject Public Key Info:
X509v3 Subject Key Identifier:
Subject: CN=VMware
Subject Public Key Info:
X509v3 Subject Key Identifier:
Subject: CN=Local build for nvidia-gfxG05 460.80 on 2021-05-16
Subject Public Key Info:
X509v3 Subject Key Identifier:
Subject: CN=VMware
Subject Public Key Info:
X509v3 Subject Key Identifier:
Subject: CN=VMware
Subject Public Key Info:
X509v3 Subject Key Identifier:

# modinfo vmmon
filename: /lib/modules/5.3.18-lp152.75-default/misc/vmmon.ko
supported: external
license: GPL v2
description: VMware Virtual Machine Monitor.
author: VMware, Inc.
suserelease: openSUSE Leap 15.2
srcversion: 4075357EA80969BA3F710D2
depends:
retpoline: Y
name: vmmon
vermagic: 5.3.18-lp152.75-default SMP mod_unload modversions
sig_id: PKCS#7
signer: VMware
sig_key: 30:11:31:0F:30:0D:06:03:55:04:03:0C:06:56:4D:77:61:72:65:02:
14:4C:FC:B4:5A:56:F1:64:C0:50:A8:E6:FD:1E:7B:E5:54:82:B1:59:
4D
sig_hashalgo: sha256
signature: 2D:F2:8B:F0:62:56:73:3B:7D:4F:BC:0B:BE:93:7A:8D:9F:CF:3F:C8:
16:5B:A8:3E:C2:54:CF:F1:6A:AC:C6:B5:C6:52:B9:1B:4E:B8:23:98:
2C:74:E8:73:75:EC:B1:C3:61:C3:4C:20:1F:BB:DC:04:B2:71:1F:44:
5C:2E:75:1A:77:BC:E5:E7:7D:AE:F2:F9:21:FE:AB:AB:D8:02:74:C8:
6F:7F:25:EE:B7:A9:2A:A7:81:27:D7:BD:1D:3D:BE:99:EF:73:B1:35:
A5:4B:27:B4:C5:57:6E:17:E8:A8:67:51:4A:36:66:65:2F:AD:AE:5F:
41:EB:9B:69:5B:3A:D6:91:3E:08:0A:82:C7:0A:BA:7B:A4:C9:19:07:
08:8A:A8:FB:19:94:5F:9F:ED:13:CE:05:63:ED:3E:9C:5F:EA:1C:E6:
5A:B4:C8:E6:DD:79:A4:6B:22:C9:E2:C1:5B:78:FE:B4:2F:06:23:8C:
A2:19:DF:63:ED:5D:E8:E4:3A:B7:2F:08:09:22:03:DD:C8:84:CE:FF:
E6:8A:40:62:B4:B6:64:10:63:E5:25:99:19:8A:C3:85:C7:6A:1B:F9:
49:DF:39:29:2B:F3:A6:1D:43:9C:76:AD:F5:15:5E:7D:5C:EA:FC:08:
58:33:07:88:2F:A9:A5:B0:95:D1:19:95:B8:69:A6:B1


Root@huena:/Data/Software/SuSE/Addons/VmWare>modinfo vmnet
filename: /lib/modules/5.3.18-lp152.75-default/misc/vmnet.ko
supported: external
license: GPL v2
description: VMware Virtual Networking Driver.
author: VMware, Inc.
suserelease: openSUSE Leap 15.2
srcversion: 29F7924E33074A865934EE3
depends:
retpoline: Y
name: vmnet
vermagic: 5.3.18-lp152.75-default SMP mod_unload modversions
sig_id: PKCS#7
signer: VMware
sig_key: 30:11:31:0F:30:0D:06:03:55:04:03:0C:06:56:4D:77:61:72:65:02:
14:4C:FC:B4:5A:56:F1:64:C0:50:A8:E6:FD:1E:7B:E5:54:82:B1:59:
4D
sig_hashalgo: sha256
signature: 6B:F0:5E:20:BB:0E:1C:11:16:26:99:22:F8:C5:ED:88:72:F2:CE:88:
A9:A0:C3:63:5E:D6:06:50:B3:1C:F7:31:05:D8:AC:CD:D0:9B:CC:5E:
E3:54:84:3F:00:E3:30:0C:8F:DA:FC:B7:C1:85:EF:A4:8D:43:05:50:
C0:DC:F3:06:F8:6D:42:E0:42:B5:07:3C:79:26:E1:07:6A:E6:C5:7F:
53:E2:01:A1:6F:76:30:6E:CC:E9:71:BD:77:2F:C6:E6:AE:D8:1A:41:
65:93:11:34:D6:D3:D7:20:76:3E:5B:B6:A8:2E:74:D0:24:C7:4D:52:
CC:52:FE:68:3A:33:78:02:B0:5F:93:C6:41:7B:73:2D:7A:1C:4B:10:
91:70:DC:85:2E:06:15:6E:3E:3B:24:E9:B1:F8:00:6F:C7:89:7E:A1:
6E:79:F2:FA:2D:19:4C:FA:D9:CD:BB:00:B4:7C:93:7D:E9:3D:23:80:
B6:B5:35:D1:DD:92:17:B3:8E:E1:D8:DB:A3:D5:A2:55:A3:D2:8F:B3:
46:C1:7E:8D:1B:40:2F:FC:B7:3B:50:F1:15:78:93:88:3F:87:DA:F7:
FF:7B:92:02:50:2F:03:AB:9A:52:41:63:3B:8A:E8:01:C9:45:89:CF:
F5:EE:64:49:A8:3E:E8:61:8A:86:CE:7C:F7:7B:DF:3A
parm: vnet_max_qlen:Maximum queue length of the vmnet, default is 1024, maximum is 1024 (uint)

Would be grateful for info on how to get VmWare back into a usable state again.

tasikas
Enthusiast
Enthusiast

Any luck to make it work? I'm stuck too.

Reply
0 Kudos
san100
Contributor
Contributor

This guy's video on solving this issue works on Opensuse 15.3, and VMware Workstation 16 Player Version 16.2.0 build-18760230

https://www.youtube.com/watch?v=nKPALgwyDG4

Just make sure you change the comands to the version of workstation you are using

 

Good luck

Reply
0 Kudos
san100
Contributor
Contributor

Ok so the above fix I posted yesterday works to start and run your VM. However after restarting your host machine the error comes up again and the above steps have to be repeated to run the VM.

Anybody know how to make the solution permanent?

For reference: 

Host is Opensuse 15.3 Guest is Windows 7

The steps taken as follows:

wget https://github.com/mkubecek/vmware-host-modules/archive/workstation-16.2.0.tar.gz

tar -xzf workstation-16.2.0.tar.gz

cd vmware-host-modules-workstation-16.2.0

tar -cf vmmon.tar vmmon-only

sudo cp -v vmmon.tar vmnet.tar /usr/lib/vmware/modules/source/

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

exit

Reply
0 Kudos
andreaplanet
Enthusiast
Enthusiast

Maybe this helps: sudo /etc/init.d/vmware start:

sudo /etc/init.d/vmware start
[sudo] password for root:  
Starting VMware services:
  Virtual machine monitor                                             done
  Virtual machine communication interface                             done
  VM communication interface socket family                            done
  Virtual ethernet                                                    done
  VMware Authentication Daemon                                        done
  Shared Memory Available                                             done

If you place it at startup then you don't have to run it manually.

elNicolo
Contributor
Contributor

Hello to everybody, I have same problem, but when I try:

# /etc/init.d/vmware restart
Stopping VMware services:
VMware Authentication Daemon done
Virtual machine monitor done
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

 

Anyone could solve it?

I followed  https://kb.vmware.com/s/article/2146460 but it did not help

 

Thanks beforehand, Francisco.

 

Reply
0 Kudos
rzanderz
Contributor
Contributor

same exact issue...

In addition, when i try to run the sign-file, i am getting the following error:

 sudo /usr/src/linux-5.14.21-150400.24.18-obj/x86_64/default/scripts/sign-file  sha256 ./MOK.priv ./MOK.der $(modinfo -n vmmon)

modinfo: command not found

[sudo] password for root: 

Usage: scripts/sign-file [-dp] <hash algo> <key> <x509> <module> [<dest>]

       scripts/sign-file -s <raw sig> <hash algo> <x509> <module> [<dest>]

i am running suse 15.4 and vmplayer 16.2.4

I had it running with redhat 9 and kernel 5.14 (note: to get the patch to work, you have to modify the netif.c file under vmmnet).

 

Bob

 

Reply
0 Kudos
elNicolo
Contributor
Contributor

 

 

 

in my opensuse 15.4 I did:

sudo openssl req -new -x509 -newkey rsa:2048 -keyout vmware.priv -outform DER -out vmware.der -nodes -days 36500 -subj "/CN=VMware/" -addext "extendedKeyUsage=codeSigning"
sudo /lib/modules/$(uname -r)/build/scripts/sign-file sha256 ./vmware.priv ./vmware.der $(/sbin/modinfo -n vmmon)
sudo /lib/modules/$(uname -r)/build/scripts/sign-file sha256 ./vmware.priv ./vmware.der $(/sbin/modinfo -n vmnet)
sudo mokutil --import vmware.der

 

restarted and enrolled modules in uefi bios automatically after confirming

launched vmware and worked!

rzanderz
Contributor
Contributor

ok,,, so little joy....

followed you instructions..  

No Joy

Manually started vmware services:

sudo /etc/init.d/vmware start

Everything loaded--> VM started...  -- great joy...

now,  what do i need to do so that vmware services start automatically?  I do not have a rc.d

?? systemctl vmware enable???

thank you,

Bob

 

Reply
0 Kudos
Darkprincex
Contributor
Contributor

Thank you so much  elNicolo !!! worked for me in OpenSUSE  15 SP5 EFI SECURE BOOT :

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

OPENSUSE 15 SP5:

sudo openssl req -new -x509 -newkey rsa:2048 -keyout vmware.priv -outform DER -out vmware.der -nodes -days 36500 -subj "/CN=VMware/" -addext "extendedKeyUsage=codeSigning"


sudo /lib/modules/$(uname -r)/build/scripts/sign-file sha256 ./vmware.priv ./vmware.der $(/sbin/modinfo -n vmmon)


sudo /lib/modules/$(uname -r)/build/scripts/sign-file sha256 ./vmware.priv ./vmware.der $(/sbin/modinfo -n vmnet)


sudo mokutil --import vmware.der

password

sudo reboot

 

Darkprincex_1-1710863206531.png

YES > password > REBOOT

 

 

 

 

Reply
0 Kudos
asyowish
Contributor
Contributor

Worked for me, thanks a lot!
Version: 17.5.0

Reply
0 Kudos