RSS2.0

VMWare Player 上の Fedora 17 32 bit にて共有フォルダを有効にする

会社の Windows7 マシンに VMWare Player をインストールし、ゲスト OS として Fedora17 32bit を乗せてみたものの、共有フォルダ機能が有効になりませんでした。
よくよく vmware-config-tools.pl の出力結果を見てみると vmhgfs.ko のビルドに失敗していて、このままだと共有フォルダは使えないよーと言われていました。ネットで調べつつなんとか動くところまで持っていけたので、手順を載せておきたいと思います。

エラーはこんな感じ。
make[1]: ディレクトリ `/usr/src/kernels/3.6.3-1.fc17.i686' に入ります
  CC [M]  /tmp/modconfig-sKMWK6/vmhgfs-only/message.o
  CC [M]  /tmp/modconfig-sKMWK6/vmhgfs-only/request.o
  CC [M]  /tmp/modconfig-sKMWK6/vmhgfs-only/hgfsUtil.o
  CC [M]  /tmp/modconfig-sKMWK6/vmhgfs-only/cpName.o
  CC [M]  /tmp/modconfig-sKMWK6/vmhgfs-only/backdoorGcc32.o
  CC [M]  /tmp/modconfig-sKMWK6/vmhgfs-only/link.o
  CC [M]  /tmp/modconfig-sKMWK6/vmhgfs-only/rpcout.o
  CC [M]  /tmp/modconfig-sKMWK6/vmhgfs-only/tcp.o
  CC [M]  /tmp/modconfig-sKMWK6/vmhgfs-only/hgfsEscape.o
  CC [M]  /tmp/modconfig-sKMWK6/vmhgfs-only/file.o
  CC [M]  /tmp/modconfig-sKMWK6/vmhgfs-only/transport.o
  CC [M]  /tmp/modconfig-sKMWK6/vmhgfs-only/inode.o
  CC [M]  /tmp/modconfig-sKMWK6/vmhgfs-only/super.o
/tmp/modconfig-sKMWK6/vmhgfs-only/inode.c:121:4: 警告: 互換性のないポインタ型からの初期化です [デフォルトで有効]
/tmp/modconfig-sKMWK6/vmhgfs-only/inode.c:121:4: 警告: (‘HgfsDirInodeOperations.create’ 用の初期化付近) [デフォルトで有効]
/tmp/modconfig-sKMWK6/vmhgfs-only/inode.c:126:4: 警告: 互換性のないポインタ型からの初期化です [デフォルトで有効]
/tmp/modconfig-sKMWK6/vmhgfs-only/inode.c:126:4: 警告: (‘HgfsDirInodeOperations.lookup’ 用の初期化付近) [デフォルトで有効]
/tmp/modconfig-sKMWK6/vmhgfs-only/inode.c: 関数 ‘HgfsPermission’ 内:
/tmp/modconfig-sKMWK6/vmhgfs-only/inode.c:1820:7: エラー: ‘struct hlist_head’ は ‘next’ という名前のメンバを持っていません
/tmp/modconfig-sKMWK6/vmhgfs-only/inode.c:1820:7: 警告: 型が全く異なるポインタの比較でキャストを欠いています [デフォルトで有効]
/tmp/modconfig-sKMWK6/vmhgfs-only/inode.c:1821:19: 警告: 互換性のないポインタ型からの初期化です [デフォルトで有効]
make[2]: *** [/tmp/modconfig-sKMWK6/vmhgfs-only/inode.o] エラー 1
make[2]: *** 未完了のジョブを待っています....
make[1]: *** [_module_/tmp/modconfig-sKMWK6/vmhgfs-only] エラー 2
make[1]: ディレクトリ `/usr/src/kernels/3.6.3-1.fc17.i686' から出ます
make: *** [vmhgfs.ko] エラー 2
make: ディレクトリ `/tmp/modconfig-sKMWK6/vmhgfs-only' から出ます

The filesystem driver (vmhgfs module) is used only for the shared folder 
feature. The rest of the software provided by VMware Tools is designed to work 
independently of this feature.

If you wish to have the shared folders feature, you can install the driver by 
running vmware-config-tools.pl again after making sure that gcc, binutils, make
and the kernel sources for your running kernel are installed on your machine. 
These packages are available on your distribution's installation CD.
[ Press Enter key to continue ] 

環境

ホスト OS: Windows 7 32 bit, VMware Player 5.0.0
ゲスト OS: Fedora17 32 bit (3.6.3-1.fc17.i686)

前提条件

そもそもカーネルヘッダーや gcc がないとビルドできないので、これらが入っているか確認します。(面倒くさいのでインストールコマンドを叩いてます)
# yum install -y gcc make binutils perl kernel-devel-`uname -r` kernel-headers-`uname -r`

vmhgfs.ko をビルドする

ゲスト OS 上で VMWare Tools をインストールすると展開されるファイルのひとつに
/usr/lib/vmware-tools/modules/source/vmhgfs.tar
があります。
これに含まれる filesystem.c 内で呼ばれている d_alloc_root が kernel 3.4x から d_make_root に変更されたそうで、VMWare Tools のソースでも置き換える必要があります。

手順はこちらを参考に。
# cd /usr/lib/vmware-tools/modules/source/
# tar xf vmhgfs.tar
# sed -i 's/d_alloc_root/d_make_root/' vmhgfs-only/filesystem.c
# tar cf vmhgfs.tar vmhgfs-only
# rm -rf vmhgfs-only

さらに、VMWare のコミュニティで配布されているパッチを当てます。
# sh ~/Download/vmware_90_linux-3.6.x_patcher.sh
------------------------ analysing module: vmblock ------------------------
------------------------ applying patch for vmblock ------------------------
patching file vmblock-only/linux/dentry.c
patching file vmblock-only/linux/inode.c
------------------------ cleaning up /tmp/tmp.5Yvlxgkxyp ------------------------
------------------------ analysing module: vmhgfs ------------------------
------------------------ applying patch for vmhgfs ------------------------
patching file vmhgfs-only/dentry.c
patching file vmhgfs-only/inode.c
patching file vmhgfs-only/page.c
------------------------ cleaning up /tmp/tmp.F0WQCcQPqH ------------------------
------------------------ analysing module: vmsync ------------------------
------------------------ applying patch for vmsync ------------------------
patching file vmsync-only/sync.c
------------------------ cleaning up /tmp/tmp.EqysvIl5Y6 ------------------------
Success!  Now run vmware-config-tools.pl again, hopefully things go better.

これで再度 vmware-config-tools.pl を実行すると、vmhgfs.ko がビルドされました。
# vmware-config-tools.pl

あとはいつもどおり、VMWare Player で共有フォルダを設定し、ゲスト側をリブートすれば /mnt/hgfs/ に共有フォルダがマウントされます。おつかれさまでした。

  Linux  コメント (0)  2013/02/04 21:16:40


公開範囲:
プロフィール HN: ももかん
ゲーム作ったり雑談書いたり・・・していた時期が私にもありました。
カレンダー
<<2019, 11>>
272829303112
3456789
10111213141516
17181920212223
24252627282930