Hi, I have seen this error while I try to open VM on fusion: Could not open /dev/vmmon: Broken pipe.
I did check in your database and have tried all possible solutions but those are not helping out.
Vmware Fusion version is 11.5.5
Mac version is macOS Mojave 10.14.6
I have tried uninstalling and installing it again. Uninstalling completely.
I have removed Virtual-Box and all the files
I have already checked system preference settings and I don't see anything related to fusion.
- In System preference >> Firewall >> Fusion is allowed
- In System Preference >> Privacy >> Accessibilty >> Fusion is allowed
These are other few checks :
Following command doesn't give any output :
- kextstat | grep vmware
Following command shows something related to memory allocation failure. I have 126 GB in HD and RAM is 16GB.
sudo kextutil /Applications/VMware\ Fusion.app/Contents/Library/kexts/vmmon.kext
Error making temporary directory: 1
Memory allocation failure.
Unable to stage kext (/Applications/VMware Fusion.app/Contents/Library/kexts/vmmon.kext) to secure location.
Hi Wila,
Thank you for your time.
Issue resolved after I updated Mac OS to latest version. Seems like compatibilty issue.
Regards
Mukul
Info about your VM? (OS, memory)
I am trying EVE.ovf file and the memory recommended for it is 4GB.
Check this on your Mac: https://build5nines.com/check-hyper-v-intel-vt-x-virtualization-support-on-macos-computer/
Check this setting is enabled on the VM: Set Advanced Processor Options
Hi,
If you are getting vmmon errors then that's not a VM error.
It is -as you correctly identified- a problem with a kernel extension that isn't able to load.
The one thing missing from your text so far is that I have not seen is that you allowed VMware kernel extension to be loaded.
That's normally on the first tab page of the "Privacy & Security" settings pane.
I described it first here:
https://planetvm.net/blog/?p=3240
--
Wil
Hi Scott,
Thank you for your reply.
I went through the shared link. I see this is enabled. I also tried booting Centos: seeing same issue. So it should not be related to VM.
sysctl -a | grep machdep.cpu.features
machdep.cpu.features: FPU VME DE PSE TSC MSR PAE MCE CX8 APIC SEP MTRR PGE MCA CMOV PAT PSE36 CLFSH DS ACPI MMX FXSR SSE SSE2 SS HTT TM PBE SSE3 PCLMULQDQ DTES64 MON DSCPL VMX EST TM2 SSSE3 FMA CX16 TPR PDCM SSE4.1 SSE4.2 x2APIC MOVBE POPCNT AES PCID XSAVE OSXSAVE SEGLIM64 TSCTMR AVX1.0 RDRAND F16C
sysctl kern.hv_support
kern.hv_support: 1
Check this setting is enabled on the VM: Set Advanced Processor Option >>> I have enabled it on VM, but I have seen same error message.
Hi Wil,
Thank you for reply. Actually, I have checked it and I have not seen that message from the beginning.
I am sharing the screenshot here.
Hi,
Well. it cannot work without getting that error unless you have disabled SIP.
So that only confirms what I think has happened.
The prompt from macOS is not showing up when it should.
Can you try the last step from the article I linked earlier?
First drag Fusion to the bin.
Reboot your mac.
Then follow the steps to strip the quarantaine flags from the installer and install again.
Try Fusion.. it _really should_ give you the popup to allow VMware kernel extensions.
If it doesn't you can try a reboot (yes again).
Getting kernel modules to load in macOS can be a royal PITA at times.
From that point of view it is good that they are no longer needed from Big Sur onwards, but I would have preferred if macOS wasn't as fuzzy and "just worked" like it used to promise in the past.
--
Wil
Hi Wila,
Thank you for your time.
Issue resolved after I updated Mac OS to latest version. Seems like compatibilty issue.
Regards
Mukul
OS upgrade isn't an option in my case, so I had to keep looking for a solution. Same symptoms, running Mojave 10.14.6 here.
Hope this helps anyone else who lands here after a frustrating session of Google searches!
Error loading kext in Mojave
I was having problems with VMware Fusion 11.5.6 not being able to load its kexts, VMs failing to start with this error:
Error: Could not open /dev/vmmon: Broken pipe, while launching the Virtual Machine
Checking with kextutil we get:
$ sudo kextutil -b /Applications/VMware\ Fusion.app/Contents/Library/kexts/*
Error making temporary directory: 1
Memory allocation failure.
Unable to stage kext (/Applications/VMware Fusion.app/Contents/Library/kexts/vmmon.kext) to secure location.
Error making temporary directory: 1
Memory allocation failure.
Unable to stage kext (/Applications/VMware Fusion.app/Contents/Library/kexts/vmnet.kext) to secure location.
Can't find extension with identifier /Applications/VMware Fusion.app/Contents/Library/kexts/vmioplug.kext.
After much unsuccessful searching for solutions to the VMware problem (which were only solved by upgrading macOS - not an acceptable option), I sumbled across the solution. We need to fix some permissions/flags.
Solution
Based on the temporary directory error, check the permissions and flags for the following:
- /private/var/db/KernelExtensionManagement should be 0755 with the "restricted" flag set, and the com.apple.rootless attribute set to KernelExtensionManagement (you can check the value of the attribute with xattr -l)
- /private/var/db/KernelExtensionManagement/Staging should be 0755 with the "restricted" flag set.
Checking attribute:
$ xattr -l /private/var/db/KernelExtensionManagement
com.apple.rootless: KernelExtensionManagement
So far so good. Let's check for the "restricted" flag:
ls -lO /private/var/db/
ls -lO /private/var/db/KernelExtensionManagement/
Note that some of the entries in the list have "restricted" flag set. KernelExtensionManagement is missing the flag, but Staging is fine.
Incidentally, my other Mac (running Catalina) has the correct "restricted" flag set. This looks very promising!
Fix this by rebooting to Recovery Mode, then in a terminal do:
chflags restricted /Volumes/Macintosh\ HD/private/var/db/KernelExtensionManagement
Problem solved 🙂
I have the feeling that running First Aid on the disk from Recovery Mode might have worked, instead of that "cumbersome" command, but didn't bother trying.
## References
Developer Forums - Error Loading Kext in Mojave
GitHub - kOSKextReturnNotLoadable on Mojave 10.14.6
VMware Communities - VM's not working in Fusion
2020-12-13
Re-installing from Recovery mode fixed the issue for me on macOS 10.14.6.
First Aid from Recovery did not fix the issue
Curiously, the restricted is still missing from /private/var/db/KernelExtensionManagement.
James, I'd buy you a large glass of adult beverage if I could. Your solution fixed my problems with VMware Fusion/Mojave 10.14.6 after a very frustrating week of trying the other solutions in these forums, w/o success. In my case, I was simply not receiving the alert in the Security and Privacy preference to allow Fusion to load its kexts. My permissions were OK but the restricted attribute was missing from my KernelExtensionManagement folder. Adding that (followed by a manual removal and reinstall) left me with a copy of Fusion that can now launch all my VMs.
One note I'd add to your solution, in case someone in the future reaches it via Google (as I did):
1. For those of us who use FileVault the Macintosh HD disk isn't mounted by default when booted in Recovery. This is fixed by issuing this Terminal command: diskutil apfs unlock "Macintosh HD"
Once that's issued, the folder is available for adding the attribute.
Thanks again!
I take it back - after reinstalling Mojave all was fine until the next reboot and then the error was back 😞
The advice to add the restricted attribute fixed the issue <fingers crossed>.
I really appreciate you posting that, James. I spent 6 hours working on this problem, and I couldn't even find an exact description of my problem until I found this thread. You totally nailed it. Thank you.
Thank you VERY MUCH for this comprehensive and immediate solution!!!
Great work James. Thanks. Worked for me. Problem started after Security Update 2021-002
Cheers
I also got rocked by the malware known as Security Update 2021-002 for Mojave. I was also able to fix with @jameslodberg 's excellent suggestion of fixing the restricted flag from recovery mode. This didn't just fix VMware Fusion. It fixed all the kexts that were suddenly failing to load for VPN clients, 10G cards, etc. Thanks a lot!
Top notch @jameslodberg, thank you. This worked for me.
James, thank you sir!
Had exactly the same symptoms after upgrading my old Mac Pro from High Sierra (where VMWare Fusion 11 had been running fine) to Mojave.
Had once seen (briefly) a dialog about 'system extension blocked' with advice to consult Security and Privacy system settings. I already had 'App Store and identified developers' enabled, and there was no message about trusting extensions for VMWare (this was already given in the older version of OSX) when I went and double checked Security and Privacy.
Command line kextutil gave me the same messages as you describe.
Checked in recovery mode terminal and found that the VMWare 'team' identifier was already enabled on all kexts. Tried a kext cache flush, which seemed to work but then realised that I still had SIP disabled. Re-enabled this and VMWare broke again.
Suspected a file system permission issue somewhere, but had no clue where to look. Your article has pointed me in right direction, and with 'restricted' set on the KernelExtensionManagement subdir, VMWare is back up and running.
Great job. Thank you again.
So happy to see that this has helped so many people, thanks for all the kind words! 😃