vmhgfs não compilável para o VMware Tools 9.9.0 (Fusion7.1) após a atualização do kernel do Ubuntu Linux para 3.13.0-46-generic?

12

O módulo vmhgfs não é compilável para o VMware Tools 9.9.0 (Fusion7.1) e o VMware Tools 9.9.2 (Fusion7.1.1 Build 2496486) após a atualização do kernel do Ubuntu Linux para 3.13.0-46-genérico (fevereiro de 2015) ( Recurso de pasta compartilhada do VMware Tools não funciona no Ubuntu 14.04 LTS (Guest) no MacOSX Yosemite (Host))?

Olá comunidade e a equipe de desenvolvedores do VMware,

Em 13 de fevereiro de 2015, perdemos o recurso de pasta compartilhada entre o Ubuntu e o MacOSX. Provavelmente, a atualização do kernel do Linux para o 3.13.0-46-generic causou este problema (embora o módulo vmhgfs existente e compilado do VMware Tools no Ubuntu não seja danificado pela atualização do kernel do Linux!). Usamos o VMware Fusion 7.0.0 com o Ubuntu 14.04 LTS e o MacOSX por um ano sem problemas com os kernels Linux mais antigos. Atualizamos para o VMware Fusion 7.1.0 e o Fusion7.1.1 Build 2496486 com o VMware Tools 9.9.2, na esperança de corrigir o problema do Recurso de Pasta Compartilhada que ocorreu primeiro no vers. 7.0.0.

Podemos supor que existe uma incompatibilidade entre o módulo vmhgfs compilado e o novo kernel Linux 3.13.0-46-genérico.

Tentamos reinstalar as ferramentas VMware 9.9.0 e vers. 9.9.2 mas o módulo vmhgfs não pôde ser compilado e o Recurso de Pasta Compartilhada não está funcionando. Todos os outros recursos da ferramenta VMware estão funcionando bem.

No Ubuntu 14.04 LTS o comando do terminal lsmod | grep "vm" não lista nenhum módulo vmhgfs

Durante a compilação do módulo vmhgfs, houve vários "erros" perto de "/ vmhgfs-only /" e "make []:"

Aqui está um dos nossos jornais terminais para você:

include/linux/compiler-gcc4.h:14:34: error: ‘struct dentry’ has no member named ‘d_alias’
#define __compiler_offsetof(a,b) __builtin_offsetof(a,b)
                                  ^
include/linux/stddef.h:17:31: note: in expansion of macro ‘__compiler_offsetof’
#define offsetof(TYPE,MEMBER) __compiler_offsetof(TYPE,MEMBER)
                               ^
include/linux/kernel.h:794:29: note: in expansion of macro ‘offsetof’
  (type *)( (char *)__mptr - offsetof(type,member) );})
                             ^
include/linux/list.h:687:40: note: in expansion of macro ‘container_of’
#define hlist_entry(ptr, type, member) container_of(ptr,type,member)
                                        ^
include/linux/list.h:698:15: note: in expansion of macro ‘hlist_entry’
     ____ptr ? hlist_entry(____ptr, type, member) : NULL; \
               ^
include/linux/list.h:710:13: note: in expansion of macro ‘hlist_entry_safe’
       pos = hlist_entry_safe((pos)->member.next, typeof(*(pos)), member))
             ^
/tmp/modconfig-h4Zwi0/vmhgfs-only/inode.c:1920:7: note: in expansion of macro ‘hlist_for_each_entry’
       hlist_for_each_entry(dentry,
       ^
make[2]: *** [/tmp/modconfig-h4Zwi0/vmhgfs-only/inode.o] Error 1
make[1]: *** [_module_/tmp/modconfig-h4Zwi0/vmhgfs-only] Error 2
make[1]: Leaving directory '/usr/src/linux-headers-3.13.0-46-generic'
make: *** [vmhgfs.ko] Error 2
make: Leaving directory '/tmp/modconfig-h4Zwi0/vmhgfs-only'

E / mnt / hgfs está vazio, mas o compartilhamento de pastas está habilitado para o diretório "Documentos" do Mac, por exemplo. Se rodarmos o vmware-hgfsclient em um terminal, obtemos a lista de pastas compartilhadas, mas / mnt / hgfs está vazio.

Você poderia consertar a incompatibilidade entre o módulo vmhgfs e o novo kernel Linux 3.13.0-46-genérico, por favor?

Atenciosamente,

Toni

    
por Ecoplacehunter 16.02.2015 / 18:16

3 respostas

13

As ferramentas podem ser corrigidas manualmente. Em vmhgfs.tar, inode.c d_alias deve ser alterado para d_u.d_alias , colocado de volta no tar e, em seguida, recompile as ferramentas.

Um script que faz isso (testado em 14 bits do Ubuntu 14.04, vmware workstation 11.1 em um host do Windows) está aqui:

#!/bin/sh -x
cd /usr/lib/vmware-tools/modules/source
tar xf vmhgfs.tar
grep -q d_u.d_alias vmhgfs-only/inode.c && echo "already patched" && exit 0
sed -i -e s/d_alias/d_u.d_alias/ vmhgfs-only/inode.c
cp -p vmhgfs.tar vmhgfs.tar.orig
tar cf vmhgfs.tar vmhgfs-only
vmware-config-tools.pl -d -m

NOTA: isto torna as ferramentas incompatíveis com as versões mais antigas do kernel, por exemplo, 3.13.0-45.

    
por Viljo Viitanen 03.03.2015 / 08:59
1

Eu tive a mesma experiência depois de atualizar para o kernel 3.13.0-46. De acordo com vmware-tools-patches , não há um patch disponível.

The patches do not yet apply successfully with the following Linux kernels:

3.13.x

Eu fixei vmhgfs por:

  1. Revertendo para a versão do kernel 3.13.0-45, tanto por inicialização em uma versão mais antiga ou revertendo sua atualização do kernel então
  2. reinstale o vmware-tools .
por Billiam Whatcott 02.03.2015 / 23:53
0

Similarmente à resposta da @Will Wolcott, as recentes alterações em vmware-tools-patches funcionam em torno da questão para mim em 14.04 com o kernel 3.13.

    
por IsaacS 10.03.2015 / 13:49