2016年11月5日土曜日

GPD WINでOS X!(※VMware)


表題通りGPD WINでosx86(Hackintosh)の夢を見た!(お約束)というお話。

構成的にネイティブ起動は困難か可能でも実用性が極端に低そうなので、今回はVMwareへのインストール試行となっています。

VMwareなので本来ホスト環境に関係無く動くはずなのですが、GPD WIN特有とも言えるハマりポイントがいくつかあったのでそこに重点を置いて話を進めていきます。


はじめに


本記事で対象とするもの・しないもの


本記事では、リアルMac・osx86機(実機・VM問わず)いずれかのOS X環境が既にある前提で話を進めていきます。インストールプロセスを全てGPD WIN上で完了させるにはかなりの苦痛を伴うことと、これらの環境を用意することはGPD WIN特有の話ではないためです。

また、「VMwareにOS Xを入れる」手順そのものについてはネット上にいくらでも情報があり、縮小再生産になってしまうためほとんど触れません。

対象OSはSnow Leopard(10.6.8)〜Sierra(10.12.1)です。実際のところ10.7と10.8では動作確認していませんが前後のバージョンが動いているため問題ないと思います。10.5も動くとは思いますがまあ動かしたい人はいないでしょう・・・

OSの呼称は10.7までは「Mac OS X」、10.8からは「OS X」、10.12からは「macOS」と変遷がありますが、本記事では総称して「OS X」としています。


仮想マシン作成・インストール


ということで本記事のアプローチとしては「別マシン上で仮想マシン(VM)を一通りセットアップ→GPD WINにコピーして起動」というだけになります。

仮想マシン作成部分についてはほぼ割愛しますが、オススメはリアルMac or osx86実機にインストールしたVMware Fusion上で普通にインストールするというものです。

OS Xのバージョンごとの差異は基本的にありません。Snow Leopardのみ、当時のOS Xがサーバー版以外の仮想化がブロックされていた都合上対策が必要になるので、「efi64-srvr.rom」でググってその対策をしてください。

Macでセットアップ


VMware FusionはMac用ということでデフォルトでOS Xのインストールが可能になっていて、インストール方法もApp Storeからダウンロードしたインストーラーを指定するだけと非常に簡単なので(というか裏技でもなんでもない)一番綺麗に作れます。
(VMware Fusion上で作った仮想マシンでもWindowsのVMware Workstation Playerで普通に動作します。そのための仮想化ですしね。)

VMware Fusion自体は有償製品ですが、30日間の無償体験版があるのでGPD WIN用仮想マシン作成目的であれば十分だと思います。普通に便利なので自分は常用してますが。

既存VMから構築


Windows環境+既存のosx86仮想マシンでセットアップする場合は、仮想マシン上でOS XインストーラーをDLしてcreateinstallmediaでインストーラーを作成したりする必要があるのでちょっと手間です。といってもこの手順を踏む人は既にセットアップ経験があるわけなので、そこまで苦もなく用意できるとは思います。

ゼロから構築


一番辛いのはOS X環境がまったく無いパターンで、この場合Lion以降はインストーラーをApp StoreからDLするしかない=OS X環境が無いとインストーラーが用意できない、という鶏卵状態になってしまうため、わざわざAppleからSnow Leopardのインストールディスクを買ってそこからセットアップする必要があります。

実際、未だにSnow Leopardが売っているのはApp Storeの無いLeopard以前のMacに最新OSをインストールする踏み台にするためだけだと思われます。

VMwareのバージョンについて


ちなみに、Windows環境でVMware Workstation Playerを利用する場合、古いバージョンで無いと動かないという話もありますが、少なくとも自分の場合vmxファイルに

smc.version = "0"

と記述したら問題なく動きました。


CPU偽装


これで作った仮想マシンをコピーすれば起動・・・するわけではなく、ちょっとした修正が必要になります。

GPD WINのCPUはAtom x7-Z8700ですが(Z8750版なんて知らん)、OS XではAtomをサポートしていません。VMwareと言えどもCPUに関しては完全仮想化せずゲストOSから透過的に見えるのでそのままでは起動しません。

ということで、vmxファイルに以下の行を追加してCPUを偽装します。

cpuid.1.eax = "0000:0000:0000:0001:0000:0110:1010:0101"

