Windows IoT Core #2 (Raspberry Piの起動イメージを作成する)

2015年にWindows IoT Coreの初版がRaspberry Piなどのシングルボードコンピューター向けにリリースされました。現在でも、最新のWindows IoT Coreのリリースが続けられています。リリース当初に初期版をRaspberry Piに入れてみたことがありますが、 その後はやっていませんでした。ということで、最新版のWindows 10 IoT Core(1809)をRaspberry Piにインストールしてみたいと思います。

Raspberry Piにインストールといっても、実際には、microSDカードにフラッシュイメージを書き込み、起動用microSDカードを作成することになります。

必要な機材

Raspberry PiにWindows IoT Coreをインストールすために必要な部品は以下の通りとなります。

  • Raspberry Pi 2 Model BまたはRaspberry Pi 3 Model BまたはRaspberry Pi 3 Model B+
  • microSDカード
  • ホストとなるWindows PC
  • ネットワーク環境
  • Windows 10 IoT Dashboard (Windows PCにインストールするアプリ)

順番に説明します。

Raspberry Pi

使用できるRaspberry Piは、「Suggested Prototype Boards (英語)」に記載があります。

  • Raspberry Pi 2 Model B
    ただし、Pi 2 Rev. 1.2は未サポート
  • Raspberry Pi 3 Model B
  • Raspberry Pi 3 Model B+
    ただし、現時点(2018年12月)ではテクニカルプレビュー段階。

と記載されています。Raspberry Pi 1やPi Zeroはサポートされません。

【国内正規代理店品】 Raspberry Pi 3 Model B (JP) RS ケースセット Clear KSY(RS)

新品価格
¥7,126から
(2019/1/9 00:29時点)

【国内正規代理店品】 Raspberry Pi 3 Model B (JP) RS ケースセット Red KSY(RS)

新品価格
¥7,542から
(2019/1/9 00:30時点)

【国内正規代理店品】 Raspberry Pi 3 Model B (JP) RS ケースセット White KSY(RS)

新品価格
¥7,990から
(2019/1/9 00:30時点)

【国内正規代理店品】 Raspberry Pi 3 Model B (JP) RS ケースセット Black KSY(RS)

新品価格
¥8,167から
(2019/1/9 00:31時点)

microSDカード

microSDカートは8GB以上のものを用意します。

カードの読み書きの速度は、起動速度や動作速度に影響するので、なるべく速いものを用意します。マイクロソフトが互換性があるとしているSDカードの一覧は「Hardware compatibility list – Storage Media (英語)」にあります。

どちらも、SDスピードクラスがClass 10 (書き込み最低10MB/秒)、UHSスピードクラスがClass 1 (読み書き最低10MB/秒)のmicroSDカートとなります。最高転送速度はそれぞれのカードは48MB/秒と30MB/秒です 。

最低限これらの速度を満たすカードにしましょう。
現時点(2019年1月)で日本のAmazonで販売しているものなら、以下のものが対応するmicroSDカードになるのではないでしょうか。

【Fire, Fire HD 8, Fire HD 10対応】Samsung microSDカード32GB EVOPlus Class10 UHS-I対応 Nintendo Switch 動作確認済 正規代理店保証品 MB-MC32GA/ECO

新品価格
¥999から
(2019/1/9 00:08時点)

microSDHC 32GB SanDisk サンディスク UHS-1 U1 FULL HD アプリ最適化 Rated A1対応 専用SDアダプター付 [並行輸入品]

新品価格
¥968から
(2019/1/9 00:09時点)

ホストとなるWindows PC

Windows PCであれば特に問題ありません。ただし、microSDにデータを書き込むので、microSDカードスロットは必要となります。内蔵のカードスロットでも、USB接続のカードスロットでもよいです。

ネットワーク環境

Windows PCでmicroSDカードにデータを書き込んで、Raspberry PiでmicroSDカードから起動するだけであれば、ネットワーク環境は必要ありません。Raspberry PiのWindows 10 IoTが起動した後、Windows PCからネットワーク経由でRaspberry Piの状態を確認するためには、同じサブネットのネットワークにWindows PCとRaspberry Piをつなぐ必要があります。

また、OSやアプリをアップデートするためには、マイクロソフトのWindows UpdateやMicrosort ストアのサーバーにつながる必要があります。そのため、アップデートをするときは、インターネットにつながるネットワーク環境が必要です。

物理的な接続方法は、無線LAN(WiFi)でも有線LAN(LANケーブル)でもかまいませんが、同じサブネット内につなぐ必要があります。

Windows 10 IoT Dashboard

Windows 10 IoT Dashboardは、Windows PCにインストールするアプリです。このアプリは、このサイト(英語)からダウンロードできます。このサイトの、

