I'm running vmware player under a ubuntu/linux host (details below). After each upgrade of linux, when I try to start the client, vmware reports ...
Could not open /dev/vmmon: No such file or directory.
Please make sure that the kernel module `vmmon' is loaded.
The problem appears to be that vmware is signing neither vmmon.ko nor vmnet.ko after rebuilding them, and linux can't load them without the correct signature. The machine's bios has UEFI enabled, and I've been asked not to disable it.
I am working around the problem by manually signing them from the cli using sign-file, but it's a pain because I need to repeat that after each linux upgrade.
I've verified that the player's config file (~/vmware/windows_10/windows_10.vmx) contains the line ...
firmware = "efi"
There are plenty of web reports about the problem, each detailing how to work around it, but I'd like to re-configure the player so it does the signing. How do I do that?
Details:
- vmware workstation 16 player, 16.2.1 build-18811642
- vmware client: windows 10
- vmware host: ubuntu 20.04.3 LTS; linux 5.13.0-30-generic.
The manual signing/loading procedure:
#!/bin/bash
mok_dir=/var/lib/shim-signed/mok
ko_dir=/lib/modules/`uname -r`/misc
# for driver in vmmon.ko vmnet.ko
for driver in vmmon vmnet
do
sudo /usr/src/linux-headers-`uname -r`/scripts/sign-file \
sha256 $mok_dir/MOK.priv $mok_dir/MOK.der \
$(modinfo -n $driver)
sudo modprobe $driver
done