terça-feira, 24 de junho de 2014

Fazendo a merda de VMWare Player 3.1.6 funcionar no Ubuntu 12.04

Depois de tanto tempo sem sucesso, finalmente consegui funcionar o VMWare Player (versão 3.1.6) no meu paredão (Lenovo T60 - Se para celular é um tijolo, este laptop é uma parede, grande e pesado comparado com os laptops de hoje em dia - daí o nome). É só seguir os passos abaixo.

Instale o bundle VMware-Player-3.1.6-744570.i386.bundle que com algum esforço pode ser achado no site da própria VMWare (NÃO RODE o VMWare ainda, tenha paciência e siga os passos abaixo);
Baixe o seguinte patch, disponivel em http://weltall.heliohost.org/wordpress/wp-content/uploads/2012/04/vmware716fixlinux340.tar.bz2
Descompacte o .tar (tar -xf vmware716fixlinux340.tar.bz2) e rode o patch dentro da pasta extraída, desta forma: sudo ./patch-modules_3.4.0.sh
Depois disso, vá até o diretório /usr/lib/vmware/modules/source e descompacte o arquivo vmblock.tar (sudo tar -xf vmblock.tar)
Lá dentro, você terá que editar o arquivo fylesystem.c, que fica dentro do diretório extraído (sudo vi vmblock-only/linux/filesystem.c)

E de lá, comente a seguinte linha,

rootDentry = d_make_root(rootInode);

de modo que fique assim:

/* rootDentry = d_make_root(rootInode); */

E adicione logo abaixo isso:

#if LINUX_VERSION_CODE < KERNEL_VERSION(3, 4, 0)
rootDentry = d_alloc_root(rootInode);
#else
rootDentry = d_make_root(rootInode);
#endif

Depois só salvar o arquivo, e executar o seguinte comando, para enfiar o arquivo filesystem.c de novo no vmblock.tar:

sudo tar --append --file=vmblock.tar vmblock-only/linux/filesystem.c

Agora teste rodando o VMWare e enjoy!! Aqui funcionou pelo menos!

Dica retirada do site: http://blog.errorok.com/2012/07/07/262/, na seção de comments!