I wrote it in English in the comment section.
◆はじめに##
性懲りもなく面白くもない仮想化ネタで攻める。
おそらく、仮想化なぞメリットが薄い、と感じる方ばかりではなかろうか。
前回記事のWindows10 IoT CoreのVMware Workstation Pro 12による仮想化で、ホストのBluetoothを手軽にゲスト側へ認識させられることについて触れた。
が、Bluetoothで、もう少し突っ込んだことを行おうとしたところでつまづいたためここに記す。
★前回の記事(Windows10 IoT CoreをVMwareで仮想化(1))
http://qiita.com/PINTO/items/43d3f0540adea08013e9
★前々回の記事(Windows10 IoT CoreをHyper-Vで仮想化)
http://qiita.com/PINTO/items/0cf1a303be8666ca4643
さて本題。
Bluetoothはいとも簡単に認識するが、BLEデバイスは簡単には認識しないことに気づく。
体裁を一切気にせずハードコピーすら無いが、トーシローでも絶対成功するような細かい手順を残すことをモットーとするため、毎回インデントも何も無い汚い文面となる点はご容赦願いたい。
以下、BLEデバイスの通信をゲスト側で認識させるまでの手順。BLEに限らずBluetoothの認識が不安定なときも試す価値あり。
今回は必ず出費が必要。
◆仮想Windows10 IoT CoreへBLEを認識させるための前提環境##
1.前回記事によりvmware+iotcoreの仮想環境を構築済みであること
2.Bluetooth/BLE両対応ドングル(例:iBUFFALO BSBT4D09BK Amazonで918円、自分はメルカリで安く仕入れた)
3.Bluetoothドングルのドライバがあらかじめホストマシンにインストール済みであること
◆BLEデバイスをゲストのWindows10 IoT Coreへ認識させる手順##
1.ホストとBLEデバイスがペアリング済みであれば事前にペアリングを解除しておく
2.ホストPCで、VMware Workstation Proを起動
3.左側ペインで設定を仕込む対象ゲストOSをクリック
4.右側ペインの「USB コントローラ」をクリック
5.「ハードウェア」タブをクリック
6.左側ペインで「USB コントローラ」を選択
7.右側ペインの「接続」を下記のように変更
(1)USBの互換性:USB2.0
(2)新しいUSBデバイスを自動的に接続:チェックON
(3)すべてのUSB入力デバイスを表示する:チェックON
(4)Bluetoothデバイスを仮想マシンと共有:チェックOFF
8.OK
9.BluetoothドングルをホストPCへ挿入
10.右側ペインの「▶この仮想マシンをパワーオンする」をクリック
11.VMware画面右下のBluetoothマークをクリック(ホスト内蔵のBluetoothとドングルBluetoothの2個分マークが表示されるため、ドングル側をクリックする)
12.「接続(ホストから切断)」をクリック
13.警告ダイアログが表示された場合は「今後、このメッセージを表示しない」にチェックONしてOKクリック
14.Windows10 IoT Coreコンソール上の歯車マークをクリック
15.左側ペインの「Bluetooth」をクリック
16.右側ペインのスライドバーをクリックし、「オン」表示にする
17.BLEデバイスの電源をONにする
18.BLEデバイスの名前が「Bluetoothデバイスの管理」画面にリストアップされない場合は、一度スライドバーをOFF→ONし、数秒間待機すると表示される、それでもダメならゲストOSを再起動
19.「Bluetoothデバイスの管理」画面で接続対象のBLEデバイスの「ペアリング」ボタンをクリック
20.画面の上のほうに「ペアリングに成功しました。」と表示される
★ホストとBLEデバイス間のペアリング不要。むしろペアリングするとゲストでのデバイス検出が不安定になるためしないほうが良い。
★ゲストとBLEデバイス間で直接ペアリング可能。
これで、VisualStudioのデバッグで、BLEからのアドバタイズなどの通信受信状況をトレースできるようになっている。
Releaseビルドで実行ログのみ監視したい場合はVisualStudioで配置のみ実行し、Device Portalで対象アプリケーションを「Stopped」から「Running」状態に変更する。
◆Device Portal##
http://(ゲストOSのIPアドレス 又は ゲストPC名):8080/
※ブラウザのURL欄へ上記URLを入力してEnterキー押下
※IEではまともに表示されないため、Edge又はGoogle Chromeを使用するのが吉
◆Device Portalへうまく接続できないとき##
1.ホストPCのWindowsファイアウォールを無効化する
2.ゲストPC名でURL入力しているときはIPアドレスを指定してリトライ
◆おわりに##
I2Cのリモートデバッグとロボ作成、仮想化を同時並行しているため余計に時間が無い。
次回は気が向いたら上記のうちどちらかを。
あとは、ARMベースのWindows10 IoT Core(Raspberry Pi3用)をWindows10x64上で実行できれば、すべての環境を仮想化できることになるため、QEMUの使い方にお詳しい方がいらっしゃれば、是非ご教示いただきたい。
かなりの時間格闘したが、成功する起動コマンドがどうしても組めない。。。
ちなみに、皆さんのお役に立つ記事としたいため、分かりにくい部分などがあれば、是非ともご指摘・ご質問いただきたい。都度加筆修正するつもり。