インテル Galileo 開発ボードでWindows IoTを動かす – 前編

はじめに

Microsoftが現地時間の2014年8月18日付で、インテル Galileo 開発ボード(Gen 1)用のMicrosoft Windows 8.1(コードネーム Windows Blue)のInternet of Thingsビルドを公開したので、同ボードで動作させてみたいと思います。

目次

注意事項

このメモの作業手順は、基本的にWindows 7上で行うことを前提としています。Windows 8あるいはWindows 8.1では手順が異なる個所がありますので、ご了承ください。

必要なもの

Windows Blue Internet of Things Build(以下、Windows IoT)を動作させるためには以下のものが必要です:

  • Internetとの接続環境※1
  • インテル Galileo 開発ボード(Gen 1)
  • Microsoft Windows 7の64ビット版(x64版)あるいはMicrosoft Windows 8/8.1が動作するパソコン
  • 16GBあるいは32GBのmicroSDメモリーカード※2
  • USB接続Ethernetアダプター※3
  • Ethernetケーブル1本※4
  • microSDメモリーカードを読み書きするためのアダプター※5
  • 5Vで発光させることができる抵抗入り発光ダイオード※6
  • Microsoftアカウント※7

補足事項 – 64ビット版のWindows 7の使用

Windows 7において、ダウンロードしたWindows IoTをインテル Galileo 開発ボードで使用するためにmicroSDメモリーカードへ書き込む手順の説明で、64ビット版のWindows 7に依存していると思われる部分があります。この部分を調整するのであれば32ビット版のWindows 7でも問題ないものと思われます。

しかし、筆者はWindows 7の32ビット版を所有しておらず状況を確認できないため、今回はWindows 7の64ビット版に限定ということで説明をしています。

補足事項 – USB接続型のEthernetアダプター

USB接続のEthernetアダプターはMicrosoftの使用例に合わせて使用しています。所持していない場合には、インテル Galileo 開発ボードを接続する先のLAN環境内にDHCPサーバーを設置し、そこからIPアドレスのリースを行うようにするという手も使えますが、何らかの問題が発生した場合の原因調査はやや難しくなるかと思います。

なお、今回のこの記事ではMicrosoftの説明通り、USB接続のEthernetアダプターを使用しています。

使用環境

メインの使用環境として以下のものを使用しました:

  • マザーボードはASUS P6T、CPUにはIntel Core i7-930、グラフィックボードはNVIDIA GeForce GTX 580、メモリーは24GB、HDDは1TBのパーティションを設定したものを使用しています。
  • OSには日本語版のWindows 7 Ultimate Service Pack 1の64ビット版を使用しています。

サブの使用環境として以下のものを使用しました:

使用するまでの手順

準備

  1. インテル Galileo 開発ボードのファームウェアを1.0.2へ更新します。すでに更新している場合にはこのステップを飛ばすことができます。
    1. Intel® Galileo software package 1.0.2にアクセスして「使用許諾契約」に同意してArduino IDEをダウンロードします。なお、同意できない場合には同ソフトウェアは使用できません。

      Intel Galileo software package 1.0.2 ダウンロード・ページ

    2. 「Intel Galileo Development Board」を起動して動作確認 / Intel Galileo Arduino SWを使用してファームウェアを更新する”での解説を参照してファームウェアのアップデートを行います。なお、バージョンが上がっている関係で一部の表示メッセージが異なりますが、異常ではありません。
  2. Microsoftアカウントの取得をします。アカウントを取得している場合にはこのステップを飛ばすことができます。
    1. Microsoftのこちらのページの説明に従ってMicrosoftアカウントを取得します。

      Microsoftアカウント登録ページ

  3. Windows IoTと関連ツールのダウンロードを行います。
    1. Windows Developer Program for IoTから同プログラムに参加します。このプログラムに参加しなければWindows IoTと関連ツールのダウンロードはできません。

      Windows Developer Program for IoT登録ページ

    2. Windows Developer Program For IoT – Windows Image (WIM)(171.22MB)」をダウンロードします。これがWindows IoT本体です。

      Windows IoT イメージのダウンロード・ページ

    3. Windows Developer Program For IoT – apply-bootmedia.cmd(20KB)」をダウンロードします。これはWindows IoTをmicroSDメモリーカードへ書き込むためのスクリプトです。

      Windows IoTのイメージ展開スクリプトのダウンロード・ページ