Download the Windows 10 IoT Core Dashboard

の部分をクリックするとインストーラーがダウンロードできます。ダウンロードしたインストーラーを起動すると、さらに追加のモジュールがダウンロードされ、アプリがインストールされます。

インストールされたアプリを起動すると以下のようなメイン画面が表示されます。microSDカードに書き込むときは、画面左側の「新しいデバイスのセットアップ」を選択します。

IoT Dashboard – 新しいデバイスのセットアップ

 

Raspberry PiでWindows 10 IoT Coreを起動させるため手順

Windows 10 IoT CoreをRaspberry Piで起動するための手順は以下の通りです。

  1. Windows 10 IoT Core Dashboardを起動する
  2. Windows 10 IoT Coreのイメージを選択する
  3. microSDカードにWindows 10 IoTのイメージを書き込む
  4. microSDカードをPCから取り出す
  5. microSDカードをRaspberry Piに取り付ける
  6. Raspberry Piの電源を入れる
  7. Windows 10 IoT Coreが起動するのをひたすら待つ
  8. IOTCoreDefaultApplicationが起動する

順番に説明していきます。

Windows 10 IoT Core Dashboardを起動する

Windows PCでWindows 10 IoT Core Dashboardアプリを起動します。

インストールしたアプリは、スタート画面のアプリ一覧の「Windows 10 IoT Core」フォルダーの下に「Windows 10 IoT Core Dashboard」として存在します。

Windows 10 IoT Core Dashboard – スタート画面のアプリ一覧

アプリを起動すると、起動直後は「自分のデバイス」の画面が表示されます。同じネットワークにWindows 10 IoT Coreのデバイスが存在しないときにはデバイス一覧は空になります。

以下の画面は、同じネットワーク内に一台のWindows 10 IoT Coreのデバイスが存在するときの場合です。

IoT Dashboard – 自分のデバイス画面

Windows 10 IoT Coreのイメージを選択する

Raspberry PiをWindows 10 IoT Coreのデバイスとするためには、ブート用のmicroSDカードにWindows 10 IoT Coreのブートイメージを書き込む必要があります。イメージの書き込みは、IoT Core Dashboardの「新しいデバイスのセットアップ」項目で行います。

まずは、左側のメニューの中から「新しいデバイスのセットアップ」を選択します。

IoT Dashboard – 新しいデバイスのセットアップ (サインイン)

すると、上記のような「Microsoftアカウントでサインイン」の画面が表示されます。これの画面が表示されず次の画面が表示されることもあります。

もし、Windows 10 IoT CoreのInsider Previewのイメージを使うのであれば、この画面でサインインする必要があります。しかし、正式公開された通常のイメージを使うのであれば、サインインしなくてもよいです。下部の「この手順をスキップ」をクリックして次に進めましょう。

すると、「デバイスの種類」や「OSビルド」を選択する画面に遷移します。

下記のように「デバイスの種類」は「Raspberry Pi 2 & 3」を選択します。

「OSビルド」は、フラッシュイメージファイルを持っていない場合は、「Windows 10 IoT Core (17763)」を選択します。これにより、フラッシュイメージが自動的にダウンロードされます。

IoT Dashboard – 新しいデバイスのセットアップ (イメージの選択)

フラッシュイメージファイル(Flash.ffuファイル)を別の手段で入手済みの場合は「Custom」を選択し、フラッシュイメージファイルを指定します。たとえば、Raspberry PiのWindows 10 IoT Coreイメージをインストーラーでインストール済みの場合は、

C:\Program Files (x86)\Microsoft IoT\FFU\RaspberryPi2\flash.ffu

に、イメージファイルが存在しますので、このファイルを指定します。

「デバイス名」は、既定値(minwinpc)のままでもよいですが、変更することができます。このデバイス名は、「自分のデバイス」画面で表示されるデバイス名となります。複数のデバイスを扱う場合は、どれだかわからなくなるので必ず変更しましょう。

「新しい管理者パスワード」と「管理者パスワードの確認入力」には、同じパスワードを設定します。パスワードが空のままでは次の手順に進むことはできません。このパスワードは、Windows 10 IoT Coreデバイスの管理者(Administrator)のパスワードとなります。Windows 10 IoT Coreデバイスにネットワーク経由でアクセスするときにもこのパスワードを使うことになります。

microSDカードにWindows 10 IoTのイメージを書き込む

PCにmicroSDカードを挿入します。すると、「ドライブ」の項目にそのmicroSDカードが現れます。項目の中から挿入したmicroSDカードを選択します。

IoT Dashboard – 新しいデバイスのセットアップ

