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.
sudo vmware-modconfig --console --install-all