lunes, 16 de mayo de 2016

Instalar VMWare Workstation Pro 12.1.1 try en Fedora 23 - 24

Imagen obtenidad: url

VMware Workstation

Es un software para virtualización de sistemas operativos de una manera más avanzada, o al menos eso es lo que describe en su página oficial, algo que no dudo. Es más o menos parecido a VirtualBox. Si me preguntaran cuál es mejor, diría que no puedo contestar, ya que cad auno tiene lo suyo, sin embargo, VMware, es más potente cuando de redes de SO virtuales se trata, y VirtualBox es más fácil de utilizar por usuarios no expertos.

Virtualización de PC avanzada

VMware Workstation transforma la forma en que los profesionales técnicos desarrollan, prueban e implementan el software o hacen demostraciones de las aplicaciones, porque permite ejecutar varios sistemas operativos basados en x86 al mismo tiempo en el mismo PC. VMware Workstation se sustenta en 15 años de excelencia en virtualización y ha ganado más de 50 premios del sector. Eleva la virtualización de escritorios al próximo nivel porque ofrece a los usuarios una compatibilidad sin parangón con gran diversidad de sistemas operativos, una experiencia de usuario plena y un rendimiento magnífico.

Virtualización de escritorio de última generación para Windows y Linux

Con VMware Workstation Pro, se aprovecha el hardware más reciente para replicar entornos de servidor, de escritorio y de tableta en una máquina virtual. Ejecute aplicaciones en varios sistemas operativos, incluidos Linux y Windows, entre otros, al mismo tiempo y en la misma PC sin tener que reiniciar su equipo. VMware Workstation Pro facilita muchísimo la tarea de evaluar nuevos sistemas operativos como Windows 10 y probar aplicaciones y parches de software, y arquitecturas de referencia en un entorno aislado y seguro. Ningún otro software de virtualización de escritorio brinda el rendimiento, la confiabilidad y las funciones de avanzada de Workstation Pro. 

Creación de máquinas virtuales potentes


Workstation Pro maximiza los recursos de su computadora mediante la capacidad de asignar múltiples núcleos de procesador o gigabytes de memoria principal o de memoria gráfica a cada máquina virtual para ejecutar las aplicaciones más exigentes en un entorno virtualizado. Con Workstation Pro, también se pueden ejecutar anfitriones virtuales ESXi y dispositivos de vSphere, lo que permite crear un centro de datos definido por el software completo en su escritorio.

Virtualización de escritorio de última generación para Windows y Linux

Con VMware Workstation Pro, se aprovecha el hardware más reciente para replicar entornos de servidor, de escritorio y de tableta en una máquina virtual. Ejecute aplicaciones en varios sistemas operativos, incluidos Linux y Windows, entre otros, al mismo tiempo y en la misma PC sin tener que reiniciar su equipo. VMware Workstation Pro facilita muchísimo la tarea de evaluar nuevos sistemas operativos como Windows 10 y probar aplicaciones y parches de software, y arquitecturas de referencia en un entorno aislado y seguro. Ningún otro software de virtualización de escritorio brinda el rendimiento, la confiabilidad y las funciones de avanzada de Workstation Pro.
- See more at: http://www.vmware.com/latam/products/workstation/#sthash.7saKw2Pc.dpuf

Virtualización de escritorio de última generación para Windows y Linux

Con VMware Workstation Pro, se aprovecha el hardware más reciente para replicar entornos de servidor, de escritorio y de tableta en una máquina virtual. Ejecute aplicaciones en varios sistemas operativos, incluidos Linux y Windows, entre otros, al mismo tiempo y en la misma PC sin tener que reiniciar su equipo. VMware Workstation Pro facilita muchísimo la tarea de evaluar nuevos sistemas operativos como Windows 10 y probar aplicaciones y parches de software, y arquitecturas de referencia en un entorno aislado y seguro. Ningún otro software de virtualización de escritorio brinda el rendimiento, la confiabilidad y las funciones de avanzada de Workstation Pro.
- See more at: http://www.vmware.com/latam/products/workstation/#sthash.7saKw2Pc.dpuf

