VMWare 15 Error on Ubuntu 18.4 - Could not open /dev/vmmon: No such file or directory
After exhausting research online and youtube videos and facing failure to all those suggested solutions, I need your professional help with this please.
Installed VMWare workstation 15 on Ubuntu 18.4 (please see screenshot) and got kernel error.
These are the steps I already performed with no solution:
sudo vmware-modconfig --console --install-all
Registered a new key and enrolled by the following commands in order:
-
Run OpenSSL:
openssl req -new -x509 -newkey rsa:2048 -keyout VMWARE.priv -outform DER -out VMWARE.der -nodes -days 36500 -subj "/CN=VMWARE/"
-
Run
sign-file
:sudo /usr/src/linux-headers-$(uname -r)/scripts/sign-file sha256 ./VMWARE.priv ./VMWARE.der $(modinfo -n vboxdrv)
-
Run
tail
:tail $(modinfo -n vboxdrv) | grep "Module signature appended"
-
Run
mokutil
:sudo mokutil --import VMWARE.der
Then I rebooted --> registered the key upon booting successfully and confirmed by:
mokutil --test-key VMWARE.der
Also manually signed up the drivers by:
sudo /usr/src/linux-headers-$(uname -r)/scripts/sign-file sha256 ./VMWARE.priv ./VMWARE.der $(modinfo -n vmmon)
Finally:
sudo /usr/src/linux-headers-$(uname -r)/scripts/sign-file sha256 ./VMWARE.priv ./VMWARE.der $(modinfo -n vmnet)
Please note that I am new in the Linux world, so step-by-step instructions will be appreciated!
Accepted answer is ok but doing it a little better formatted and reordered steps, added expected feedback etc. The OP has some info for VirtualBox which gives confusing errors if you don't have it.
This problem essentially happens because of secure boot which does not allow kernel modules to load without being digitally signed with a trusted certificate. So we need to create a trusted key and use it to sign the newly compiled modules vmmon
and vmnet
.
These instructions have been tested for VMWare 15 and Ubuntu 18.04 up to 19.04.
- Install VMWare
-
Run this
sudo vmware-modconfig --console --install-all
You'll see that there are issues with monitor and net, thas ok.
-
Generate a key
openssl req -new -x509 -newkey rsa:2048 -keyout VMWARE15.priv -outform DER -out VMWARE15.der -nodes -days 36500 -subj "/CN=VMWARE/"
You'll see info that it did it ok.
-
Use this key we just generated to sign the two kernel modules.
sudo /usr/src/linux-headers-$(uname -r)/scripts/sign-file sha256 ./VMWARE15.priv ./VMWARE15.der $(modinfo -n vmmon) sudo /usr/src/linux-headers-$(uname -r)/scripts/sign-file sha256 ./VMWARE15.priv ./VMWARE15.der $(modinfo -n vmnet)
This does not give any feedback
-
Check that signatures are applied correctly.
tail $(modinfo -n vmmon) | grep "Module signature appended"
You should get
Binary file (standard input) matches
-
Now we make this key trusted by importing it to machine owner key (MOK) management system with the command below. Here you can read more about MOK’s job in Linux.
sudo mokutil --import VMWARE15.der
This will ask you for a password, enter some new password a bit long like
1515vmware
. Reenter same password. Reboot, When reboot you should be presented with a menu with blue screen background, you have to make your way to enroll the key and enter the password you just created, this happens only once, then continue to boot.
-
To test the driver / module installed correctly enter the command
mokutil --test-key VMWARE15.der
You should get
VMWARE15.der is already enrolled
and that means VMWare should be working.
All credits to OP.
Notice: I've found out that after some Linux updates which involves the kernel (or something like that) this fix stops working and you have to do all the steps again to get it working again. (No need to re-install vmware)
I have made a simple bash script to make a small amount of automation to the process. It seems to be a recurring problem when patching Ubuntu and I find my self Googling for the solution everytime.
cd /tmp
wget https://raw.githubusercontent.com/rune1979/ubuntu-vmmon-vmware-bash/master/wm_autoupdate_key.sh
chmod +x wm_autoupdate_key.sh
./wm_autoupdate_key.sh
You can also find it in my github repo (https://github.com/rune1979/ubuntu-vmmon-vmware-bash)
Problem solved! I followed the same exact steps in my original post EXCEPT that I changed the name of the key to something else! The new key successfully signed vmmon in dev directory and vmware worked!
I also had this issue and resolved it by the steps mentioned above but had to reperform these steps after every update. So instead I realized that I could disable secure boot on in my bios and the problem was immediately resolved.
In my case, I also ran into these errors when trying to launch a VM from VMware player. I am not using secure boot, but I installed VMware player back when I was running Ubuntu 16.04. VMware was working fine back then. A week ago, I upgraded to Ubuntu 18.04 and that's when these problems started. For, me all I had to do was the first step pointed out by the OP:
$ sudo vmware-modconfig --console --install-all
There was no need to uninstall or reinstall the app or sign any kernel modules. You don't even need to reboot - just launch VMware player again.