イメージの書き込みを行うとmicroSDカードの中のデータは、すべて消去されます。必要なデータは、バックアップしておく必要があります。

「ソフトウェア ライセンス条項に同意する」のチェックボックスをチェックします。すると「ダウンロードとインストール」ボタンまたは「インストール」ボタンが有効になります。どちらのボタン名になるかは「OSビルド」の選択に依存します。

「OSビルド」として「Windows 10 IoT Core (17763)」を選択した場合は、「ダウンロードとインストール」ボタンをクリックするとイメージのダウンロードとmicroSDカードへの書き込みが開始します。もし、過去にダウンロードをしたことがあれば、再ダウンロードはされず、すぐに書き込みが開始します。

「OSビルド」として「Custom」を選択した場合は、「インストール」ボタンをクリックすると、すぐにイメージのmicroSDカードへの書き込みが開始します。

書き込みの直前でエレベーションが要求(管理者権限が要求)されるので、許可をしましょう。

なお、一度イメージの書き込みをしたことがあるmicroSDカードは、1回目の書き込みが失敗することがあります。その場合は、つづけて、もう一度書き込むと成功します。

2度目の書き込みでも失敗するようであれば、microSDカードを一度「抜き」・「差し」してみましょう。多くの場合、書き込みが成功すると思います。

一度イメージの書き込みをしたことがあるmicroSDカードで、一度目の書き込みに失敗することがあるのは、イメージを書き込んだmicroSDカードが複数のパーティションに分けられているのが原因と思われます。一度目の書き込みでカードがフォーマットされるため、いったんすべてのパーティションがクリアされます。2度目の書き込みでは、パーティションがない状態なので、問題なく書き込めるのだと思います。

microSDカードリーダーによっては、このmicroSDカードの複数のパーティションが原因でカードリーダーが不安定になることがあるようです。その場合は、カードリーダーがUSB接続ならUSB端子の抜き差しを、PC内蔵ならPCの再起動をすることにより、復活すると思います。何度やっても書き込みに失敗するようであれば、試してみるとよいと思います。

microSDカードをPCから取り出す

書き込みが成功しても、すぐにmicroSDカードを抜くのは避けてください。メディアを安全に取り出す手順を実行してください。

タスクバーアイコン「ハードウェアを安全に取り外してメディアを取り出す」

まずは、タスクバーの「ハードウェアを安全に取り外してメディアを取り出す」のアイコン(USBメモリのようなアイコン)をマウスの右ボタンでクリックしてメニューを表示します。

タスクバーアイコンのメニュー

メニューから、microSDのドライブの取り出しを選択します。メニューの表示内容は、PC環境によって異なります。microSDカードのと思われる項目を選択してください。上記の例の絵の場合、microSDカードが複数のパーティションに区切られているため一つのmicoroSDカードに対して、複数の項目が表示されています。どれか一つを選択すればカードが取り外し可能になります。

「ハードウェアの取り外し」の完了の通知

上記のように「コンピューターから安全に取り外すことができます」と表示されてから、microSDカードを抜きます。

最近のカードリーダースロットにはアクセスランプがないため、実際のカードへの書き込みが完了しているかどうか見た目にはわかりません。そのため、カードへの書き込みが確実に完了してから抜くために、上記の操作をします。

microSDカードをRaspberry Piに取り付ける

Raspberry Piの電源を落とした状態で、microSDカードをRaspberry Piに挿入します。挿入が不十分でないかちゃんと確認しましょう。

Raspberry Piの電源を入れる

電源を入れると、microSDカードからWindows 10 IoT Coreの起動が開始します。

Windows 10 IoT Coreが起動するのをひたすら待つ

初回起動はものすごく時間がかかります。起動が完了するまで、ひたすら待ちましょう。

HDMI端子にディスプレイをつなげていれば、起動はどこまで進んでいるか確認できます。すくなくとも、一回目の起動が正常に完了するまでは、ディプレイをつないだほうが良いと思います。

