Windows 10 Hyper-V環境でRaspberry Pi インストールしてNode-REDまで使えるようにするメモ
Windows 10 Hyper-V環境でRaspberry Pi インストールしてNode-REDまで使えるようにするメモです。いずれ行けるかな?と思っていて、試したところ、拍子抜けするくらい、あっさり入りました。
今回インストールする環境
今回はインストールする環境は以下の通りです。

- OSはWindows 10 Pro
- Windows 10 1709 Fall Creators UpdateしたPC
- ネットワークの設定は規定のスイッチで母艦のLANをそのまま使う設定
- Debian with Raspberry Pi Desktopはリリース2017-11-16を使う
- RLoginなどWindowsからRaspberry Pi側でSSHが叩ける状態
という環境です。2018/03/18現在の、自分のPCで行います。

予感としては、本来であれば、Debian with Raspberry Pi Desktopは既存のノートPCに上書きインストールして使えるISOファイルですので、無事インストールディスクとして機能できればちゃんと動く気がします。

そして、Hyper-VのようなWindows 10 Pro動作という少々限定的な環境でなくても、VirtualPCやDockerのような仮想マシンが動作する環境であれば、今回試そうとしているDebian with Raspberry Pi Desktop仮想マシン環境でも動作する可能性は高いでしょう。
では、今回は、Hyper-Vで試してみましょう。
Debian with Raspberry Pi Desktopを準備
Debian with Raspberry Pi Desktopをダウンロードして保存しておきます。
https://www.raspberrypi.org/downloads/raspberry-pi-desktop/

Hyper-Vで仮想マシンをつくる

ウィザードで仮想マシン設定をしていきます。

仮想マシンを別の場所に格納するチェックで、任意のフォルダに置くようにしています。

世代は第1世代で大丈夫でした。
メモリは贅沢に5120MB(5.0GB)。ハードディスクは127GBを確保。

ネットワークの設定は規定のスイッチで、私の場合は母艦のLANをそのまま使う形にしてます。
規定のスイッチまわりのとてもわかりやすい記事はこちら。
Windows 10 1709(Fall Creators Update/RS3) Hyper-V の NAPT 仮想スイッチ
最近のHyper-Vはこのへんも悩まずやれて素敵だ。

仮想ハードディスクは自分が分かりやすい場所に置きます。自分の場合は仮想マシンの格納場所の配下において、一気に消せるようにしてます。

インストールディスクはダウンロードした Debian with Raspberry Pi Desktop のISOファイルを指定。
起動してインストール

起動してみましょう。

Graphical Install をクリック。
余談:Run with persistence とは?

仮でみるなら Run with persistence ですが、今回はしっかりインストールしたいので確認程度で。
こちらの記事がわかりやすかったです。
PIXEL for x86 (RaspberryPiのデスクトップ環境) - Qiita
Run with persistence : 設定とかファイル変更とか、保存される
Run and reset persistence : 保存されたファイルを消去(リセット)して、Persistenceで起動
Run without persistence : 設定・ファイル変更を保存しない。
インストール開始
いよいよ仮想マシンの中の動作です。

まず、Keymap 画面ではじまるので、英語で良いならこのまま進んで良いんですが、結構デリケートな処理が取り違うとヤバイので、一旦日本語表記にしましょう。
GoBackで一旦戻ります。

Choose Languageを選択。

日本語選択。

なぜかリストが英国のヨーロッパではじまるので、戻る。

アジアを選択し直し。

日本を選択。

キーボード設定を英語から日本語に。

日本語に。

マウント開始。

ディスクのパーティションを聞かれるので、ガイド - ディスク全体を使う。を選択。

sdaを選択。これは仮想ディスクを指してます。

初心者なので一番の上のやつ。

パーティショニングの完了とディスクへの変更の書き込みを選択して、続ける。

いよいよ直前の画面。

はい に選択。で、続ける。

インストール開始。

ごりごりインストール続行。

途中でGRUB ブートローダーのインストールを聞かれます。

/dev/sda を選択して続けます。

インストール完了です。

インストールの後処理を待ちます。(少し時間がかかります)
インストール後の起動
いよいよインストールの起動です。

起動時に先ほどのGRUBブートローダーがよしなにやってくれます。

少し待つと起動します。

無事起動できました!これVNCじゃないですもんね!w
まずSSHオン
つづいて、最低限のセットアップのために、SSHをオンにします。

IPを確認しておきます。Hyper-V側でネットワークが規定のネットワークに通じているならIPが配布されているはず。

設定画面に行きましょう。

デフォルトではオフでした。

Enabled にしてOKを押します。

ipconfigで自分のIPを確認します。

SSHツールでつないでみると、無事つながりました。
まずアップデート
sudo apt-get update

つづいてアップグレード
sudo apt-get upgrade

ざくざくインストール。
Node-REDインストールに便乗してNode.jsもセットアップ
update-nodejs-and-nodered コマンドを使ってNode-REDまわりインストールします。
bash <(curl -sL https://raw.githubusercontent.com/node-red/raspbian-deb-package/master/resources/update-nodejs-and-nodered)
このコマンドを使って、最新の update-nodejs-and-nodered コマンドを利用します。

yes ですすむ。

インストールしていきます

最新の Node.js 8系が入りました(2018/03/18現在)

無事インストールできました。
Node-RED起動
node-red
起動してみます。

Hyper-Vを動かしている母艦のほうで http://仮想マシンのIP:1880/で叩いてみます。

無事、デプロイもinjectノードによる動作確認もできました

ためしに dashboard ノードも入れてみます。

いつものダイアログ。

Raspberry Pi 3 よりも待ち時間なし。
現在のWindows 10マシンはUnity開発できるように強化してるやつなので、一瞬(体感5秒?)でのインストール!

ボタンを配置。

ダッシュボードのグループの設定を終わらせて、ダッシュボード画面を開いてみます。

無事表示されました。ちゃんとIPレベルで到達して、おかしな動作もないですね!
まとめ
ということで、Windows 10 Hyper-V環境でRaspberry Pi インストールしてNode-REDまで使えるようにしてみました。
仮想環境の感覚を最近つかみたくて、このような実験を合間に行っています。
これができると、SDカードにRaspberry Piを入れる手順よりも、高速な実行環境で、Node-REDとRaspberry Piの動作が確かめられるし、手軽に壊せるのでよいですね。
もちろん、シリアルポートノードのような、ハードウェアに紐付いた動作となるとエミュレートできてないですが、少なくともネットワーク関連の挙動はいろいろとチェックできそうです。
それでは、よき Node-RED & Hyper-V & Raspberry Pi Life を!