Virtualización de escritorio de última generación para Windows y Linux

Con VMware Workstation Pro, se aprovecha el hardware más reciente para replicar entornos de servidor, de escritorio y de tableta en una máquina virtual. Ejecute aplicaciones en varios sistemas operativos, incluidos Linux y Windows, entre otros, al mismo tiempo y en la misma PC sin tener que reiniciar su equipo. VMware Workstation Pro facilita muchísimo la tarea de evaluar nuevos sistemas operativos como Windows 10 y probar aplicaciones y parches de software, y arquitecturas de referencia en un entorno aislado y seguro. Ningún otro software de virtualización de escritorio brinda el rendimiento, la confiabilidad y las funciones de avanzada de Workstation Pro.
- See more at: http://www.vmware.com/latam/products/workstation/#sthash.7saKw2Pc.dpuf

Instalación de VMware Workstation

1.- Descargar el instalador correspondiente:
http://www.vmware.com/go/tryworkstation-linux-64
2.- Instalar requisitos necesarios
Iniciar la terminal en modo root (es necesario):
NOTA: Debido a que algunas configuraciones requieren acceso a carpetas con permisos únicamente de root, es necesario inicar en ese modo la terminal.
 su -
dnf install kernel-headers kernel kernel-devel gcc make glibc-headers 
dnf groupinstall "Development tools"
dnf update
3.- Reiniciar el equipo en caso de haber actualizaciones, esto es necesario para que el equipo inicie con la última versión del KERNEL en caso de haberlo, sobre todo si es la primera vez que se instalan los headers y librerias de desarrolladores.
reboot
4.- Copiar módulos del kernel necesarios.
cp /usr/src/kernels/`uname -r`/include/generated/uapi/linux/version.h /lib/modules/`uname -r`/build/include/linux/
5.- Cambiar los permisos del ejecutable descargado para ser instalado:
chmod 755 VMware-Workstation-Full-12.1.1-3770994.x86_64.bundle
6.- Ejecutar el instalador, recordar que estamos en modo root:
 Descargar generador de Seriales de aquí:
./VMware-Workstation-Full-12.1.1-3770994.x86_64.bundle

Compilar el Kernel:

NOTA: Una vez terminada la instalación, proseguimos a la compilación de los módulos de VMWare. Iniciar la terminal en modo ROOT
 Para la compilación de las librerias hay dos métodos uno manual y otro semi-automático:
Antes de comenzar hacer lo siguiente:
su -
 dnf install kernel-headers kernel-devel gcc glibc-headers
vmware-modconfig --console --install-all 
En el comando anterior mostrará un mensaje parecido al siguiente:
[...]
Stopping vmware (via systemctl):                           [  OK  ]
make: Entering directory '/tmp/modconfig-ADhuOz/vmmon-only'
Using kernel build system.
/usr/bin/make -C /lib/modules/4.4.9-300.fc23.x86_64/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. \
  MODULEBUILDDIR= modules
make[1]: Entering directory '/usr/src/kernels/4.4.9-300.fc23.x86_64'
  CC [M]  /tmp/modconfig-ADhuOz/vmmon-only/linux/hostif.o
  CC [M]  /tmp/modconfig-ADhuOz/vmmon-only/linux/driver.o
/tmp/modconfig-ADhuOz/vmmon-only/linux/driver.c:1283:1: aviso: una función always_inline tal vez no se puede incluir en línea [-Wattributes]
 LinuxDriverSyncReadTSCs(uint64 *delta) // OUT: TSC max - TSC min
 ^
  CC [M]  /tmp/modconfig-ADhuOz/vmmon-only/linux/driverLog.o
  CC [M]  /tmp/modconfig-ADhuOz/vmmon-only/common/memtrack.o
  CC [M]  /tmp/modconfig-ADhuOz/vmmon-only/common/apic.o
  CC [M]  /tmp/modconfig-ADhuOz/vmmon-only/common/vmx86.o
  CC [M]  /tmp/modconfig-ADhuOz/vmmon-only/common/cpuid.o
  CC [M]  /tmp/modconfig-ADhuOz/vmmon-only/common/task.o
  CC [M]  /tmp/modconfig-ADhuOz/vmmon-only/common/hashFunc.o
  CC [M]  /tmp/modconfig-ADhuOz/vmmon-only/common/comport.o
  CC [M]  /tmp/modconfig-ADhuOz/vmmon-only/common/phystrack.o
  CC [M]  /tmp/modconfig-ADhuOz/vmmon-only/vmcore/moduleloop.o
  LD [M]  /tmp/modconfig-ADhuOz/vmmon-only/vmmon.o
  Building modules, stage 2.
  MODPOST 1 modules
  CC      /tmp/modconfig-ADhuOz/vmmon-only/vmmon.mod.o
  LD [M]  /tmp/modconfig-ADhuOz/vmmon-only/vmmon.ko