ディスプレイをつないでいると、以下の順番で画面が表示され、起動していきます。

  1. 00:00 電源をON
  2. 00:01 [黒い画面]画面中央に青いWindowsロゴ+画面下中央にプログレスリングのアニメーション
  3. 00:01 [黒い画面]画面下中央にプログレスリングのアニメーション
  4. 00:21 [青い画面]画面中央に「Welcome to Windows 10 IoT Core」と表示
  5. 00:21 [黒い画面] (ここで自動的に再起動が入ります)
  6. 00:23 [黒い画面]画面中央に青いWindowsロゴ+画面下中央にプログレスリングのアニメーション
  7. 00:24 [黒い画面]画面下中央にプログレスリングのアニメーション
  8. 00:31 [青い画面]画面中央に「Welcome to Windows 10 IoT Core」と表示+画面下中央にプログレスリングのアニメーション
  9. 00:38 [黒い画面]画面中央に赤い基盤のシングルボードコンピューターの絵が表示
  10. 00:38 [青い画面]画面上部に「Hi there, welcome to Windows 10 IoT Core」と表示
    1. 00:38 Choose youre languageの選択画面
      Nexボタンを押さない場合、2分程度でタイムアウトし自動的に次に進む
    2. 00:40 Let’s get connectedのWiFi選択画面
      WiFiデバイスがある場合のみ表示される。この画面が表示されたらWiFiの設定するかスキップ(Skip this stepをクリック)しないと次に進まない。
  11. 00:40 画面全体にIOTCoreDefaultApplicationアプリが表示される

各項目の先頭に書いたのは、電源ONからの経過時間(分)です。ディスプレイに4Kディスプレイをつないでいたため、メモリ不足なのか、かなり時間がかかり40分くらいかかっています。別の環境では全体が20分弱で終わったものもありました。

一度起動してしまうと、2回目以降の起動は、4Kディスプレイをつないでいても5分以下で完了します。

初回起動にかかる時間は、Raspberry PiのCPUの速度やメモリ容量の影響だけだなく、SDカードの転送速度にも依存すると思います。

経過時間から分かるように、初回起動のときは、3番目と8番目のプログレスリングのアニメーションの画面がかなり長く続きます。

状況によっては、1番目の青いWindowsロゴが表示される前にWindows Boot Managerが0xc0000102や0xc000014cのエラーコードで止まることがあります。このエラーの場合は、ある程度時間がたつと、自動的に再起動がかかります。何回か再起動を繰り返しているうちに、正常に起動することがあります。すくなくとも、私の環境では、このエラーの場合は、何回の自動再起動後には、必ずWindows 10 IoT Coreが起動しました。

私の場合は他のエラーに遭遇したことはありません。そのため、上記のエラー以外の場合は、ほかの原因も考えられます。何回も自動再起動されても起動しない場合は、以下の対処法を試してください。

  • 再度イメージの書き込みを行う (イメージの書き込みの失敗の可能性)
  • microSDカードを別のカードに交換する (microSDカードの不具合・性能不足の可能性)
  • Raspberry Piの電源供給が十分であるか確認する

また、5番目の最後では、自動再起動されます。このとき、起動に失敗して、Windowsロゴが表示されず黒い画面のままで止まってしまうこともあるようです。この場合は、電源を入れなおして再起動すると残りの処理が継続します。5番目で5分以上かかっている場合は、電源を入れなおしてみましょう。

10番目の1は、言語の選択画面です。この画面はタイムアウト(2分くらい)が設定されており、特に選択をしなくても、待っていれば次に進みます。

10番目の2は、Raspberry PiにWiFiデバイスがあるときのみ表示されるWiFi設定画面です。この画面は、WiFiの設定をするか、スキップをクリックしないと先に進みません。そのため、WiFiデバイスがある場合は設定を完了するためにマウスやキーボードが必要になります。

IOTCoreDefaultApplicationが起動する

Windows 10 IoT Coreが起動すると、IOTCoreDefaultApplicationアプリが起動します。

マイクロソフトが公開している公式フラッシュイメージでは、IOTCoreDefaultApplicationアプリがプリインストールされており、また、スタートアップアプリとして、このアプリが指定されています。そのため、このIOTCoreDefaultApplicationアプリが起動します。

初回起動直後は、Windows およびIOTCoreDefaultApplicationアプリのバージョンは、それぞれ10.0.17763.107、3.0.0.0でした。

IOTCoreDefaultApplicationのデバイス情報画面

この画像は、初回起動直後のものではないため、表示されているWindowsやアプリのバージョンは更新されています。

なお、今回はマイクロソフトが公開しているイメージを使用しているのでスタートアップアプリが固定ですが、自分でカスタムビルドイメージを作成する場合は、スタートアップアプリも自由に設定できます。自分で作成したアプリをスタートアップアプリとすることもできます。

Windows 10 IoT Coreが起動すると、同じネットワーク内にあるWindows PC上のWindows 10 IoT Core DashboardアプリからIoT Coreデバイスの存在を確認することができます。以下の図のように「自分のデバイス」の画面に同じネットワーク内にあるWindows 10 IoT Coreデバイスが表示されます。

IoT Dashboard – 自分のデバイス画面

今回は、Windows 10 IoT CoreをRaspberry Piで起動するところまでの手順を紹介しました。次回は、Windows 10 IoT Core Dashboardについて、もう少し説明したいと思います。

コメントを残す