世の中?は、dotnetConf で盛り上がっていますが、Windows IoT Core のリモート接続の方法を残しておきます。実は、まだ Inside Preview の状態でしか使えないのだけど、Closed Loop Control, Remote Sensors and Remote UX on RPi3 – Hackster.io のサンプルを見ると既に3月からできていたわけで、つまりは //Build/ 2016 の頃からできました、って話ですね。Build で Windows IoT Core の話があったかな…というのは後で調べます。
Remote Display Experience – Windows IoT
そんな訳で、3か月遅れで試してます。が、結論から言えば、Windows 10 Inside Preview (現状では Slow Ring)を使うのと、Visual Studio で作成する UWP のバージョンが微妙に低いのと、Windows IoT Core 自身のバージョンが微妙に高いのとの兼ね合いで、画面のリモート接続はできるけど、リモートデバッグができません。つまりは Visual Studio からデプロイできないので、なんか変な感じで食い違っていますが、まあ、夏の正式リリースまでには揃えられるかと。というか、揃わないと困る。
Raspberry Pi 3 に Inside Preview 版を入れる
Windows IoT Core の Inside 版は Get Started – Windows IoT から、Raspberry Pi 3 の NOOBS 版からインストールするか、https://www.microsoft.com/en-us/software-download/windowsiot から直接ダウンロードします。どうやら、現時点で RPi3 対応は Inside Preview 扱いなので(正式リリース版ではない)どちらの方法でも 、14342 が使えます。NOOBS 版のほうは、微妙にサイズが大きくなって SD カードは 16 MB が必要です。
リモート接続を有効にする
ブラウザから http://miniwinpc:8080/ で接続すると「Remote」というメニューが増えています。このチェックを入れると、リモート接続が有効になります。
リモートアクセスのアプリを入れる
https://www.microsoft.com/en-us/store/apps/iot-remote-client/9nblggh5mnxz から Windows IoT Remote Client をインストールします。
無事接続できると、こんな風に Raspberry Pi 上のモニタが表示できます。マウスでぽちぽちすることもできるし、タッチパネルがあればタッチ操作ができます。
ただし、全画面転送しているらしくて妙に遅かったりします。現時点では解像度を 800×600 に落とすと使えるぐらいのスピードになります。
以下は、リモートデバッグしようと思ってあれこれやった結果です。
Windows のほうも Inside Preview 版にする
Windows IoT Core のアプリは UWP なのですが、このターゲットバージョンを揃えないといけません。さっき、14342 を入れたのだから、Windows 10 PC のほうも、14342 か、それ以上にします。現状では Slow Ring にして Windows Update すると自動的に入ります。
業務 PC に入れるのは難なので、Hyper-V 上に Windows 10 の環境を作ってバージョンを揃えています。
Windows 10 SDK を入れる
ホーム ページ – Windows Insider Program に参加して、プレビュー版の Windows 10 SDK をインストールします。実は、ここのバージョンが 14332 なので、PC や Windows IoT Core のバージョン 14342 よりも低いんですよね。たぶん、このおかげで Windows IoT Core に対してリモートデバッグができない状態なのだと思います。
でもって、Windows 10 SDK 14332 を入れた状態で Visual Studio からデプロイしようとすると、
2>DEP0800 : 必要なフレームワーク “C:\Program Files (x86)\Microsoft SDKs\Windows Kits\10\ExtensionSDKs\Microsoft.NET.CoreRuntime\1.0\.\AppX\ARM\Microsoft.NET.CoreRuntime.1.0.appx” のインストールに失敗しました。
のようなエラーが発生します。このエラー自体は、StackOverflow でよく見かけるのですが、解決できていません。大抵の回答は、SD カードの焼き直しなんだけど、どうもバージョン違いのような気がする。
アプリのデプロイ自体は、ブラウザから「Apps」→「Install app」で、appx ファイルをアップロードすれば ok です。このあたりはストアアプリと同じなので、デバッグはできませんが、ひとまずアップロードして Windows IoT Core 上で動かすことはできます。
そんな訳で、中途半端ですが、ひとまずリモート接続ができるところまで。