web-dev-qa-db-ja.com

Ubuntu Linuxカーネルを3.13.0-46-genericにアップデートした後、vmhgfsモジュールがVMware Tools 9.9.0(Fusion7.1)にコンパイルできませんか?

vmhgfsモジュールは、Ubuntu Linuxカーネルを3.13.0-46-generic(2015年2月)に更新した後、VMware Tools 9.9.0(Fusion7.1)およびVMware Tools 9.9.2(Fusion7.1.1 Build 2496486)にコンパイルできません(共有フォルダー機能VMware ToolsがMacOSX Yosemite(ホスト)上のUbuntu 14.04 LTS(ゲスト)で機能しないのですか?

こんにちはコミュニティとVMware開発チーム、

2015年2月13日、UbuntuとMacOSXの間の共有フォルダー機能が失われました。おそらく、Linuxカーネルを3.13.0-46-genericに更新すると、この問題が発生しました(ただし、UbuntuのVMware Toolsの既存のコンパイル済みvmhgfsモジュールは、Linuxカーネルの更新によって破損しません!)。古いLinuxカーネルでは問題なく、VMware Fusion 7.0.0とUbuntu 14.04 LTSおよびMacOSXを1年間使用します。 VMware Tools 9.9.2でVMware Fusion 7.1.0およびFusion7.1.1ビルド2496486に更新し、versで最初に発生した共有フォルダー機能の問題を修正することを期待しています。 7.0.0。

コンパイルされたvmhgfsモジュールと新しいLinuxカーネル3.13.0-46-genericの間に非互換性があると想定できます。

VMwareツール9.9.0以降を再インストールしようとしました。 9.9.2が、vmhgfsモジュールをコンパイルできず、共有フォルダー機能が機能していません。他のすべてのVMwareツール機能は正常に動作しています。

Ubuntu 14.04 LTSでは、ターミナルコマンドlsmod | grep "vm。" vmhgfsモジュールをリストしません

Vmhgfsモジュールのコンパイル中に、「/ vmhgfs-only /」および「make []:」の近くにいくつかの「エラー」がありました。

ターミナルジャーナルの1つを以下に示します。

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'

また、/ mnt/hgfsは空ですが、たとえばMacの「ドキュメント」ディレクトリでフォルダー共有が有効になっています。ターミナルでvmware-hgfsclientを実行すると、共有フォルダーのリストが取得されますが、/ mnt/hgfsは空です。

Vmhgfsモジュールと新しいLinuxカーネル3.13.0-46-genericとの非互換性を修正してください。

宜しくお願いします、

トニ

12
Ecoplacehunter

ツールは手動でパッチを適用できます。 vmhgfs.tarで、inode.c d_aliasd_u.d_aliasに変更し、tarに戻してからツールを再コンパイルする必要があります。

これを実行するスクリプト(32ビットubuntu 14.04、Windowsホスト上のvmwareワークステーション11.1でテスト済み)は次のとおりです。

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

注:これにより、ツールは古いカーネルバージョン、つまり3.13.0-45と互換性がなくなります。

13
Viljo Viitanen

カーネル3.13.0-46にアップデートした後も同じ経験をしました。 vmware-tools-patches によると、利用可能なパッチはありません。

次のLinuxカーネルでは、パッチはまだ正常に適用されていません。

3.13.x

vmhgfsを修正しました:

  1. 古いバージョンで起動する または カーネルのアップグレードをロールバックする のいずれかにより、カーネルバージョン3.13.0-45に戻す
  2. vmware-toolsを再インストール
1

@Will Wolcottの答えと同様に、 vmware-tools-patchesの最近の変更 は、カーネル3.13の14.04での問題を回避します。

0
IsaacS