Windows IoTをmicroSDメモリーカードへ書き込む

  1. microSDメモリーカードをSDメモリーカードとしての初期化状態にします。※8
  2. Windows 7を使用している場合に限り、以下の手順を実施する必要があります:
    1. Windows 8.1 Update 用 Windows アセスメント & デプロイメント キット (Windows ADK)(1.4MB)」をダウンロードします。

      Windows ADKのダウンロード・ページ

    2. ダウンロードした「adksetup.exe」を実行します。

      adksetup.exeファイルの情報

    3. 「道具箱」のアイコン・スプラッシュが表示されるのでしばらく待ちます。

      Windows ADKセットアップの起動スプラッシュ表示

    4. 「場所の指定」で「このコンピューターに Windows アセスメント & デプロイメント キット for Windows 8.1 をインストールします」を選択して「インストール パス:」の内容は変更せずに「次へ(N)」ボタンをクリックします。

      Windows ADKセットアップの場所の指定

    5. 「カスタマー エクスペリエンス向上プログラム(CEIP)への参加」では任意の選択をして「次へ(N)」ボタンをクリックします。

      Windows ADKセットアップのCEIP参加選択

    6. 「使用許諾契約」を確認して「同意する(A)」あるいは「同意しない(D)」を選択します(同意しなければソフトウェアを使用することはできません)。

      Windows ADKのライセンス同意確認

    7. 「インストールを行う機能を選択してください」で「Deployment Tools」にチェックを入れて(他の機能はチェックは不要です)「インストール(I)」をクリックします。

      Windows ADKセットアップする機能の選択

    8. Windowsの設定によってはUACの確認あるいは認証が行われるので対応をします。
    9. 「機能をインストールしています…」という表示が出るので「全体の進行状況」が「100% 完了」になるまで待ちます。

      Windows ADKのインストール中

      なお、この表示の子ウィンドウで「コンテンツの検索」「セットアップで Toolkit Documentation-x86_en-us.msp が見つかりません」という表示(以前の表示での選択肢によっては類似の他の表示も出ることがあります)が行われるので「インターネットからのダウンロード コンテンツ」を選択して「再試行(R)」ボタンをクリックします。

      Windows ADKコンテントの取得先の指定

    10. 「Windows アセスメント & デプロイメント キット for Windows 8.1 へようこそ」と表示がされるので「ファースト ステップ ガイドを起動する」にチェックが入っていないことを確認して「閉じる(C)」ボタンをクリックします。

      Windows ADKセットアップ完了

    11. “準備”でダウンロードした「apply-bootmedia.cmd」をテキスト・エディターで開いて以下の置換を実施します:
      • 検索する文字列:
        %SystemRoot%\System32\Dism.exe
      • 置換する文字列:
        %ProgramFiles(x86)%\Windows Kits\8.1\Assessment and Deployment Kit\Deployment Tools\amd64\DISM\Dism.exe

      現在のバージョンでは5か所の置換が発生します。

  3. 「コマンド プロンプト」を「管理者として実行」します。※9
  4. Windows IoTと関連ツールをダウンロードしたディレクトリーへ移動します。ここでは仮にCドライブ直下の「WinIoT」ディレクトリーを作成したものと仮定すると「cd C:\WinIoT」と入力します。
  5. この先のステップで一時的にタイムゾーンが変更され、この影響でローカルタイムが変化するため、起動している不要なアプリケーション・プログラムをすべて終了させることを強くお勧めします。
  6. microSDメモリーカードへWindows IoTを書き込むためのコマンドを実行します。※10ここでは例としてFドライブがmicroSDメモリーカードのドライブ・レターであることを前提とするコマンドを示します:
    apply-bootmedia.cmd -destination f:\ -image 9600.16384.x86fre.winblue_rtm_iotbuild.140815-1515_galileo_v1.wim -hostname mygalileo -password admin

    このうち太字で装飾したf:\を実際のドライブに合わせてください。

  7. 進行状況が表示されながら書き込みが行われます。この書き込みはMicrosoftによると30分から2時間ほどかかるそうです。※11なお、前述したようにこの処理中はタイムゾーンが変更されるため、ローカルタイムが変化します。
  8. 書き込みが完了すると「**** Done.」と表示がでて、コマンド プロンプトの入力待ち状態に戻ります。正常に書き込みが完了した際のログの例を以下に示します:
    Microsoft Windows [Version 6.1.7601]
    Copyright (c) 2009 Microsoft Corporation.  All rights reserved.
    
    C:\Windows\system32>cd \WinIoT
    
    C:\WinIoT>dir
     ドライブ C のボリューム ラベルがありません。
     ボリューム シリアル番号は XXXX-YYYY です
    
     C:\WinIoT のディレクトリ
    
    2014/08/20  21:35    <DIR>          .
    2014/08/20  21:35    <DIR>          ..
    2014/08/20  13:30       179,534,857 9600.16384.x86fre.winblue_rtm_iotbuild.140731-1000_galileo_v1.wim
    2014/08/20  21:15            20,891 apply-BootMedia.cmd
                   2 個のファイル         179,555,748 バイト
                   2 個のディレクトリ  41,662,193,664 バイトの空き領域
    
    C:\WinIoT>apply-bootmedia.cmd -destination f:\ -image 9600.16384.x86fre.winblue_rtm_iotbuild.140731-1000_galileo_v1.wim -hostname mygalileo -password admin
    
    C:\WinIoT>rem **************************************************************************
    
    C:\WinIoT>rem ** Copyright (c) Microsoft Open Technologies, Inc.  All rights reserved.
    
    C:\WinIoT>rem ** Licensed under the BSD 2-Clause License.
    
    C:\WinIoT>rem ** See License.txt in the project root for license information.
    
    C:\WinIoT>rem **************************************************************************
    
    **** Temporary changing time zone to 'Pacific Standard Time'
    **** Fat32 is local time based, and the images are created in a pacific time zone. If there is a mismatch Windows will bug check after 5 minutes.
    ファイルが見つかりません
    **** Set-up work folder: C:\Users\sakaki\AppData\Local\Temp\apply-BootMedia-15323
    **** Retrieveing C:\WinIoT\9600.16384.x86fre.winblue_rtm_iotbuild.140731-1000_galileo_v1.wim
    ****          to C:\Users\sakaki\AppData\Local\Temp\apply-BootMedia-15323
    
    展開イメージのサービスと管理ツール
    バージョン: 6.3.9600.17029
    
    イメージをマウントしています
    [==========================100.0%==========================]
    操作は正常に完了しました。
    **** Customizing image C:\Users\sakaki\AppData\Local\Temp\apply-BootMedia-15323\9600.16384.x86fre.winblue_rtm_iotbuild.140731-1000_galileo_v1.wim
    ****        mounted at C:\Users\sakaki\AppData\Local\Temp\apply-BootMedia-15323\9600.16384.x86fre.winblue_rtm_iotbuild.140731-1000_galileo_v1.wim.mount
    
    展開イメージのサービスと管理ツール
    バージョン: 6.3.9600.17029
    
    イメージを保存しています
    [==========================100.0%==========================]
    イメージのマウントを解除しています
    [==========================100.0%==========================]
    操作は正常に完了しました。
    **** Applying image C:\Users\sakaki\AppData\Local\Temp\apply-BootMedia-15323\9600.16384.x86fre.winblue_rtm_iotbuild.140731-1000_galileo_v1.wim
    ****             to f:\
    
    展開イメージのサービスと管理ツール
    バージョン: 6.3.9600.17029
    
    イメージを適用しています
    [==========================100.0%==========================]
    操作は正常に完了しました。
    **** Mounting f:\\Windows\System32\config\SYSTEM
    ****       to HKEY_USERS\Galileo-15323-SYSTEM
    **** Setting hostname to mygalileo
    **** Restoring time zone to 'Tokyo Standard Time'
    ****
    ****   Successfully applied C:\WinIoT\9600.16384.x86fre.winblue_rtm_iotbuild.140731-1000_galileo_v1.wim
    ****                     to f:\
    ****
    ****              hostname: mygalileo
    ****              timezone: Pacific Standard Time
    ****              Username: Administrator
    ****              Password: admin
    ****
    **** Done.
    
    C:\WinIoT>
    
  9. microSDメモリーカードをパソコンから外します。

