ArchLinuxとVMwareで東方する環境を作る
ArchLinuxとVMwareで東方する環境を作る
MacbookAirはまぁいいとして、OSXに疲れてきたので、 そろそろArchLinuxをメインに使っていこうと思います。
環境
MacbookAir 11インチ(Late 2011) ArchLinux x86_64 VMware Player Linux ※MacbookAirへのArchLinuxインストールについてはここでは説明しません。Arch Wikiに全て書いてあります。むしろArch Linuxのインストールを楽しんでください。
目的
Arch Linux上でVMwareを動かし、その中にWindowsをインストールすることではありません。 東方シリーズを遊べる環境にするのが目的です。
手順
基本的にはArch Wikiに書いてある通りなので、 要点と、ちょっと頑張らないと出来なかった部分だけ。
Installing VMware in Arch Linux https://wiki.archlinux.org/index.php/VMware
結論から先に言ってしまうと、Arch Wikiの手順通りにVMwareをインストールしても、VMwarePlayer起動時にVMCIが有効でないとかなんとかで、エラーになったり、Direct3Dが有効にならなかったりで、東方は動きません。もちろん、その対処法もTroubleshootingの項に書いてあったり、ググれば出てくるので、それを念頭においた上で進めるとスムーズに行くと思います。 なので、本家とは若干異なる手順で書いていきます。
事前準備
東方はDirect3Dが動作する環境が必須です。 なので、MacbookAirに搭載されるグラフィックドライバ(xf86-video-intel)とmesaを入れておきます。
xorgの設定をして、Intelドライバが適切に動作するようにします。
/etc/X11/xorg.conf.d/20-intel.confを作成します。
Section "Device" Identifier "Intel Graphics" Driver "intel" Option "AccelMethod" "sna" EndSection
恐らく、同じMacbookAirならSNAを使っても問題ない。
linux-headersのインストール
Arch Linuxを使っている人達は、当然のように常に最新のカーネルを使っているかと思います。 で、この記事を書いている時点で、Kernelバージョンは3.13です。 なので、Arch Wikiに書いてある通り、vmnatモジュールのビルド時に失敗するのを防ぐため、vmware-netfilter.patchを当ててやります。
その前に、その作業の中で使われるvmware-modconfigではLinuxカーネルのソース一式がインストールされていることを前提としているので、linux-headersを公式リポジトリからインストールしておきます。
$ sudo pacman -S linux-headers
VMware Playerのインストール
先のArch Wikiの通り、本家VMware公式からVMware Player and VMware Player Plus for Linux 64-bitをダウンロードし、Arch LinuxにVMware Playerをインストールします。
$ chmod +x VMware-6.0.1-1379776.x86_64.bundle # ./VMware-6.0.1-1379776.x86_64.bundle --console
コンソールモードでインストールを進めます。
規約に同意します。2回。ちゃんと読みましょうね。
その後、"No rc*.d syle init script directories"とメッセージが表示され、何か入力を求めてくるかと思います。
残念ながら、その時、僕はラム酒を飲んでいて「ん?rc.d?systemdだろ。」と、/etc/systemdを指定してしまったような記憶があります。 正直、ここはよく覚えていませんが、その後色々ハマったこともあり、間違っていたような気もするし、間違ってなかったのかもしれません。 でもVMCI絡みでいじったファイルが/etc/init.d/vmwareなので、ここでは何も変更しなかったのかも。。 気になる人は調べてください。
インストール自体はこれで終わりです。
VMware Playerの設定
次にVMware Playerが正しく動作するように設定をしていきます。
まず、事前準備のところで触れた、3.13カーネルで動作するように、vmware-netfilter.patchを当てます。 Arch Wikiと同じです。
2014/04/16 追記です。
カーネルのバージョン3.13と3.14では手順も当てるパッチも変わるっぽい。なので、Arch Wikiを確認してください。 まぁ、この辺が頻繁に更新されて振り回されるのが大好きでドMなArchユーザなら当然ですよね! https://wiki.archlinux.org/index.php/VMware#VMware_module_patches_and_installation
$ curl http://pastie.org/pastes/8672356/download -o /tmp/vmware-netfilter.patch $ cd /usr/lib/vmware/modules/source # tar -xvf vmnet.tar # patch -p0 -i /tmp/vmware-netfilter.patch # tar -cf vmnet.tar vmnet-only # rm -r vmnet-only # vmware-modconfig --console --install-all
Systemdにサービスを登録
/etc/systemd/system/vmware.serviceを作成します。
[Unit] Description=VMware daemon [Service] ExecStart=/etc/init.d/vmware start ExecStop=/etc/init.d/vmware stop PIDFile=/var/lock/subsys/vmware TimeoutSec=0 RemainAfterExit=yes [Install] WantedBy=multi-user.target
これで、systemctlを使ってサービスを起動できますが、まだやることがあるので、もうちょっと待ってください。
vmciモジュールをロード出来るようにする
これも先に触れた通り、そのままVMware Playerを起動しても「/dev/vmciなんてディレクトリ無いよ」とかなんちゃらでエラーになります。 で、これもArch WikiのTroubleshootingの通り、/etc/init.d/vmwareを編集してあげます。
スクリプト内の以下の箇所を変更します。
関数名:vmwareStartVmci()
vmwareLoadModule "$mod" ↓ vmwareLoadModule "$vmci"
関数名:vmwareStartVsock()
vmwareLoadModule "$mod" ↓ vmwareLoadModule "$vsock"
関数名:vmwareStopVmci()
vmwareUnloadModule "${mod}" ↓ vmwareUnloadModule "${vmci}"
関数名:vmwareStopVsock()
vmwareUnloadModule "$mod" ↓ vmwareUnloadModule "$vsock"
/etc/init.d/vmwareを修正したら、vmware.serviceを起動してみます。
$ sudo systemctl start vmware.service
エラーにならなければOKです。
次はUSBゲームパッドをVMwareゲストOSで認識できるように設定します。
# vmware-usbarbitrator # systemctl restart vmware
これだけです。
ここまでで、VMware Playerは起動できるようになっているはずです。 試しにvmplayerを起動してみてもいいかもしれませんが、まだ設定は終わっていません。
今回は、既にVMwareゲストOSがVMXファイルで存在していることを前提とします。 もし、まだVMwarePlayerにWindowsをインストールしていなければ、先にゲストOSとしてインストールしてください。
そして、最後(多分)に、ゲストOSのVMXファイルを編集します。 ~/VirtualMachines/WindowsXP.vmwarevm/WindowsXP.vmxに以下を追記します。 ※ここのパスは人それぞれです。
mks.gl.allowBlacklistedDrivers = "TRUE"
これは、VMwareゲストOSからホスト上のグラフィックドライバの3Dアクセラレータを使用するみたいなオプションです(適当
さぁ、これでひと通りVMwareの設定が終わりました。 Windowsを立ち上げてUSBゲームパッドを挿して東方を起動してみましょう。
動きました!!!
しかもOSX+VMwareFusionで動かした東方とは比べ物にならないほどヌルヌル動いている気が。 つーかMavericks重いんじゃ。Lion以降重いんじゃ。
まとめ
今回は、Arch LinuxにVMware Playerをインストールし、 VMwarePlayerにWindowsをインストールし、なおかつWindows側でDirect3Dが使えるようにし、USBゲームパッドが認識出来るところまで設定をしました。
これでArch Linux使いの人は心置きなくOSXを捨てることが出来ますね!
あとがき
ナズーリンに惚れまくっててほんとつらい