vmxファイルは仮想マシンのフォルダ(仮想マシン名.vmwarevm)内に存在する設定ファイルで、普通のテキストファイルなのでメモ帳でもなんでも修正できます。.vmwarevmはMacからだとファイルに見えますが、右クリック→「パッケージの内容を表示」でフォルダとして開けます。


グラフィックスドライバインストール


さて、ここまでの設定で既にGPD WINで起動するようにはなっているはずですが、1つ問題があります。

最新のVMware Toolsで入るOS X用グラフィックスドライバには解像度の制約があり、1024x768以下の解像度に設定できないという仕様になっています。そのため、GPD WIN上で全画面表示しても解像度が1280x768となってしまい画面からはみ出してしまいます(スクロールバーが表示される)。

そのため、オープンソースのVMsvga2ドライバを導入する必要があります。これはまだVMware FusionでOS Xが正式サポートされていなかった頃のドライバのため古いですが、少なくとも今回の目的(解像度設定)に関してはここにある「VMsvga2_v1.2.5_OS_10.9.pkg」で問題なく動作しました(10.6含む)。

ドライバのインストールはOS Xから普通に入れるだけです。新しめのOS Xだと未署名パッケージがデフォルトでブロックされますが、その場合は「システム環境設定」→「セキュリティとプライバシー」→「このまま開く」で入れられます。

El Capitan以降(=El CapitanとSierra)ではこれだけだとドライバがロードされずもう一手間必要ですが、これについては長くなるので後述します。


ドライバをインストールして再起動し、解像度を設定します。


このとき、そのままではGPD WINの解像度である「1280x720」が選択肢に出てきませんが、設定画面でAltを押しながら「変更」を押すことで1280x720を含めた非標準の解像度が選択できるようになります。


GPD WINで起動


ここまでセットアップできていれば、仮想マシンはGPD WINで起動して使える状態になっているはずです。

この仮想マシンをGPD WINで起動させるためにGPD WIN側でもVMware Workstation Playerをセットアップします。インストール自体は公式サイトからDLしてきたインストーラーを実行するだけです。VMware Workstation Playerは個人・非商用なら無償で使えます。

Mac向けVMware Fusion以外のVMwareではOS Xの実行がブロックされているので、Unlockerを適用する必要があります。osx86界隈に触れていてInsanelyMacのアカウントが無いことはないでしょうが、ダウンロードは要アカウントです。

Unlockerは解凍したフォルダに入っている「win-install.cmd」を管理者として実行するだけで適用できます。

この時点でVMware Toolsを適用していない場合は、toolsフォルダにdarwin.isoがDLされるのでこれを仮想マシンにマウントしてインストールできます。

Unlockerの適用まで終わった状態で、コピーしてきた仮想マシンの.vmxファイルをダブルクリックすれば起動するはず!


VRAM設定


必須ではない設定の話です。

公式ドライバに代えて古いグラフィックスドライバを入れている影響で、VRAMが通常128MB割り当てられるところ32MBになってしまっています。この設定を変更するには、

svga.autodetect = "FALSE"
svga.vramSize = 134217728

とvmxファイルに記述すればOKです。(134217728 bytes = 128MB)
ただし、GPD WINは解像度が低いため変更しても特に体感に影響はありませんでした。
(どちらかという32MBでは絶対的にVRAMが不足する高解像度液晶向けの設定だと思います)


Yosemiteの描画が重い対策


ここからは各OS Xバージョン固有の対策について書いていきます。

あまりGPD WINは関係ないですが、VMwareで動かすYosemiteは動作が重いことを抜きにしても描画がやたらカクカクしています。

詳細な原理については省きますがこの問題はbeamoffというツールで解決できます。ここのリンクからbeamoff.zipをダウンロードして中にあるbeamoffアプリを起動すれば(すぐに自動終了した後)軽快になります。

一度起動すればシステム終了まで有効なので、ログイン項目に入れておけばOK。

El Capitan以降では残念ながらbeamoffは効かないようですが、少なくとも自分の環境では逆にbeamoffを導入しないままでもbeamoff導入後のYosemite並みには軽快に動きました。

と言っても、軽快に動いたというのは仮想マシンをセットアップしたデスクトップosx86機での話で、GPD WIN+Sierraだとbeamoffどうこう以前に重いのでよくわかりませんw


El CapitanとSierraでのドライバ有効化