TELNETクライアントの用意

  1. 「スタート(Windowsボタン)」→「コントロール パネル」→「プログラム」→「Windows の機能の有効化または無効化」と進みます。

    コントロール パネルからWindowsの機能の有効化または無効化を選択

  2. 「Windows の機能」というウィンドウが表示されるので、「Telnet クライアント」にチェックを入れて「OK」ボタンをクリックします。

    Windowsの機能でTelnetクライアントをチェック

  3. 「しばらくお待ちください。機能に変更を加えています。この処理には数分かかることがあります。」というウィンドウが表示されるので、消えるまで待ちます。

    Windowsの機能変更の完了までの進行状況表示

その他

USB接続のEthernetアダプターのドライバーのインストールを、アダプターのマニュアルに沿って完了をしておきます。

インテル Galileo 開発ボードでWindows IoTの起動と動作確認

  1. インテル Galileo 開発ボードの電源が入っていないことを確認します。
  2. 作成したWindows IoTの入ったmicroSDメモリーカードをインテル Galileo 開発ボードに差し込みます。
  3. インテル Galileo 開発ボードにEthernetケーブルを挿しこみます。
  4. 差し込んだEthernetケーブルのもう片方をUSB接続のEthernetアダプターに差し込みます。
  5. インテル Galileo 開発ボードに電源を接続します。
  6. Windows IoTの起動が完了するまで約2分ほど待ちます。この際、microSDメモリーカードへのアクセス状況を示すLEDを目視確認するとわかりやすいかと思います。
  7. USB接続のEthernetアダプターをパソコンのUSBポートに接続します。※12
  8. しばらく待ちます。
  9. 「コマンド プロンプト」(管理者である必要はありません)を開いて「ping -4 mygalileo」とコマンドを実行します。反応があれば以下のような感じの表示があります:※13
    C:\>ping -4 mygalileo
    
    mygalileo [169.254.206.196]に ping を送信しています 32 バイトのデータ:
    192.254.206.196 からの応答: バイト数 =32 時間 <1ms TTL=128
    192.254.206.196 からの応答: バイト数 =32 時間 <1ms TTL=128
    192.254.206.196 からの応答: バイト数 =32 時間 <1ms TTL=128
    192.254.206.196 からの応答: バイト数 =32 時間 =1ms TTL=128
    
    192.254.206.196 の ping 統計:
        パケット数: 送信 = 4、受信 = 4、損失 = 0 (0% の損失)、
    ラウンド トリップの概算時間 (ミリ秒):
        最小 = 0ms、最大 = 1ms、平均 = 0ms
  10. TELNETコマンドでログインして時間を確認してシャットダウンまでしてみます:
    C:\>telnet mygalileo
    (注:ここでスクリーンがクリアされる)
    
    User name: administrator
    Password:
    
    Microsoft Windows [Version 6.3.9600]
    Copyright (c) Microsoft Corporation. All rights reserved.
    
    C:\windows\system32>date
    The current date is: Thu 2014-08-21
    Enter the new date: (mm-dd-yy)
    
    C:\windows\system32>time
    The current time is:  1:48:03.86
    Enter the new time:
    
    C:\windows\system32>shutdown /s /t 0
    System will shutdown in 0 seconds...
    
    C:\windows\system32>
    
    ホストとの接続が切断されました。

