web-dev-qa-db-fra.com

Le module vmhgfs n'est pas compilable pour VMware Tools 9.9.0 (Fusion7.1) après la mise à jour du noyau Ubuntu Linux vers la version 3.13.0-46-generic?

module vmhgfs non compilable pour VMware Tools 9.9.0 (Fusion7.1) et VMware Tools 9.9.2 (Fusion7.1.1 Build 2496486) après la mise à jour du noyau Ubuntu Linux vers la version 3.13.0-46-generic (février 2015) (Fonction de dossier partagé de VMware Tools ne fonctionne pas dans Ubuntu 14.04 LTS (invité) sur MacOSX Yosemite (hôte))?

Hello Community et l'équipe de développement VMware,

Le 13 février 2015, nous avons perdu la fonctionnalité de dossier partagé entre Ubuntu et MacOSX. Probablement, la mise à jour du noyau Linux vers 3.13.0-46-generic a provoqué ce problème (bien que le module vmhgfs compilé existant de VMware Tools dans Ubuntu ne soit pas endommagé par la mise à jour du noyau Linux!). Nous utilisons VMware Fusion 7.0.0 avec Ubuntu 14.04 LTS et MacOSX depuis un an sans problèmes avec les noyaux Linux plus anciens. Nous avons mis à jour VMware Fusion 7.1.0 et Fusion7.1.1 Build 2496486 avec VMware Tools 9.9.2 dans l’espoir de résoudre le problème de la fonctionnalité de dossier partagé apparu en premier au vers. 7.0.0.

Nous pouvons supposer qu'il existe une incompatibilité entre le module vmhgfs compilé et le nouveau noyau Linux 3.13.0-46-generic.

Nous avons essayé de réinstaller VMware Tools 9.9.0 et vers. 9.9.2 mais le module vmhgfs n'a pas pu être compilé et la fonctionnalité Dossier partagé ne fonctionne pas. Toutes les autres fonctionnalités de l'outil VMware fonctionnent correctement.

Dans Ubuntu 14.04 LTS, la commande de terminal lsmod | grep "vm." liste aucun module vmhgfs

Lors de la compilation du module vmhgfs, plusieurs "erreurs" proches de "/ vmhgfs-only /" et "make []:"

Voici l'une de nos revues terminales pour vous:

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'

Et/mnt/hgfs est vide, mais le partage de dossiers est activé pour le répertoire "Documents" de Mac, par exemple. Si nous exécutons vmware-hgfsclient dans un terminal, nous obtenons la liste des dossiers partagés mais/mnt/hgfs est vide.

Pourriez-vous corriger l'incompatibilité entre le module vmhgfs et le nouveau noyau Linux 3.13.0-46-generic, s'il vous plaît?

Meilleures salutations,

Toni

12
Ecoplacehunter

Les outils peuvent être patchés manuellement. Dans vmhgfs.tar, inode.c d_alias doit être remplacé par d_u.d_alias, remis à tar, puis recompiler les outils.

Un script qui fait cela (testé sur ubuntu 14.04 32 bits, vmware workstation 11.1 sur un hôte Windows) est ici:

#!/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

REMARQUE: cela rend les outils incompatibles avec les anciennes versions du noyau, c’est-à-dire 3.13.0-45.

13
Viljo Viitanen

J'ai eu la même expérience après la mise à jour vers le noyau 3.13.0-46. Selon vmware-tools-patches , aucun correctif n'est disponible.

Les correctifs ne s'appliquent pas encore avec les noyaux Linux suivants:

3.13.x

J'ai corrigé vmhgfs par:

  1. Revenir à la version 3.13.0-45 du noyau, soit par amorçage dans une version plus ancienne ou annulation de la mise à niveau du noya puis
  2. réinstallez vmware-tools .
1
Billiam Whatcott

Comme pour la réponse de @Will Wolcott, les récents changements dans vmware-tools-patches résout le problème pour moi sous 14.04 avec le noyau 3.13.

0
IsaacS