miércoles, 19 de marzo de 2014

Error en VMware al compilar el kernel "Failed to build vmnet"

Es común actualizar los programas dentro de nuestro GNU/Linux, así evitamos tropezar con algunos errores o bugs, mejoramos la estabilidad de nuestro sistema e incluso disfrutamos novedades de las nuevas versiones.

Al actualizar los paquetes de Fedora 19, tuve un pequeño inconveniente con VMware Workstation. El kernel había pasado de la versión 3.12 a la versión 3.13 y en esta versión existe un problema al compilar el módulo vmnet de VMware. Este problema también se presenta en Fedora 20 y es muy probablemente en todas las distribuciones GNU/Linux con kernel 3.13, tal es el caso de Arch Linux.

Problema


Tras terminar de instalar VMware Workstation o al actualizar Fedora podemos tropezar con los siguientes mensajes en secuencia:
Before you can run VMware, several modules must be compiled and loaded into the running kernel
"Before you can run VMware, several modules must be compiled and loaded into the running kernel"
Stopping VMware Services. Virtual Network Device, Running depmod. Starting VMware Services
Unable to start services. See log file /tmp/vmware-root/vmware-modconfig-wxyz.log for details
"Unable to start services. See log file /tmp/vmware-root/vmware-modconfig-wxyz.log for details"

Al visualizar el archivo mencionado en el mensaje observaremos al final:

# cat /tmp/vmware-root/vmware-modconfig-wxyz.log

Extracting the vmnet source from "/usr/lib/vmware/modules/source/vmnet.tar".
Successfully extracted the vmnet source.
Building module with command "/usr/bin/make -j8 -C /tmp/modconfig-xPv9iG/vmnet-only auto-build HEADER_DIR=/lib/modules/3.13.5-103.fc19.x86_64/build/include CC=/usr/bin/gcc IS_GCC_3=no"
Failed to build vmnet.  Failed to execute the build command.

¡ Qué problema !

Solución simple


Para saltar el problema en nuestro VMWare Workstation 10, simplemente reiniciamos nuestro sistema operativo. Antes de iniciar Fedora tendremos en pantalla al gestor de arranque Grub. En él seleccionamos Fedora con el kernel 3.12 (con las teclas de arriba y abajo) e iniciamos Fedora presionando ENTER. Con eso el problema habrá desaparecido.

Solución definitiva


Bien, si queremos dar una solución completa al problema que tenemos con nuestro kernel y el módulo vmnet de VMware sigamos los siguientes pasos:

Descarguemos el parche

$ curl http://pastie.org/pastes/8672356/download -o /tmp/vmware-netfilter.patch

Ingresemos al directorio donde está el código fuente de VMware Workstation

$ cd /usr/lib/vmware/modules/source

Ahora ingresemos como superusuario

$ su
[Password de root]

Descomprimamos el paquete vmnet.tar

# tar -xvf vmnet.tar

Ahora apliquemos el parche

# patch -p0 -i /tmp/vmware-netfilter.patch

Volvamos a empaquetar el directorio vmnet-only

# tar -cf vmnet.tar vmnet-only

Eliminemos los rastros del parche

# rm -r vmnet-only

Y finalmente volvamos a configuar vmware

# vmware-modconfig --console --install-all

Con esos pasos ya podemos utilizar nuevamente y sin ningún problema nuestro virtualizador de sistemas Operativos VMware Workstation.

Fuente de referencia: fedoraproject.org/wiki/VMWare


Si te gustó esta publicación no olvides compartirlo. Espero sus comentarios.



17 comentarios:

  1. Hola

    He tratadod e seguir tus pasos en mi sistema debian
    No LSB modules are available.
    Distributor ID: Debian
    Description: Debian GNU/Linux testing (jessie)
    Release: testing
    Codename: jessie


    3.13-1-686-pae


    Y recibo el siguiente error

    Hunk #1 succeeded at 195 (offset -8 lines).
    Hunk #2 FAILED at 252.
    1 out of 2 hunks FAILED -- saving rejects to file vmnet-only/filter.c.rej

    ResponderEliminar
  2. ¡Mil gracias! ¡Me ha funcionado a la perfección tal y como has descrito! Uso debian Jessie con kernel 3.13-1-amd64

    ResponderEliminar
  3. Muchas gracias. Funciona fenomenal.

    ResponderEliminar
  4. Mil gracias. Funcionó perfecto para mi Kubuntu kernel 3.13.0-32 :)

    ResponderEliminar
  5. man after all this time, you saved my day. Thanks dude... really.

    ResponderEliminar
  6. Excelente post, me ha funcionado, va directo a mis favoritos.

    ResponderEliminar
  7. Excelente!!!! Funcionó en Debian Jessie x64! Gracias!

    ResponderEliminar
  8. Muchas gracias, funciona perfectamente ;)

    ResponderEliminar
  9. Me alegra que el post les haya sido de utilidad. Me siento muy contento por ello. Saludos

    ResponderEliminar
  10. Muchas gracias, funciono!!!

    ResponderEliminar
  11. Me uno al primer comentario que hacer si sale

    patching file vmnet-only/filter.c
    Hunk #1 FAILED at 203.
    Hunk #2 FAILED at 252.
    2 out of 2 hunks FAILED -- saving rejects to file vmnet-only/filter.c.rej

    ResponderEliminar
  12. De igual forma opensuse 13.2:

    patching file vmnet-only/filter.c
    Hunk #1 FAILED at 203.
    Hunk #2 FAILED at 252.
    2 out of 2 hunks FAILED -- saving rejects to file vmnet-only/filter.c.rej

    ResponderEliminar
  13. Works fine in Ubuntu 12.04.

    Thanks

    ResponderEliminar
  14. ¡Maravilloso! Funciona en Mint 17.1 (a pesar de que tenía que ejecutar la página a través de Google Translate porque yo no hablo español, jaja). Muchas gracias!

    ResponderEliminar