make[1]: Leaving directory '/usr/src/kernels/4.4.9-300.fc23.x86_64'
/usr/bin/make -C $PWD SRCROOT=$PWD/. \
  MODULEBUILDDIR= postbuild
make[1]: Entering directory '/tmp/modconfig-ADhuOz/vmmon-only'
make[1]: 'postbuild' is up to date.
make[1]: Leaving directory '/tmp/modconfig-ADhuOz/vmmon-only'
cp -f vmmon.ko ./../vmmon.o
make: Leaving directory '/tmp/modconfig-ADhuOz/vmmon-only'
make: Entering directory '/tmp/modconfig-ADhuOz/vmnet-only'
Using kernel build system.
/usr/bin/make -C /lib/modules/4.4.9-300.fc23.x86_64/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. \
  MODULEBUILDDIR= modules
make[1]: Entering directory '/usr/src/kernels/4.4.9-300.fc23.x86_64'
  CC [M]  /tmp/modconfig-ADhuOz/vmnet-only/hub.o
  CC [M]  /tmp/modconfig-ADhuOz/vmnet-only/driver.o
  CC [M]  /tmp/modconfig-ADhuOz/vmnet-only/userif.o
  CC [M]  /tmp/modconfig-ADhuOz/vmnet-only/netif.o
In file included from include/linux/pci.h:35:0,
                 from /tmp/modconfig-ADhuOz/vmnet-only/compat_netdevice.h:27,
                 from /tmp/modconfig-ADhuOz/vmnet-only/netif.c:43:
include/linux/pci_ids.h:2252:0: aviso: se redefinió "PCI_VENDOR_ID_VMWARE"
 #define PCI_VENDOR_ID_VMWARE  0x15ad
 ^
In file included from /tmp/modconfig-ADhuOz/vmnet-only/net.h:38:0,
                 from /tmp/modconfig-ADhuOz/vmnet-only/vnetInt.h:26,
                 from /tmp/modconfig-ADhuOz/vmnet-only/netif.c:42:
/tmp/modconfig-ADhuOz/vmnet-only/vm_device_version.h:56:0: nota: esta es la ubicación de la definición previa
 #define PCI_VENDOR_ID_VMWARE                    0x15AD
 ^
  CC [M]  /tmp/modconfig-ADhuOz/vmnet-only/bridge.o
  CC [M]  /tmp/modconfig-ADhuOz/vmnet-only/procfs.o
In file included from /tmp/modconfig-ADhuOz/vmnet-only/net.h:38:0,
                 from /tmp/modconfig-ADhuOz/vmnet-only/vnetInt.h:26,
                 from /tmp/modconfig-ADhuOz/vmnet-only/bridge.c:52:
/tmp/modconfig-ADhuOz/vmnet-only/vm_device_version.h:56:0: aviso: se redefinió "PCI_VENDOR_ID_VMWARE"
 #define PCI_VENDOR_ID_VMWARE                    0x15AD
 ^
In file included from include/linux/pci.h:35:0,
                 from /tmp/modconfig-ADhuOz/vmnet-only/compat_netdevice.h:27,
                 from /tmp/modconfig-ADhuOz/vmnet-only/bridge.c:51:
include/linux/pci_ids.h:2252:0: nota: esta es la ubicación de la definición previa
 #define PCI_VENDOR_ID_VMWARE  0x15ad
 ^
  CC [M]  /tmp/modconfig-ADhuOz/vmnet-only/smac_compat.o
  CC [M]  /tmp/modconfig-ADhuOz/vmnet-only/smac.o
  CC [M]  /tmp/modconfig-ADhuOz/vmnet-only/vnetEvent.o
  CC [M]  /tmp/modconfig-ADhuOz/vmnet-only/vnetUserListener.o
  LD [M]  /tmp/modconfig-ADhuOz/vmnet-only/vmnet.o
  Building modules, stage 2.
  MODPOST 1 modules
  CC      /tmp/modconfig-ADhuOz/vmnet-only/vmnet.mod.o
  LD [M]  /tmp/modconfig-ADhuOz/vmnet-only/vmnet.ko
make[1]: Leaving directory '/usr/src/kernels/4.4.9-300.fc23.x86_64'
/usr/bin/make -C $PWD SRCROOT=$PWD/. \
  MODULEBUILDDIR= postbuild
make[1]: Entering directory '/tmp/modconfig-ADhuOz/vmnet-only'
make[1]: 'postbuild' is up to date.
make[1]: Leaving directory '/tmp/modconfig-ADhuOz/vmnet-only'
cp -f vmnet.ko ./../vmnet.o
make: Leaving directory '/tmp/modconfig-ADhuOz/vmnet-only'
Starting vmware (via systemctl):                           [  OK  ]
[...]

Método uno:

Copiar el siguiente script bash y guardarlo con el nombre de Update_VMW.sh, lo pueden hacer con gedit:

#!/bin/bash
FCX="fedoralib"

# Check for root
if [ "x$(id -u)" != "x0" ]; then
 echo "(**) Run this tool as root!"; exit 1
fi

# Check distro
KVER=$(uname -r|grep fc23)
if [ "x${KVER}" = "x" ];then
 echo "(**) Fedora 23 not detected, Exit!"
 exit 1
fi

# Check presence of VMW
if [ -f /usr/lib/vmware/lib/libvmwareui.so/libvmwareui.so ]; then
 echo "(II) /usr/lib/vmware/lib/libvmwareui.so/libvmwareui.so present, continuing..."
else
 echo "(**) VMWare Workstation not detected, exit!"; exit 1
fi

# Force use of VMWare bundled libs
if [ -f /etc/vmware/bootstrap ]; then
 grep -q VMWARE_USE_SHIPPED_LIBS /etc/vmware/bootstrap
 if [ $? -eq 0 ]; then
  echo "(II) /etc/vmware/bootstrap already has VMWARE_USE_SHIPPED_LIBS, skip.."
 else
  echo "(II) Patching /etc/vmware/bootstrap..."
  echo "export VMWARE_USE_SHIPPED_LIBS=force" >> /etc/vmware/bootstrap
 fi
 
fi

#

for mylib in $(rpm -ql glib2|grep '/usr/lib64/libg.*so\.0$')
do
 tgtlib="/usr/lib/vmware/lib/$(basename $mylib)/$(basename $mylib)"
 if [ ! -f "${tgtlib}.${FCX}" ]; then
  echo "(II) Backing up to ${tgtlib}.${FCX}..."
  /bin/cp -Lfv ${tgtlib} ${tgtlib}.${FCX}
 fi
 echo "(II) Replacing ${tgtlib} ..."
  /bin/cp -Lfv ${mylib} ${tgtlib}
done
Una vez guardado asignarle permiso de ejecución:
chmod 777 Update_VMW.sh
Ejecutarlo como:
./Update_VMW.sh
NOTA: Una vez ejecutado el scrip, pasar al paso final

Método DOS:

Primero buscar el subfijo de las librerías a utilizar:
En Fedora 23:
# ls -l /usr/lib64/libglib-2.0.so.0.*
Les mostrará un resultado parecido al siguiente, lo más importante a observar aquí, es lo coloreado en rojo:


/usr/lib64/libglib-2.0.so.0.4600.1
En las actualizaciones de kernel de Fedora 23 mostrará lo siguiente:


