Páginas

domingo, 4 de setembro de 2011

Compilando VMWare Server 2.0.2 build 203138

Bem Pessoal,



O Problema de hoje é na compilação do VMWare Server 2.0.2 build 203138 no Ubuntu 10.04 (Lucid) com o kernel 2.6.32-33

Como sabemos para instalar o VMWare no LINUX sempre precisamos de utilizar alguns patchs porém todos que utilizei que estavam em grandes forúms de Linux e do Ubuntu não resolviam então achei um PATCH no forúm do VMWARE que foi meio estranho utilizar mas funcionou.



O Forúm do VMWare a qual me referi é este aqui http://communities.vmware.com/ que por sinal eles tem vários patchs para tudo.
Vamos começar então nossa luta para instalação do VMWare Server.
Primeiramente o ERRO que aparecia quando eu tentava instalar ele normalmente.
[...]
What is the location of the directory of C header files that match your running
kernel? [/lib/modules/2.6.32-33-generic/build/include] 

Extracting the sources of the vmmon module.

Building the vmmon module.

Using 2.6.x kernel build system.
make: Entrando no diretório `/tmp/vmware-config2/vmmon-only'
make -C /lib/modules/2.6.32-33-generic/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. modules
make[1]: Entrando no diretório `/usr/src/linux-headers-2.6.32-33-generic'
  CC [M]  /tmp/vmware-config2/vmmon-only/linux/driver.o
In file included from /tmp/vmware-config2/vmmon-only/linux/driver.c:31:
/tmp/vmware-config2/vmmon-only/./include/compat_wait.h:78: error: conflicting types for ‘poll_initwait’
include/linux/poll.h:70: note: previous declaration of ‘poll_initwait’ was here
In file included from /tmp/vmware-config2/vmmon-only/./include/vmware.h:38,
                 from /tmp/vmware-config2/vmmon-only/linux/driver.c:99:
/tmp/vmware-config2/vmmon-only/./include/vm_basic_types.h:108:7: warning: "__FreeBSD__" is not defined
In file included from /tmp/vmware-config2/vmmon-only/./common/vmx86.h:32,
                 from /tmp/vmware-config2/vmmon-only/linux/driver.h:29,
                 from /tmp/vmware-config2/vmmon-only/linux/driver.c:101:
/tmp/vmware-config2/vmmon-only/./include/x86msr.h:164:1: warning: "MSR_THERM2_CTL" redefined
In file included from /usr/src/linux-headers-2.6.32-33-generic/arch/x86/include/asm/msr.h:4,
                 from /usr/src/linux-headers-2.6.32-33-generic/arch/x86/include/asm/processor.h:21,
                 from include/linux/prefetch.h:14,
                 from include/linux/list.h:6,
                 from include/linux/module.h:9,
                 from /tmp/vmware-config2/vmmon-only/./include/compat_module.h:27,
                 from /tmp/vmware-config2/vmmon-only/linux/driver.c:26:
/usr/src/linux-headers-2.6.32-33-generic/arch/x86/include/asm/msr-index.h:234:1: warning: this is the location of the previous definition
In file included from /tmp/vmware-config2/vmmon-only/./include/vcpuset.h:103,
                 from /tmp/vmware-config2/vmmon-only/./include/modulecall.h:37,
                 from /tmp/vmware-config2/vmmon-only/./common/vmx86.h:33,
                 from /tmp/vmware-config2/vmmon-only/linux/driver.h:29,
                 from /tmp/vmware-config2/vmmon-only/linux/driver.c:101:
/tmp/vmware-config2/vmmon-only/./include/vm_atomic.h:329:7: warning: "_MSC_VER" is not defined
/tmp/vmware-config2/vmmon-only/./include/vm_atomic.h:333:7: warning: "_MSC_VER" is not defined
/tmp/vmware-config2/vmmon-only/./include/vm_atomic.h:401:7: warning: "_MSC_VER" is not defined
/tmp/vmware-config2/vmmon-only/./include/vm_atomic.h:407:7: warning: "_MSC_VER" is not defined
/tmp/vmware-config2/vmmon-only/./include/vm_atomic.h:460:7: warning: "_MSC_VER" is not defined
/tmp/vmware-config2/vmmon-only/./include/vm_atomic.h:506:7: warning: "_MSC_VER" is not defined
/tmp/vmware-config2/vmmon-only/./include/vm_atomic.h:551:7: warning: "_MSC_VER" is not defined
/tmp/vmware-config2/vmmon-only/./include/vm_atomic.h:595:7: warning: "_MSC_VER" is not defined
/tmp/vmware-config2/vmmon-only/./include/vm_atomic.h:640:7: warning: "_MSC_VER" is not defined
/tmp/vmware-config2/vmmon-only/./include/vm_atomic.h:684:7: warning: "_MSC_VER" is not defined
/tmp/vmware-config2/vmmon-only/./include/vm_atomic.h:729:7: warning: "_MSC_VER" is not defined
/tmp/vmware-config2/vmmon-only/./include/vm_atomic.h:773:7: warning: "_MSC_VER" is not defined
/tmp/vmware-config2/vmmon-only/./include/vm_atomic.h:775:7: warning: "_MSC_VER" is not defined
/tmp/vmware-config2/vmmon-only/./include/vm_atomic.h:816:7: warning: "_MSC_VER" is not defined
/tmp/vmware-config2/vmmon-only/./include/vm_atomic.h:860:7: warning: "_MSC_VER" is not defined
/tmp/vmware-config2/vmmon-only/./include/vm_atomic.h:862:7: warning: "_MSC_VER" is not defined
/tmp/vmware-config2/vmmon-only/./include/vm_atomic.h:903:7: warning: "_MSC_VER" is not defined
/tmp/vmware-config2/vmmon-only/./include/vm_atomic.h:945:7: warning: "_MSC_VER" is not defined
/tmp/vmware-config2/vmmon-only/./include/vm_atomic.h:947:7: warning: "_MSC_VER" is not defined
/tmp/vmware-config2/vmmon-only/./include/vm_atomic.h:986:7: warning: "_MSC_VER" is not defined
/tmp/vmware-config2/vmmon-only/./include/vm_atomic.h:1028:7: warning: "_MSC_VER" is not defined
/tmp/vmware-config2/vmmon-only/./include/vm_atomic.h:1030:7: warning: "_MSC_VER" is not defined
/tmp/vmware-config2/vmmon-only/./include/vm_atomic.h:1069:7: warning: "_MSC_VER" is not defined
/tmp/vmware-config2/vmmon-only/./include/vm_atomic.h:1223:7: warning: "_MSC_VER" is not defined
/tmp/vmware-config2/vmmon-only/./include/vm_atomic.h:1227:7: warning: "_MSC_VER" is not defined
/tmp/vmware-config2/vmmon-only/./include/vm_atomic.h:1313:7: warning: "_MSC_VER" is not defined
/tmp/vmware-config2/vmmon-only/./include/vm_atomic.h:1536:7: warning: "_MSC_VER" is not defined
/tmp/vmware-config2/vmmon-only/./include/vm_atomic.h:1663:7: warning: "_MSC_VER" is not defined
/tmp/vmware-config2/vmmon-only/./include/vm_atomic.h:1796:7: warning: "_MSC_VER" is not defined
In file included from /tmp/vmware-config2/vmmon-only/./include/vm_asm_x86_64.h:39,
                 from /tmp/vmware-config2/vmmon-only/./include/vm_asm.h:41,
                 from /tmp/vmware-config2/vmmon-only/linux/driver.c:103:
/tmp/vmware-config2/vmmon-only/./include/vm_asm_x86.h:486:7: warning: "_MSC_VER" is not defined
/tmp/vmware-config2/vmmon-only/./include/vm_asm_x86.h:779:7: warning: "_MSC_VER" is not defined
/tmp/vmware-config2/vmmon-only/./include/vm_asm_x86.h:820:7: warning: "_MSC_VER" is not defined
/tmp/vmware-config2/vmmon-only/./include/vm_asm_x86.h:922:7: warning: "_MSC_VER" is not defined
In file included from /tmp/vmware-config2/vmmon-only/./include/vm_asm.h:41,
                 from /tmp/vmware-config2/vmmon-only/linux/driver.c:103:
/tmp/vmware-config2/vmmon-only/./include/vm_asm_x86_64.h:56:7: warning: "_MSC_VER" is not defined
In file included from /tmp/vmware-config2/vmmon-only/linux/driver.c:119:
/tmp/vmware-config2/vmmon-only/./common/hostif.h:53:7: warning: "WINNT_DDK" is not defined
/tmp/vmware-config2/vmmon-only/linux/driver.c: In function ‘LinuxDriverSyncCallOnEachCPU’:
/tmp/vmware-config2/vmmon-only/linux/driver.c:1423: error: too many arguments to function ‘smp_call_function’
/tmp/vmware-config2/vmmon-only/linux/driver.c: In function ‘LinuxDriver_Ioctl’:
/tmp/vmware-config2/vmmon-only/linux/driver.c:1987: error: ‘struct task_struct’ has no member named ‘euid’
/tmp/vmware-config2/vmmon-only/linux/driver.c:1987: error: ‘struct task_struct’ has no member named ‘uid’
/tmp/vmware-config2/vmmon-only/linux/driver.c:1988: error: ‘struct task_struct’ has no member named ‘fsuid’
/tmp/vmware-config2/vmmon-only/linux/driver.c:1988: error: ‘struct task_struct’ has no member named ‘uid’
/tmp/vmware-config2/vmmon-only/linux/driver.c:1989: error: ‘struct task_struct’ has no member named ‘egid’
/tmp/vmware-config2/vmmon-only/linux/driver.c:1989: error: ‘struct task_struct’ has no member named ‘gid’
/tmp/vmware-config2/vmmon-only/linux/driver.c:1990: error: ‘struct task_struct’ has no member named ‘fsgid’
/tmp/vmware-config2/vmmon-only/linux/driver.c:1990: error: ‘struct task_struct’ has no member named ‘gid’
/tmp/vmware-config2/vmmon-only/linux/driver.c:2007: error: too many arguments to function ‘smp_call_function’
make[2]: ** [/tmp/vmware-config2/vmmon-only/linux/driver.o] Erro 1
make[1]: ** [_module_/tmp/vmware-config2/vmmon-only] Erro 2
make[1]: Saindo do diretório `/usr/src/linux-headers-2.6.32-33-generic'
make: ** [vmmon.ko] Erro 2
make: Saindo do diretório `/tmp/vmware-config2/vmmon-only'
Unable to build the vmmon module.

For more information on how to troubleshoot module-related problems, please 
visit our Web site at "http://www.vmware.com/go/unsup-linux-products" and 
"http://www.vmware.com/go/unsup-linux-tools".

Execution aborted.
Agora vamos a solução:
Você pode baixar o patch consolidado aqui
ou baixar todos os arquivos deste link : http://nerdbynature.de/bits/2.6.32-22/
      00-vmware-2.6.32_functional.diff.txt
      02-vmnet-include.diff.txt.gz
      01-vmware-2.6.32_cosmetic.diff.txt
      vmware-config.pl.diff.txt
      patch-vmware_2.6.3x.sh.txt
Descompacte o arquivo "02-vmnet-nclude.diff.txt.gz"
      
      # gunzip 02-vmnet-include.diff.txt.gz
Após o download é necessário renomear todos os aquivos removendo os ".txt"
      00-vmware-2.6.32_functional.diff
      02-vmnet-include.diff
      01-vmware-2.6.32_cosmetic.diff
      vmware-config.pl.diff
      patch-vmware_2.6.3x.sh
Edite o arquivo "patch-vmware_2.6.3x.sh" substituindo a linha 19 conforme abaixo
--DIR=/root/dev/
++DIR=/home/hugo/patch-vmware
Também é necessário para evitar um erro bobo, remover o primeiro "../" na linha 59
--$DEBUG cd ../../../../bin || exit 2
++$DEBUG cd ../../../bin || exit 2
Agora basta executar "patch-vmware_2.6.3x.sh" passando como parâmetro o path do source do vmware-server-distrib
./patch-vmware_2.6.3x.sh /path/to/vmware-server-distrib/lib/modules/source
Referencias:
http://communities.vmware.com/message/1545801

Nenhum comentário:

Postar um comentário