On Ubuntu 12.04, I have been happily using VMware Workstation 6. Then, one fine day, this error occurred when starting a VM:

Could not open /dev/vmmon: No such file or directory.
Please make sure that the kernel module `vmmon' is loaded.
Failed to initialize monitor device.

I'm not sure of the reason, but it could be, purely speculative, due to upgrading the Nvidia driver (it was akin to a visit to the dentist's office, so please do not tell me to mess around again with the graphic driver.)
In pursuit of a resolution, I updated to VMware Workstation 12 using the GUI installer.

gksudo bash xxxxx.bundle  

I assume it was smart enough to uninstall the older version before proceeding to installing the new version. All is good, except the same problem above occured when I tried to start a virtual machine. Indeed, as counselled, I could not find the file or directory /dev/vmmon in my system (this is also true before reinstalling to the newer version.)
Following another wise counsel, I tried:

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

The full output (lest I be downvoted for lack of providing detail) is such:

Stopping VMware services:
   VMware Authentication Daemon                                        done
   VM communication interface socket family                            done
   Virtual machine communication interface                             done
   Virtual machine monitor                                             done
   Blocking file system                                                done
Using kernel build system.
make: Entering directory `/tmp/modconfig-ha12A3/vmmon-only'
/usr/bin/make -C /lib/modules/3.13.0-49-generic/build/include/..    SUBDIRS=$PWD SRCROOT=$PWD/. \
  MODULEBUILDDIR= modules
make[1]: Entering directory `/usr/src/linux-headers-3.13.0-49-generic'
  CC [M]  /tmp/modconfig-ha12A3/vmmon-only/linux/driver.o
  CC [M]  /tmp/modconfig-ha12A3/vmmon-only/linux/driverLog.o
  CC [M]  /tmp/modconfig-ha12A3/vmmon-only/linux/hostif.o
  CC [M]  /tmp/modconfig-ha12A3/vmmon-only/common/apic.o
  CC [M]  /tmp/modconfig-ha12A3/vmmon-only/common/comport.o
  CC [M]  /tmp/modconfig-ha12A3/vmmon-only/common/cpuid.o
  CC [M]  /tmp/modconfig-ha12A3/vmmon-only/common/hashFunc.o
  CC [M]  /tmp/modconfig-ha12A3/vmmon-only/common/memtrack.o
  CC [M]  /tmp/modconfig-ha12A3/vmmon-only/common/phystrack.o
  CC [M]  /tmp/modconfig-ha12A3/vmmon-only/common/task.o
  CC [M]  /tmp/modconfig-ha12A3/vmmon-only/common/vmx86.o
  CC [M]  /tmp/modconfig-ha12A3/vmmon-only/vmcore/moduleloop.o
/tmp/modconfig-ha12A3/vmmon-only/linux/driver.c: In function   ‘LinuxDriver_Ioctl’:
/tmp/modconfig-ha12A3/vmmon-only/linux/driver.c:1983: warning: the frame size of 1280 bytes is larger than 1024 bytes
  LD [M]  /tmp/modconfig-ha12A3/vmmon-only/vmmon.o
  Building modules, stage 2.
  MODPOST 1 modules
WARNING: "mcount" [/tmp/modconfig-ha12A3/vmmon-only/vmmon.ko] undefined!
  CC      /tmp/modconfig-ha12A3/vmmon-only/vmmon.mod.o
  LD [M]  /tmp/modconfig-ha12A3/vmmon-only/vmmon.ko
make[1]: Leaving directory `/usr/src/linux-headers-3.13.0-49-generic'
/usr/bin/make -C $PWD SRCROOT=$PWD/. \
      MODULEBUILDDIR= postbuild
make[1]: Entering directory `/tmp/modconfig-ha12A3/vmmon-only'
make[1]: `postbuild' is up to date.
make[1]: Leaving directory `/tmp/modconfig-ha12A3/vmmon-only'
cp -f vmmon.ko ./../vmmon.o
make: Leaving directory `/tmp/modconfig-ha12A3/vmmon-only'
Using kernel build system.
make: Entering directory `/tmp/modconfig-ha12A3/vmnet-only'
/usr/bin/make -C /lib/modules/3.13.0-49-generic/build/include/..     SUBDIRS=$PWD     SRCROOT=$PWD/. \
  MODULEBUILDDIR= modules
make[1]: Entering directory `/usr/src/linux-headers-3.13.0-49-generic'
  CC [M]  /tmp/modconfig-ha12A3/vmnet-only/driver.o
  CC [M]  /tmp/modconfig-ha12A3/vmnet-only/hub.o
  CC [M]  /tmp/modconfig-ha12A3/vmnet-only/userif.o
  CC [M]  /tmp/modconfig-ha12A3/vmnet-only/netif.o
  CC [M]  /tmp/modconfig-ha12A3/vmnet-only/bridge.o
  CC [M]  /tmp/modconfig-ha12A3/vmnet-only/procfs.o
  CC [M]  /tmp/modconfig-ha12A3/vmnet-only/smac_compat.o
  CC [M]  /tmp/modconfig-ha12A3/vmnet-only/smac.o
  CC [M]  /tmp/modconfig-ha12A3/vmnet-only/vnetEvent.o
  CC [M]  /tmp/modconfig-ha12A3/vmnet-only/vnetUserListener.o
  LD [M]  /tmp/modconfig-ha12A3/vmnet-only/vmnet.o
  Building modules, stage 2.
  MODPOST 1 modules
WARNING: "mcount" [/tmp/modconfig-ha12A3/vmnet-only/vmnet.ko] undefined!
  CC      /tmp/modconfig-ha12A3/vmnet-only/vmnet.mod.o
  LD [M]  /tmp/modconfig-ha12A3/vmnet-only/vmnet.ko
