Problemas con VMWare Workstation en Linux para cargar los módulos vmmon and vmnet utilizando Secure Boot
Si tienes una máquina virtual ejecutándose sobre Vmware Workstation en un anfitrión GNU/Linux que utilice UEFI con el arranque seguro activado vas a tener problemas con la carga de los módulos vmmon y vmnet. Verás el siguiente mensaje:
Cannot open /dev/vmmon: No such file or directory. Please make sure that the kernel module `vmmon' is loaded
Esto sucede porque el arranque seguro requiere que estos módulos estén firmados para poder cargarlos y esto no es posible porque estos módulos se compilan durante la instalación del producto. La solución es sencilla pero un poco tediosa porque tendrás que realizarla cada vez que alguno de estos módulos se actualice. Los pasos son los siguientes:
El primer paso es generar el juego de claves mediante openssl que posteriormente se usará para firmar los módulos mediante el siguiente comando:
$openssl req -new -x509 -newkey rsa:2048 -keyout MOK.priv -outform DER -out MOK.der -nodes -days 36500 -subj "/CN=VMware/"
A continuación tienes que firmar los módulos mediante los siguientes comandos:
$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)
Este paso solo hay que hacerlo la primera vez o cuando se genere un juego de claves nuevo, por ejemplo, si has perdido el anterior. Te solicitará una contraseña para el registro de la clave en la UEFI y que debes recordar.
$mokutil --import MOK.der
Por último, tienes que reiniciar el equipo y seguir las instrucciones especificas de la UEFI de tu equipo.