Thursday, July 19, 2012

vmware playerをubuntuにインストール

[Problem] cannot compile vmnet(virtual network), then failed to boot vmware player
vmware player 64bit版をダウンロードしてubuntu 12.04にインストールいたしました。
インストール自体は下記スナップショットのように問題なく実施出来ました。

それではvmware playerを起動してみます。
「初回は必要コンポーネントのコンパイルを実施します。」というダイアログが出てきて、
パスワードを求められました。
パスワードを入力しまして、下記の通りコンパイルが実施されているのですが、
一部失敗しています。
最後にエラーと出てきて、/tmp/vmware-root/***.logを見てください、と指示が出ます。


logファイルには下記の通り書いて有ります。
2012-07-19T23:34:16.062+09:00| vthread-3| I120: Building module with command: /usr/bin/make -j -C /tmp/vmware-root/modules/vmnet-only auto-build SUPPORT_SMP=1 HEADER_DIR=/lib/modules/3.2.0-26-generic/build/include CC=/usr/bin/gcc GREP=/usr/bin/make IS_GCC_3=no VMCCVER=4.6
2012-07-19T23:34:24.790+09:00| vthread-3| I120: Failed to compile module vmnet!

では下記が解決編です。
[Resolved] Patch vmware modules to fix bug.
エラーメッセージをgoogle先生にぶちこむと最初に出てきたのがvm communityの掲示板です。
http://communities.vmware.com/thread/400790
これは本当にためになります。
パッチを当てろと書いてありました。
ではそのとおりにします。

1.パッチファイルのtarファイルをダウンロードしてきます。
http://weltall.heliohost.org/wordpress/wp-content/uploads/2012/01/vmware802fixlinux320.tar.gz
2.tarを展開します。ダブルクリックすればいいでしょう。
3.展開したファイルの中に、拡張子が.patchのファイルがあります。これを編集します。
  3行目のこの記述をvmwareのバージョン番号に変更します。
plreqver=4.0.2 
→plreqver = 4.0.4
4.最後にこの.patchファイルを起動します。


user@ubuntu:~/ダウンロード$ sudo ./patch-modules_3.2.0.sh
patching file vmnet-only/filter.c
patching file vmnet-only/netif.c
patching file vmnet-only/userif.c
Stopping VMware services:
   VMware Authentication Daemon                                        done
   VM communication interface socket family                            done
   Virtual machine communication interface                             done
   Virtual machine monitor                                             done
   Blocking file system                                                done
(中略)

Using 2.6.x kernel build system.
make: ディレクトリ `/tmp/vmware-root/modules/vmnet-only' に入ります
make -C /lib/modules/3.2.0-26-generic/build/include/.. SUBDIRS=$PWD SRCROOT=$PWD/. \
  MODULEBUILDDIR= modules
make[1]: ディレクトリ `/usr/src/linux-headers-3.2.0-26-generic' に入ります
  CC [M]  /tmp/vmware-root/modules/vmnet-only/driver.o
  CC [M]  /tmp/vmware-root/modules/vmnet-only/hub.o
  CC [M]  /tmp/vmware-root/modules/vmnet-only/userif.o
  CC [M]  /tmp/vmware-root/modules/vmnet-only/netif.o
  CC [M]  /tmp/vmware-root/modules/vmnet-only/bridge.o
  CC [M]  /tmp/vmware-root/modules/vmnet-only/filter.o
  CC [M]  /tmp/vmware-root/modules/vmnet-only/procfs.o
  CC [M]  /tmp/vmware-root/modules/vmnet-only/smac_compat.o
  CC [M]  /tmp/vmware-root/modules/vmnet-only/smac.o
  CC [M]  /tmp/vmware-root/modules/vmnet-only/vnetEvent.o
  CC [M]  /tmp/vmware-root/modules/vmnet-only/vnetUserListener.o
  LD [M]  /tmp/vmware-root/modules/vmnet-only/vmnet.o
  Building modules, stage 2.
  MODPOST 1 modules
  CC      /tmp/vmware-root/modules/vmnet-only/vmnet.mod.o
  LD [M]  /tmp/vmware-root/modules/vmnet-only/vmnet.ko
make[1]: ディレクトリ `/usr/src/linux-headers-3.2.0-26-generic' から出ます
make -C $PWD SRCROOT=$PWD/. \
  MODULEBUILDDIR= postbuild
make[1]: ディレクトリ `/tmp/vmware-root/modules/vmnet-only' に入ります
make[1]: `postbuild' は更新済みです
make[1]: ディレクトリ `/tmp/vmware-root/modules/vmnet-only' から出ます
cp -f vmnet.ko ./../vmnet.o
make: ディレクトリ `/tmp/vmware-root/modules/vmnet-only' から出ます
Built vmnet module 


さてインストール出来ましたので、
vmware playerを起動しましょう。
うまく行きました。


2012/7/19追記:
VMを起動しようとするとCould not open /dev/vmmonが出ます。
これを回避するには、vmwareサービスを起動しなくてはなりません。
下記コマンドを実行します。
sudo /etc/init.d/vmware start

下記が参考になります。