VMware Workstation 15 Playerを使ってYoctoビルド用Ubuntu環境を作る
Raspi用のYocto Linuxをビルドしてみたくなったので、Win10ProにUbuntuの仮想環境を作った作業をメモします。そんなに難しいとか、検索に出てこない内容があるという訳でも無いのですが、個人的にRyzenの仮想化関係のConfigは知らなかったのでメモ。
VMwareだのUbuntuだの、ダウンロードリンク等は変わることがあるので記載しません。
導入環境は、この前までに組んだ自作機です。
【CPU】AMD Ryzen 7 2700@3.2GHz
【メモリ】Crucial DDR4-2666 16GB
【マザーボード】ASRock B450 Steel Legend
【SSD】Intel SSD 660p SSDPEKNW512G8
【グラフィックボード】玄人志向 Geforce GTX1060 6GB
【OS】Windows 10 Pro 1809(Build 17763.379)
とりあえずUbuntuの環境整備まで書いていきます。
そういえばグラフィックがGTX1060になってますが、格安で譲ってもらったもの。結局ゲームをするわけでもないのですが、エンコードにCUDA使えるようになったら早いのかな?(未検証)
YoctoがビルドできるLinuxの構築までを書くので、Yoctoの説明はここではしません。
必要なもの
1. ストレージの空き容量
ホスト側(Windows側)のSSDなりにそれなりの空き容量が必要になります。VMwareとUbuntuのセットアップはもちろんのこと、YoctoでRaspi用のminimalイメージを作っても60GB位食います。当然Packageを追加してビルドすると、100GB位は簡単に飛んでいきますので注意。
無料で使える条件は非商用に限ります。「VMware Player」で検索すると出てくる、VMwareのHPから取得。
3. UbuntuのISOイメージ
「Ubuntu」で検索して、Ubuntu18.04LTSを選択してダウンロード。1.85GBくらい。2019.4現在18.04.1のリンクがあるのに、404で落とせなかったので、リポジトリをたどってみると18.04.2が落ちていたのでそちらを使用。
VMwareのセットアップ
インストーラの指示通りで、特に設定は変えていません。
で、VMware Playerを起動すると以下の画面になります。
[新規仮想マシンの作成]をクリックすると、仮想環境構築の設定画面に進みます。
新しい仮想マシン ウィザードが開いたら、インストーラ ディスク イメージ ファイルの部分に、先にダウンロードしておいたUbuntuのISOイメージを指定。
そうすると自動でUbuntuが検出されるので、後々のインストールが大変ラクです。
次に進むと、Ubuntuのユーザ情報をウィザードで設定可能となります。
ここでPC名・ユーザ名・パスワードを設定。
仮想マシン名の設定。これはVMwareで管理するときに見える名前のこと。「場所」というのは、仮想マシンのコンフィグの置き場。
仮想ディスクのサイズを設定。
ここは初期設定が20GBなので、YoctoでLinuxを作るとか、何かの開発環境を立ち上げるっていうときには少し不足します。あとで足したり変更することもできますが、ハナから100GBに変更しておきます。
設定結果は以下の通り。
メモリが少ない気もしますが、これについてはあとでいくらでも変更できるのでとりあえず保留。
Ubuntuのセットアップ
BIOS/EFIで仮想化がちゃんと有効になっていて、特に設定変更していなければLanguageなどを選択するだけで下記のようにインストールが勝手に始まり(勝手に終わり)ます。
(完全に自動でInstallまで通せないのが惜しい)
Troubleshoot1(Hyper-V/Windows Hypervisor Platform設定変更)
ところで、特に設定変更~と書いたのは以下の状態になったので。
仮想マシンを起動しようとすると、こんなエラーが出て先に進みません。
ググると仮想化関連で何か引っ掛かっているっぽい事が判明。
自分の環境における原因は、Windowsの機能でHyper-VとWindows Hypervisorを有効にしていたからでした。(Android Studioを使うときにオンにしていた)
赤枠内のチェックボックスを外してOK、再起動で反映されます。
Windowsの提供する仮想化Platformに、VMwareが対応していない?と邪推しますが、そのあたりの詳細は正直なところサッパリです。
Android Studio で仮想Androidマシンを立ち上げるには、逆にこれをオンにしておかないとダメっぽいので少し悩みどころ。
Troubleshoot2(AMD-V有効化)
EFIでAMD-Vを有効にしていない場合も、以下のようなエラーが出て同じように起動できません。
こっちの場合は対処法が詳しく書いてあるので、その通り作業します。
ASRockのUEFI画面で、アドバンスドのCPU設定以下に「SVM Mode」とあるのでこれをEnableにすればOK。(SVMってなんだ?→AMD Secure Virtual Machineの略らしい)
てか、これ既定で有効になってないんですね...(
これでRyzenのHW仮想化が有効になり、VMwareで仮想マシンを立ち上げる準備が整ったはずです。
Boot後にタスクマネージャーのCPU欄で、仮想化が「有効」になっていれば大丈夫のハズ。
インストールが終わるとログインプロンプトになっています。早い!
インストール直後は、800x600とかいう実用に耐えない解像度になっているのでデスクトップ画面左上のActivitiesをクリックして、resolu..と入力。
Displayの設定で解像度をいじれるのですが・・・
解像度が低すぎて見切れているので、ウィンドウ上部をつまんで移動すると見えます。
あとは適時解像度を変更すればOK。
これで、仮想環境でUbuntuをとりあえず使える状態になりました。
(単純にVMwareのウィンドウをつまんで拡大縮小すれば解像度変わると気づいたのは後の話)
Yoctoでビルドする対象をRaspiと書いていましたが、手元にあるのは初代のModelBなのを思い出して今更...と思ってしまい環境整備だけで終わりそうな予感・・・