/usr/lib64/libglib-2.0.so.0.4600.2

En Fedora 24 el resultado es:
# ls -l /usr/lib64/libglib-2.0.so.0.*
El resultado es:

/usr/lib64/libglib-2.0.so.0.4800.1

Lo siguiente es ejecutar el siguiente comando con la versión de las librerías que arrojaron los comandos anteriores, es muy importante que coincidan, recordar que estamos en modo root:
# cd /usr/lib/vmware/lib
Ejecutar el comando con las modificaciones necesarias:
En mi caso tengo la versión  24 de fedora, por lo tanto lo modifico así:
for mylib in $(ls /usr/lib64/lib*4800*); do /bin/cp -afv $mylib $(basename $mylib .4800.1 )/$(basename $mylib .4800.1 ); done
Si su caso es fedora 23, entonces cambiar las respectivas versiones.

 Paso final: 

NOTA: Cada vez que haya actualización del kernel, es necesario recompilar los módulos también, lo mismo ocure con el module kernel de virtualbox.
vmware-modconfig --console --install-all


Ejecutar el software:

Ahora ya pueden ejecutar el software desde la terminal como usuario normal o desde el cajón de las aplicaciones:
vmware&
Iniciarlo en modo forzado:$ VMWARE_USE_SHIPPED_LIBS=force vmware or: $ VMWARE_USE_SHIPPED_LIBS=force vmplayer

Y eso es todo: Gracias por visitar, lamento el Tutorial tan largo, pero es necesario de ese modo:

15 comentarios:

  1. Yo tengo fedora24 e instale VMware 12.1.1 y no puedo hacer que una vm inicie desde USB, en fedora 23 si lo hacia, puedes decirme si te autoinicia desde usb?

    ResponderEliminar
    Respuestas
    1. Buen día, mira, sí lo autodetecta en la versión que tengo, de hecho, lo que sí hice es, recompilar el kernel, para la versión 24 de fedora, inicie la máquina normalmente, una vez iniciada conecto la USB y lo detecta automáticamente, en algunas ocasiones tiene mucho que ver el formato del USB.

      Eliminar
  2. hola realice esto y me funciona muy bien, pero hace dos días un update y actualizo el kernel
    4.7.2-201.fc24.x86_64
    y ahora no funciona VMWare

    /usr/lib64/libglib-2.0.so.0.4800.2

    continué con los mismo pasos pero sin resultados

    Makefile:1461: fallo en las instrucciones para el objetivo '_module_/tmp/modconfig-KIXmIH/vmnet-only'
    make[1]: *** [_module_/tmp/modconfig-KIXmIH/vmnet-only] Error 2
    make[1]: se sale del directorio '/usr/src/kernels/4.7.2-201.fc24.x86_64'
    Makefile:120: fallo en las instrucciones para el objetivo 'vmnet.ko'
    make: *** [vmnet.ko] Error 2
    make: se sale del directorio '/tmp/modconfig-KIXmIH/vmnet-only'
    Unable to install all modules. See log for details.

    ese fue el error que emitio

    saludos

    ResponderEliminar
    Respuestas
    1. Hola, gracias por comentar. Te comento que el script ya se actualizó, utiliza esta versión: https://linuxgx.blogspot.mx/2016/07/instalar-vmware-workstation-pro-1211-en.html

      Eliminar
  3. Bueno ejecute esto

    Okay, so I've got it working again. Turns out there were multiple issues with the vmnet.tar files. So I documented the steps I took to get my system working again (Fedora 23 with 4.7.2 kernel):

    #start in the source directory
    cd /usr/lib/vmware/modules/source

    #create a temp directory to work in and copy the files you need there
    mkdir -p /tmp/kernel_fixes
    cp vmnet.tar vmmon.tar /tmp/kernel_fixes

    #switch to the temp directory
    cd /tmp/kernel_fixes

    # fix the issues with vmmon.tar
    tar xf vmmon.tar
    mv vmmon.tar vmmon.old.tar
    sed -i -e 's/get_user_pages/get_user_pages_remote/g' vmmon-only/linux/hostif.c
    tar cf vmmon.tar vmmon-only

    #fix the issues with vmnet.tar (there are 2 issues here)
    tar xf vmnet.tar
    mv vmnet.tar vmnet.old.tar
    sed -i -e 's/get_user_pages/get_user_pages_remote/g' vmnet-only/userif.c
    sed -i -e 's/dev->trans_start = jiffies/netif_trans_update(dev)/g' vmnet-only/netif.c
    tar cf vmnet.tar vmnet-only

    mv /usr/lib/vmware/modules/source/vmmon.tar /usr/lib/vmware/modules/source/vmmon.tar.bak
    mv /usr/lib/vmware/modules/source/vmnet.tar /usr/lib/vmware/modules/source/vmnet.tar.bak

    cp vmmon.tar vmnet.tar /usr/lib/vmware/modules/source

    Then I ran Vincent's script and the vmware-modconfig --console --install-all

    ResponderEliminar
    Respuestas
    1. pero ya funciona correctamente ahora?

      Eliminar
    2. si, ahora esta funcionando bien, como te comente el problema me surgió hoy al actualizar.

      Eliminar
    3. Perfecto, no me percaté de ese error, porque ya migré a Fedora 24. Pero excelente por los comentarios que realizaste y la documentación aportada. Estamos en contacto.

      Eliminar
  4. Con Fedora 25 mismo problema y procedimiento, y funciona

    ResponderEliminar
  5. Hola... he seguido los pasos y me marca un error con el kernel module updater.
    en mi sistema tengo fedora 24..... note que la versión del VMware es la 12.5.0 no se si esto sea el problema, descarge la vercion 12.1.1 y aun asi me sigue marcando el error. Espero puedan apoyarme.

    ResponderEliminar
    Respuestas
    1. Ya has actualizado por separado el kernel?

      Ya ejecutaste el archivo de update?, verifica bien eso. Puede estar el detalle ahí.

      Eliminar
    2. # cd /usr/lib/vmware/modules/source
      # cp vmnet.tar vmnet.tar.bak
      # cp vmmon.tar vmmon.tar.bak
      # tar -xf vmnet.tar
      # tar -xf vmmon.tar

      nano vmnet-only/userif.c

      buscar

      if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 6, 0)
      retval = get_user_pages(addr, 1, 1, 0, &page, NULL);
      else
      retval = get_user_pages(current, current->mm, addr,
      1, 1, 0, &page, NULL);

      reemplaza por

      if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 9, 0)
      retval = get_user_pages(addr, 1, 0, &page, NULL);
      else if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 6, 0)
      retval = get_user_pages(addr, 1, 1, 0, &page, NULL);
      else
      retval = get_user_pages(current, current->mm, addr,
      1, 1, 0, &page, NULL);

      de igual forma con

      archivo nano /vmmon-only/linux/hostif.c

      if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 6, 0)
      retval = get_user_pages((unsigned long)uvAddr, numPages, 0, 0, ppages, NULL);
      else
      retval = get_user_pages(current, current->mm, (unsigned long)uvAddr,
      numPages, 0, 0, ppages, NULL);


      reenplaza por

      if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 9, 0)
      retval = get_user_pages((unsigned long)uvAddr, numPages, 0, ppages, NULL);
      else if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 6, 0)
      retval = get_user_pages((unsigned long)uvAddr, numPages, 0, 0, ppages, NULL);
      else
      retval = get_user_pages(current, current->mm, (unsigned long)uvAddr,
      numPages, 0, 0, ppages, NULL);

      # tar -cf vmnet.tar vmnet-only
      # tar -cf vmmon.tar vmmon-only
      # vmware-modconfig --console --install-all

      Eliminar
    3. Esta es la ruta orinal me funciono correctamente, yo tengo fedora

      http://erikdubois.be/install-latest-vmware-player-kernel-4-9-linux-mint-18-1-patch-fix-workaround/

      Eliminar
    4. así es, espero que le funcione al compañero.

      Eliminar
    5. Muchas Gracias.... probare y les avisare!!!

      Eliminar