さて、先述のグラフィックスドライバですが、El Capitan以降のOS Xではデフォルトで未署名ドライバのロードがブロックされたためロードされません。

この機構(SIP)をオフにする必要があるのですが、セキュリティ機能のため通常起動時は変更できずリカバリモードから変更する必要があるので結構面倒です。リカバリモードというだけで面倒ですが、VMwareだとリカバリモードに入るのがそもそも実機より面倒です。

というわけでここは詳細に説明していきます。

まず、リカバリモードを有効化&起動するために、vmxに以下の内容を追記します。

bios.forceSetupOnce = "TRUE"

これにより、次回起動時に1回だけOS Xが起動せずBIOS(UEFI)に入ることができます(この行は起動時に消されるので、その次はまた通常通りOS Xが起動します)。


起動するとこんな画面になると思います。この時点ではそもそもリカバリーモードがブートオプションに入っていないので手動で追加する必要があります。ですので、「Enter Setup」を選択します。




「Configure boot options」「Add boot option」と選択していくと「Recovery HD」というパーティションが現れるのでこれを選択します。



その後は「com.apple.recovery.boot」「boot.efi」を選択。



設定名を入力する画面になるので適当に(この図では「recovery」)入力して「Commit change and exit」。



「Exit the Boot Maintenance Manager」でトップに戻ると「recovery」が選択できるようになっているので、選択して起動します。

以後は、BIOSに入るだけでrecoveryが選択できるようになっているはずです。

リカバリーモードでは通常起動より起動が遅いので我慢して待ちます。


起動するとこのような画面になるので、メインウインドウは無視してターミナルを開きます。

ここからスクリーンショットを撮り忘れましたが、開いたターミナルで

csrutil disable
reboot

と入力すればSIPを無効化した上で再起動できます。以後、同じ手順でenableにするまではSIPが無効になるので、グラフィックスドライバがロードされるようになるはずです。


まとめ


長くなってしまいましたが要点をまとめるとこんな感じ。

1. vmxファイルに以下を記述する
smc.version = "0"
cpuid.1.eax = "0000:0000:0000:0001:0000:0110:1010:0101"
2. VMsvga2ドライバをインストールする

3. beamoffを導入する(Yosemite)

4. リカバリーモードでSIPを解除する(El Capitan / Sierra)

他は特にGPD WIN固有の設定は不要だと思います。


リソース設定


ここからはインストールに関係ない余談になります。

割り当て


仮想マシンへのリソース割り当てですが、
  • CPU:4コア
  • メモリ:2048 〜 3072MB(2〜3GB)
とかなり多目に割り当てた方が良いかと思います。

CPUに至っては全コア割り当てになりますが、Atom2コアはさすがに重荷であることと、そもそもGPD WINの性能でWindowsホストとOS Xゲストでマルチタスクをこなすのは無理なので、最初からWindowsはOS X稼働専用と考えた方が良いです。

メモリは3GB割り当てると推奨2GBであるWindowsホストの動作に支障が出かねないレベルですが、感覚的にはYosemiteくらいから2GBでは不足感が出てくるのでギリギリまで盛りたい感じです。GPD WINに8GBモデルあったら心置きなく4GB盛れたけどな!

4コア認識されない?


セットアップ中に遭遇した問題なのですが、コア割り当てを4にしても反映されないことがありました。

VMwareの問題か手でvmxを書き換えてしまったのか(うろ覚え)、割り当てコア数の設定であるnumvcpusは"4"である一方cpuid.coresPerSocketが"2"だったことが原因でした。

cpuid.coresPerSocketが2のままだと、ソケット当たり2コアになってしまうので「デュアルコアCPUを2つ搭載して合計4コア」という状態になってしまいます。一見それはそれで問題なさそうなんですが、Geekbenchマルチコアスコアが見事に半減したので、

cpuid.coresPerSocket = "4"

として4コアCPUに修正する必要がありました。

実は冒頭のスクショはその問題を見落として2CPU表示になっちゃってます。

バージョン別使用感


ここからは10.6、10.9〜10.12までインストールしてみた感想を。使用感と言ってもまだSafariで適当にブラウジングしたくらいで使い込めていないですが。

以前VOYO V3でも試しましたが、CPU・メモリが最終的に完全同スペックになったので使用感はほぼこれの焼き直しです。