まとめ

ちょっと時間がなくて、前編と後編に分けることになってしまいました…。それに画像を張り付ける余裕がなくて文章のみになってしまいましたが、後程補う予定です。

この前編ではWindows IoTをインテル Galileo 開発ボードで動作させ、TELNETコマンドでログインしてコマンドが実行できることを確認してから、電源を落とすところまでを説明しました。これで、とりあえず動作が確認できているかと思います。

後編ではVisual Studio 2013を使用して簡単なプログラムをインテル Galileo 開発ボードに転送して動かしてみるところまでを説明したいと思います。

2014年8月23日

  • 各種画像を追加しました。
  • 少し意味が不明確であると思われる部分の補足説明の追加を行いました。

2014年8月30日

  • 目次を追加しました。

2014年10月1日

  • 2014年9月29日(現地時間)のMicrosoft Corporationの配布ファイルの変更に合わせて、Windows IoTのイメージ・ファイル名を「9600.16384.x86fre.winblue_rtm_iotbuild.140731-1000_galileo_v1.wim」から「9600.16384.x86fre.winblue_rtm_iotbuild.140815-1515_galileo_v1.wim」へ変更しました。
  • ログについては従来のままとし、それ以外を変更としています。
  • スクリーン・ショットは従来から変更していません。

  • ある程度高速かつ安定して動作する環境を推奨します。
  • microSDHC 32GB(Team製のClass 10)を使用しました。なお、使用領域を勘案すると4GB以上で使用できそうですが、動作は未確認です。
  • プラネックスコミュニケーションズのUE-200TX-Gを使用しました。
  • カテゴリー6、30cm、ストレートのケーブルを使用しました。
  • 日本HP Pavilion dm1-4009AUに内蔵のものを使用しました。
  • 後編で開発ツールの動作確認をするために使用します。
  • 未取得の場合はMicrosoftアカウントを取得するためのメールアドレスも必要です。
  • 購入したmicroSDメモリーカードをOSでフォーマット(初期化)を行ったことがなければ問題ありません。うまく動かない場合にはSDアソシエーションが公開しているフォーマット・ソフトウェアを使用してフォーマットをすることで初期状態に戻すことができます。
  • 正しく管理者として実行できると「管理者: コマンド プロンプト」というタイトル・バーのコマンド プロンプトになります。
  • 今回は空のmicroSDメモリーを使用したため確認できていませんが、このコマンドを実行するとmicroSDメモリーカード上の既存のデータはすべて削除されると思われます。
  • 私の環境(前述のサブ環境側)では10分程度で終わりました。
  • 必要に応じてドライバーのインストールなどの対応を行います。
  • IPアドレスは起動するごとに変化します。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です