El Virtual Network Device de VMWare Player 4.0.2 no compila en Ubuntu Precise 12.04 (Linux Kernel 3.2)
La instalación de VMWare Player 4.0.2 en Ubuntu Precise 12.04 parece que funciona sin problemas, pero en el primer inicio de la aplicación nos pide compilar una serie de módulos y falla al compilar el Virtual Network Device.
Aparentemente VMWare Player 4.0.2 (y VMWare Workstation 8.0.2) no está preparado para compilar su driver de red virtual contra el kernel 3.2 de Linux (aunque en el 3.3 sí funciona). Afortunadamente Stefano Angeleri ha publicado un fix que soluciona el problema. Se trata de un parche para el módulo de red virtual de VMWare. Para aplicarlo:
- Descargamos el parche de aquí y extraemos el contenido.
- Vamos a
/usr/lib/vmware/modules/sourcey descomprimimosvmnet.tar. - Aplicamos el parche que extrajimos antes.
- Comprimimos de nuevo la carpeta con las fuentes parcheadas.
- Recompilamos los módulos de vmware.
Los comandos a ejecutar:
- wget http://weltall.heliohost.org/wordpress/wp-content/uploads/2012/01/vmware802fixlinux320.tar.gz
- mkdir vmware-patch
- mv vmware802fixlinux320.tar.gz vmware-patch/
- cd vmware-patch
- tar xvzf vmware802fixlinux320.tar.gz
- cd /usr/lib/vmware/modules/source
- sudo tar xvf vmnet.tar
- sudo patch -p1 < /home/chema92/Downloads/vmware-patch/vmware3.2.0.patch
- sudo tar cvf vmnet.tar vmnet-only/
- sudo vmware-modconfig –console –install-all
En el terminal queda así:
chema92@chema92-office:~/Downloads$ wget http://weltall.heliohost.org/wordpress/wp-content/uploads/2012/01/vmware802fixlinux320.tar.gz --2012-05-02 12:00:33-- http://weltall.heliohost.org/wordpress/wp-content/uploads/2012/01/vmware802fixlinux320.tar.gz Resolving weltall.heliohost.org (weltall.heliohost.org)... 216.218.192.170 Connecting to weltall.heliohost.org (weltall.heliohost.org)|216.218.192.170|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 2033 (2.0K) [application/x-gzip] Saving to: `vmware802fixlinux320.tar.gz' 100%[==================================================================================================>] 2,033 --.-K/s in 0s 2012-05-02 12:00:40 (3.97 MB/s) - `vmware802fixlinux320.tar.gz' saved [2033/2033] chema92@chema92-office:~/Downloads$ mkdir vmware-patch chema92@chema92-office:~/Downloads$ mv vmware802fixlinux320.tar.gz vmware-patch/ chema92@chema92-office:~/Downloads$ cd vmware-patch/ chema92@chema92-office:~/Downloads/vmware-patch$ ls vmware802fixlinux320.tar.gz chema92@chema92-office:~/Downloads/vmware-patch$ tar xvzf vmware802fixlinux320.tar.gz patch-modules_3.2.0.sh vmware3.2.0.patch chema92@chema92-office:~/Downloads/vmware-patch$ cd /usr/lib/vmware/modules/source chema92@chema92-office:/usr/lib/vmware/modules/source$ ls vmblock.tar vmci.tar vmmon.tar vmnet.tar vsock.tar chema92@chema92-office:/usr/lib/vmware/modules/source$ sudo tar xvf vmnet.tar vmnet-only/ vmnet-only/vm_device_version.h vmnet-only/Makefile.normal vmnet-only/vnetEvent.h vmnet-only/vm_oui.h vmnet-only/filter.c vmnet-only/vm_basic_asm.h vmnet-only/COPYING vmnet-only/vm_assert.h vmnet-only/nfhook_uses_skb.c vmnet-only/netdev_has_net.c vmnet-only/vnetUserListener.c vmnet-only/vmware_pack_init.h vmnet-only/vnetEvent.c vmnet-only/procfs.c vmnet-only/compat_skbuff.h vmnet-only/Makefile.kernel vmnet-only/vnetFilter.h vmnet-only/vnet.h vmnet-only/vmnetInt.h vmnet-only/vm_basic_asm_x86.h vmnet-only/compat_sock.h vmnet-only/x86cpuid.h vmnet-only/Makefile vmnet-only/smac_compat.c vmnet-only/netif.c vmnet-only/vmware_pack_end.h vmnet-only/bridge.c vmnet-only/hub.c vmnet-only/smac.h vmnet-only/vnetInt.h vmnet-only/compat_autoconf.h vmnet-only/includeCheck.h vmnet-only/vmware_pack_begin.h vmnet-only/vnetKernel.h vmnet-only/vm_basic_defs.h vmnet-only/community_source.h vmnet-only/vnetFilterInt.h vmnet-only/smac.c vmnet-only/vm_basic_types.h vmnet-only/netdev_has_dev_net.c vmnet-only/driver-config.h vmnet-only/userif.c vmnet-only/monitorAction_exported.h vmnet-only/compat_module.h vmnet-only/compat_netdevice.h vmnet-only/vm_basic_asm_x86_64.h vmnet-only/smac_compat.h vmnet-only/geninclude.c vmnet-only/driver.c vmnet-only/skblin.c vmnet-only/compat_version.h vmnet-only/net.h vmnet-only/vm_atomic.h chema92@chema92-office:/usr/lib/vmware/modules/source$ ls vmblock.tar vmci.tar vmmon.tar vmnet-only vmnet.tar vsock.tar chema92@chema92-office:/usr/lib/vmware/modules/source$ sudo patch -p1 < /home/chema92/Downloads/vmware-patch/vmware3.2.0.patch patching file vmnet-only/filter.c patching file vmnet-only/netif.c patching file vmnet-only/userif.c chema92@chema92-office:/usr/lib/vmware/modules/source$ sudo tar cvf vmnet.tar vmnet-only/ vmnet-only/ vmnet-only/vm_device_version.h vmnet-only/Makefile.normal vmnet-only/vnetEvent.h vmnet-only/vm_oui.h vmnet-only/filter.c vmnet-only/vm_basic_asm.h vmnet-only/COPYING vmnet-only/vm_assert.h vmnet-only/nfhook_uses_skb.c vmnet-only/netdev_has_net.c vmnet-only/vnetUserListener.c vmnet-only/vmware_pack_init.h vmnet-only/vnetEvent.c vmnet-only/procfs.c vmnet-only/compat_skbuff.h vmnet-only/Makefile.kernel vmnet-only/vnetFilter.h vmnet-only/vnet.h vmnet-only/vmnetInt.h vmnet-only/vm_basic_asm_x86.h vmnet-only/compat_sock.h vmnet-only/x86cpuid.h vmnet-only/Makefile vmnet-only/smac_compat.c vmnet-only/netif.c vmnet-only/vmware_pack_end.h vmnet-only/bridge.c vmnet-only/hub.c vmnet-only/smac.h vmnet-only/vnetInt.h vmnet-only/compat_autoconf.h vmnet-only/includeCheck.h vmnet-only/vmware_pack_begin.h vmnet-only/vnetKernel.h vmnet-only/vm_basic_defs.h vmnet-only/community_source.h vmnet-only/vnetFilterInt.h vmnet-only/smac.c vmnet-only/vm_basic_types.h vmnet-only/netdev_has_dev_net.c vmnet-only/driver-config.h vmnet-only/userif.c vmnet-only/monitorAction_exported.h vmnet-only/compat_module.h vmnet-only/compat_netdevice.h vmnet-only/vm_basic_asm_x86_64.h vmnet-only/smac_compat.h vmnet-only/geninclude.c vmnet-only/driver.c vmnet-only/skblin.c vmnet-only/compat_version.h vmnet-only/net.h vmnet-only/vm_atomic.h chema92@chema92-office:/usr/lib/vmware/modules/source$ ls vmblock.tar vmci.tar vmmon.tar vmnet-only vmnet.tar vsock.tar chema92@chema92-office:/usr/lib/vmware/modules/source$ sudo vmware-modconfig --console --install-all Stopping VMware services: VMware Authentication Daemon done VM communication interface socket family done Virtual machine communication interface done Virtual machine monitor done Blocking file system done Using 2.6.x kernel build system. make: Entering directory `/tmp/vmware-root/modules/vmmon-only' make -C /lib/modules/3.2.0-24-generic/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. \ MODULEBUILDDIR= modules make[1]: Entering directory `/usr/src/linux-headers-3.2.0-24-generic' CC [M] /tmp/vmware-root/modules/vmmon-only/linux/driver.o CC [M] /tmp/vmware-root/modules/vmmon-only/linux/driverLog.o CC [M] /tmp/vmware-root/modules/vmmon-only/linux/hostif.o CC [M] /tmp/vmware-root/modules/vmmon-only/common/apic.o CC [M] /tmp/vmware-root/modules/vmmon-only/common/comport.o CC [M] /tmp/vmware-root/modules/vmmon-only/common/cpuid.o CC [M] /tmp/vmware-root/modules/vmmon-only/common/hashFunc.o CC [M] /tmp/vmware-root/modules/vmmon-only/common/memtrack.o CC [M] /tmp/vmware-root/modules/vmmon-only/common/phystrack.o CC [M] /tmp/vmware-root/modules/vmmon-only/common/task.o CC [M] /tmp/vmware-root/modules/vmmon-only/common/vmx86.o CC [M] /tmp/vmware-root/modules/vmmon-only/vmcore/moduleloop.o LD [M] /tmp/vmware-root/modules/vmmon-only/vmmon.o Building modules, stage 2. MODPOST 1 modules CC /tmp/vmware-root/modules/vmmon-only/vmmon.mod.o LD [M] /tmp/vmware-root/modules/vmmon-only/vmmon.ko make[1]: Leaving directory `/usr/src/linux-headers-3.2.0-24-generic' make -C $PWD SRCROOT=$PWD/. \ MODULEBUILDDIR= postbuild make[1]: Entering directory `/tmp/vmware-root/modules/vmmon-only' make[1]: `postbuild' is up to date. make[1]: Leaving directory `/tmp/vmware-root/modules/vmmon-only' cp -f vmmon.ko ./../vmmon.o make: Leaving directory `/tmp/vmware-root/modules/vmmon-only' Built vmmon module Using 2.6.x kernel build system. make: Entering directory `/tmp/vmware-root/modules/vmnet-only' make -C /lib/modules/3.2.0-24-generic/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. \ MODULEBUILDDIR= modules make[1]: Entering directory `/usr/src/linux-headers-3.2.0-24-generic' CC [M] /tmp/vmware-root/modules/vmnet-only/driver.o CC [M] /tmp/vmware-root/modules/vmnet-only/hub.o CC [M] /tmp/vmware-root/modules/vmnet-only/netif.o CC [M] /tmp/vmware-root/modules/vmnet-only/userif.o CC [M] /tmp/vmware-root/modules/vmnet-only/bridge.o CC [M] /tmp/vmware-root/modules/vmnet-only/filter.o CC [M] /tmp/vmware-root/modules/vmnet-only/procfs.o CC [M] /tmp/vmware-root/modules/vmnet-only/smac_compat.o CC [M] /tmp/vmware-root/modules/vmnet-only/smac.o CC [M] /tmp/vmware-root/modules/vmnet-only/vnetEvent.o CC [M] /tmp/vmware-root/modules/vmnet-only/vnetUserListener.o LD [M] /tmp/vmware-root/modules/vmnet-only/vmnet.o Building modules, stage 2. MODPOST 1 modules CC /tmp/vmware-root/modules/vmnet-only/vmnet.mod.o LD [M] /tmp/vmware-root/modules/vmnet-only/vmnet.ko make[1]: Leaving directory `/usr/src/linux-headers-3.2.0-24-generic' make -C $PWD SRCROOT=$PWD/. \ MODULEBUILDDIR= postbuild make[1]: Entering directory `/tmp/vmware-root/modules/vmnet-only' make[1]: `postbuild' is up to date. make[1]: Leaving directory `/tmp/vmware-root/modules/vmnet-only' cp -f vmnet.ko ./../vmnet.o make: Leaving directory `/tmp/vmware-root/modules/vmnet-only' Built vmnet module Using 2.6.x kernel build system. make: Entering directory `/tmp/vmware-root/modules/vmblock-only' make -C /lib/modules/3.2.0-24-generic/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. \ MODULEBUILDDIR= modules make[1]: Entering directory `/usr/src/linux-headers-3.2.0-24-generic' CC [M] /tmp/vmware-root/modules/vmblock-only/linux/block.o CC [M] /tmp/vmware-root/modules/vmblock-only/linux/control.o CC [M] /tmp/vmware-root/modules/vmblock-only/linux/dbllnklst.o CC [M] /tmp/vmware-root/modules/vmblock-only/linux/dentry.o CC [M] /tmp/vmware-root/modules/vmblock-only/linux/file.o CC [M] /tmp/vmware-root/modules/vmblock-only/linux/filesystem.o CC [M] /tmp/vmware-root/modules/vmblock-only/linux/inode.o CC [M] /tmp/vmware-root/modules/vmblock-only/linux/module.o CC [M] /tmp/vmware-root/modules/vmblock-only/linux/stubs.o CC [M] /tmp/vmware-root/modules/vmblock-only/linux/super.o LD [M] /tmp/vmware-root/modules/vmblock-only/vmblock.o Building modules, stage 2. MODPOST 1 modules CC /tmp/vmware-root/modules/vmblock-only/vmblock.mod.o LD [M] /tmp/vmware-root/modules/vmblock-only/vmblock.ko make[1]: Leaving directory `/usr/src/linux-headers-3.2.0-24-generic' make -C $PWD SRCROOT=$PWD/. \ MODULEBUILDDIR= postbuild make[1]: Entering directory `/tmp/vmware-root/modules/vmblock-only' make[1]: `postbuild' is up to date. make[1]: Leaving directory `/tmp/vmware-root/modules/vmblock-only' cp -f vmblock.ko ./../vmblock.o make: Leaving directory `/tmp/vmware-root/modules/vmblock-only' Built vmblock module Using 2.6.x kernel build system. make: Entering directory `/tmp/vmware-root/modules/vmci-only' make -C /lib/modules/3.2.0-24-generic/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. \ MODULEBUILDDIR= modules make[1]: Entering directory `/usr/src/linux-headers-3.2.0-24-generic' CC [M] /tmp/vmware-root/modules/vmci-only/linux/driver.o CC [M] /tmp/vmware-root/modules/vmci-only/linux/vmciKernelIf.o CC [M] /tmp/vmware-root/modules/vmci-only/common/vmciContext.o CC [M] /tmp/vmware-root/modules/vmci-only/common/vmciDatagram.o CC [M] /tmp/vmware-root/modules/vmci-only/common/vmciDoorbell.o CC [M] /tmp/vmware-root/modules/vmci-only/common/vmciEvent.o CC [M] /tmp/vmware-root/modules/vmci-only/common/vmciDriver.o CC [M] /tmp/vmware-root/modules/vmci-only/common/vmciHashtable.o CC [M] /tmp/vmware-root/modules/vmci-only/common/vmciQPair.o CC [M] /tmp/vmware-root/modules/vmci-only/common/vmciQueuePair.o CC [M] /tmp/vmware-root/modules/vmci-only/common/vmciResource.o CC [M] /tmp/vmware-root/modules/vmci-only/common/vmciRoute.o CC [M] /tmp/vmware-root/modules/vmci-only/driverLog.o LD [M] /tmp/vmware-root/modules/vmci-only/vmci.o Building modules, stage 2. MODPOST 1 modules CC /tmp/vmware-root/modules/vmci-only/vmci.mod.o LD [M] /tmp/vmware-root/modules/vmci-only/vmci.ko make[1]: Leaving directory `/usr/src/linux-headers-3.2.0-24-generic' make -C $PWD SRCROOT=$PWD/. \ MODULEBUILDDIR= postbuild make[1]: Entering directory `/tmp/vmware-root/modules/vmci-only' make[1]: `postbuild' is up to date. make[1]: Leaving directory `/tmp/vmware-root/modules/vmci-only' cp -f vmci.ko ./../vmci.o make: Leaving directory `/tmp/vmware-root/modules/vmci-only' Built vmci module Using 2.6.x kernel build system. make: Entering directory `/tmp/vmware-root/modules/vsock-only' make -C /lib/modules/3.2.0-24-generic/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. \ MODULEBUILDDIR= modules make[1]: Entering directory `/usr/src/linux-headers-3.2.0-24-generic' CC [M] /tmp/vmware-root/modules/vsock-only/linux/af_vsock.o CC [M] /tmp/vmware-root/modules/vsock-only/linux/notify.o CC [M] /tmp/vmware-root/modules/vsock-only/linux/notifyQState.o CC [M] /tmp/vmware-root/modules/vsock-only/linux/stats.o CC [M] /tmp/vmware-root/modules/vsock-only/linux/util.o CC [M] /tmp/vmware-root/modules/vsock-only/linux/vsockAddr.o CC [M] /tmp/vmware-root/modules/vsock-only/driverLog.o LD [M] /tmp/vmware-root/modules/vsock-only/vsock.o Building modules, stage 2. MODPOST 1 modules CC /tmp/vmware-root/modules/vsock-only/vsock.mod.o LD [M] /tmp/vmware-root/modules/vsock-only/vsock.ko make[1]: Leaving directory `/usr/src/linux-headers-3.2.0-24-generic' make -C $PWD SRCROOT=$PWD/. \ MODULEBUILDDIR= postbuild make[1]: Entering directory `/tmp/vmware-root/modules/vsock-only' make[1]: `postbuild' is up to date. make[1]: Leaving directory `/tmp/vmware-root/modules/vsock-only' cp -f vsock.ko ./../vsock.o make: Leaving directory `/tmp/vmware-root/modules/vsock-only' Built vsock module Starting VMware services: Virtual machine monitor done Virtual machine communication interface done VM communication interface socket family done Blocking file system done Virtual ethernet done VMware Authentication Daemon done Shared Memory Available done