10.6 Snow Leopard


ちょっとびっくりするくらい軽快です。GPD WIN自体がサイズの割にスペック盛っていることもあり、GPD WINの見た目から受ける印象だと仮想化ではなくネイティブ起動しているの?と思えるレベル。根拠も無く言うとCore DuoのMacBookか、初代MacBook Airくらいでしょうか。

VAIO Pに当時最新OSだったSnow Leopardを無理矢理ネイティブインストールしていた頃よりは確実に速いです。

これでバリバリ使えればいいんですが、VOYO V3のとき書いた通り現在では動かせるアプリがほとんど無いのが辛いところ。7年前のOSだけあってUIも若干古さを感じます。

10.9 Mavericks


フラットデザイン移行前最後のバージョンということで試しました。ちなみに10.7と10.8を試していないのは、10.7から導入されたスキュアモーフィックデザインが嫌いで10.9から排除されたためだったりしますw

10.10以降UIが刷新されて重くなった印象があるので良い落としどころかなと思いましたが、後述の10.10が案外重くなかったので軽快さ・新しさ共に微妙な印象に。

10.12がリリースされたことでサポートも切られてしまったので、フラットデザインが嫌いでなければ特にメリットは無いかもしれません。

10.10 Yosemite


先にEl Capitanを試していて結構重かったので期待していなかったんですが、beamoffさえやっていれば案外軽快でびっくりしました。

もちろん期待値比での軽快なので、Snow Leopardよりは遥かにもっさりしていますがMavericksとあまり変わらない感じで使えました。

恐らく残り1年とはいえ一応サポート中のバージョンなので、重さと実用性ではベストバランスな気がします。

10.11 El Capitan


見た目的にはYosemiteからあまり変わっていないのに何やら重くなっています。Sierraが出た今最新OSという称号も失ってしまったので、これを選ぶ理由はあまり無さそう。

10.12 Sierra


El Capitanに輪をかけて重いです。一体El Capitanから何が変わるとこんなに重くなるのか見当も付きませんが、フォルダ一つ開くにも虹色マークで待たされる感じで使いものにならないです。

実は最初先述のCPU設定をミスっていて2コア認識になっていたので凄まじく重く、ちゃんと設定し直したら少しはマシになったのですが、それでもやはり重いものは重いのでウケ狙い以外には使えそうにないです。

総評


軽快さ重視ならSnow Leopard、実用性重視ならYosemite、というあたりじゃないでしょうか。あえてGPD WINでWindowsにできてOS Xにできることで何か実用したいことがあるか、というのは疑問の余地がありますがw


さいごに


以上、GPD WINでOS Xを動かしてみる、という話でした。

osx86に関してはマシンを組む/買う度にとりあえずやってみる恒例行事と化しているので、飲み会のネタにでもなればくらいで全然期待していなかったんですが、Yosemiteくらいまでは割と普通に動いちゃったので驚きました。

普段色々なメモ書きやスペック表的なものをiWorkのNumbersで作っているので、iCloud共有してGPD WINから開いて軽く編集する、くらいだったら全然実用できちゃいそうです。

ただ、タブレットタイプのMacが存在しない都合上、Windowsと違いUIがタッチにまったく最適化されていないのでボタンが小さかったりし、その点はJoyToKeyでマウス速度を可変できるようにするなどして結構頑張らないと操作性が厳しいです。

また、ストレージも悩みどころです。クリーンインストール時点で10GB以上食うので、使っていくと64GBのGPD WINではかなり圧迫されます。しかしながらMicroSDスロットがそんなに速くないため、仮想マシンをMicroSDに置くのもあまり現実的ではないです。そのため、小型USBメモリに置いて刺しておくのが落としどころかと思います。

ちなみにネイティブインストールについてはかなり困難だと思うので着手しないかもしれないです。また、より速く動かすという観点だと軽量Linux+VMwareで動かしたいところですが、軽く試した限りだとLinuxをネイティブで動かすのもちょっと困難が多そうなので保留中です。

「GPD WINに飛びついて」「どんなデバイスでもOS Xを動かしたがる」人が果たしてどれだけいるかかなり疑問ですが、そういう人にとって有益なネタになっていたら幸いです。

1 件のコメント:

  1. 非常に興味深く面白く
    自機でも試してみようと思いました。
    どうもありがとうございます。

    返信削除