make[1]: Leaving directory `/usr/src/linux-headers-3.13.0-49-generic'
/usr/bin/make -C $PWD SRCROOT=$PWD/. \
  MODULEBUILDDIR= postbuild
make[1]: Entering directory `/tmp/modconfig-ha12A3/vmnet-only'
make[1]: `postbuild' is up to date.
make[1]: Leaving directory `/tmp/modconfig-ha12A3/vmnet-only'
cp -f vmnet.ko ./../vmnet.o
make: Leaving directory `/tmp/modconfig-ha12A3/vmnet-only'
Starting VMware services:
   Virtual machine monitor                                            failed
   Virtual machine communication interface                             done
   VM communication interface socket family                            done
   Blocking file system                                                done
   Virtual ethernet                                                   failed
   VMware Authentication Daemon                                        done
Unable to start services

I see a couple of warning messages but no errors, hence baffling indeed the case of the missing and unloadable vmmon.

Following other counsels:

>> sudo /etc/init.d/vmware restart
Stopping VMware services:
   VMware Authentication Daemon                                        done
   VM communication interface socket family                            done
   Virtual machine communication interface                             done
   Virtual machine monitor                                             done
   Blocking file system                                                done
Starting VMware services:
   Virtual machine monitor                                            failed
   Virtual machine communication interface                             done
   VM communication interface socket family                            done
   Blocking file system                                                done
   Virtual ethernet                                                   failed
   VMware Authentication Daemon                                        done

>> sudo modprobe vmmon
FATAL: Error inserting vmmon (/lib/modules/3.13.0-49-generic/misc/vmmon.ko): Unknown symbol in module, or unknown parameter (see dmesg)

Thy wise counsel I desperately seeketh.

  • I tried to copy over the vmmon file from another workstation which was doing well with VMware but couldn't. It's a 0 byte 'special' file. What is this dastardly vmmon-ster ??? – ng0323 Dec 9 '15 at 2:18
  • I have tried manually uninstalling from the command line then reinstalled the latest version (downloaded today) and repeated the above counsels, but alas my efforts were in vain! – ng0323 Dec 9 '15 at 6:36
  • 1
    Please try sudo vmware-modconfig --console --install-all – Charles Green Dec 9 '15 at 15:51
  • 1
    Is there a way to fix that with ufi boot enabled? – rafaelphp Jul 14 '16 at 15:05
  • @CharlesGreen solution worked for me – TungstenX Jul 27 '16 at 9:29

Disabling Secure Boot from UEFI is a poor answer but it's the official answer on the VMWare forum.

I had a similar issue when installing VirtualBox and managed to resolve my VMWare issue using the same method. This allows me to keep secure boot enabled and also use VMWare.

The issue is that the vmware kernel module is not signed so fails to be loaded when secure boot is enabled. However you can "self sign" the module which is what I did for both VMWare workstation and VirtualBox.

  1. Go to this forum post : https://forums.virtualbox.org/viewtopic.php?f=7&t=77363&start=15
  2. Go to the post by Fayce66 on 6 May 2016, 08:37
  3. In each command replace the kernel module "vboxdrv" (virtualbox module name) with "vmmon" (vmware module name)
  4. You might have to do all the commands again for kernel module "vmnet" (vmware network module)

These steps worked for me. I am able to keep secure boot enabled and use VMWare Workstation.

It's possible that your problem with VMware Workstation 12 is that...

On Linux host with secure mode enabled, it is not allowed to load any unsigned drivers. Due to this, VMware drivers, such as vmmon and vmnet, are not able to be loaded which prevents virtual machine to power on.

To fix this without turning off secure boot, you can do the following in a terminal to self-sign the drivers:

  1. Generate a key pair using the openssl to sign vmmon and vmnet modules:

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

    (Replace MOK with the name of the file you want for the key.)

  2. Sign the modules using the generated key by running these commands:

    sudo /usr/src/linux-headers-\`uname -r\`/scripts/sign-file sha256 ./MOK.priv ./MOK.der $(modinfo -n vmmon)
    sudo /usr/src/linux-headers-\`uname -r\`/scripts/sign-file sha256 ./MOK.priv ./MOK.der $(modinfo -n vmnet)
    
  3. Import the public key to the system's MOK list by running this command:

    sudo mokutil --import MOK.der
    

(NOTE: Linked VMWare KB misses the sudo which will cause issues)

  1. Confirm a password for this MOK enrollment request.
  2. Reboot your machine. Follow the instructions to complete the enrollment from the UEFI console.

Cited from this VMWare article: https://kb.vmware.com/kb/2146460

  • This fixed my problem, thanks! Just be sure to have sudo /usr/src/linux-headers-`uname -r`/scripts/sign-file sha256 ./MOK.priv ./MOK.der $(modinfo -n vmmon) and sudo /usr/src/linux-headers-`uname -r`/scripts/sign-file sha256 ./MOK.priv ./MOK.der $ (modinfo -n vmnet) as per the linked page and add sudo to mokutil --import MOK.der call above, with the option to use sudo passwd root followed by sudo mokutil --import MOK.der --root-pw if as above doesn't work. – Campbeln Mar 2 at 15:21

Just disable Secure Boot from UEFI options.

https://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=2103112

  • Disabling secure boot is not a poor answer. In fact this is the only one which worked for both of my machines(Desktop and laptop) running ubuntu 18.04 LTS and VMPlayer 14.x. Problem occurs at the time of opening an image file. Rather than spending a lot of time in various work around - i would recommend better to disable secure boot for the time being and later enable it when the image has been loaded and used. – Ashu May 20 at 18:52

Your Answer

 

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.