ラボ 1a: 基本的なイメージの作成 (create-a-basic-image)

最初に、基本的な Windows 10 IoT Core (IoT Core) イメージを作成し、特定のハードウェア デバイスにフラッシュします。

最初の設計を表す製品フォルダーを作成します。 最初の製品設計では、IoT Core デバイスを起動して組み込みの OOBE アプリを実行するのに十分なカスタマイズのみを行います。このアプリは、HDMI 対応モニター上で確認できます。

これらのコマンドの実行を簡単にするために、いくつかのよく使われるパスと変数を事前設定する IoT Core シェルをインストールして使用します。

前提条件

IoT Core イメージを作成する前に、テクニシャン PC に必要なツールがインストールされていることを確認します。

テクニシャン PC を準備する方法については、「Windows IoT Core のカスタマイズに必要なツールの入手」を参照してください。

重要

使用する ADK のバージョンが、以下で使用する IoT Core パッケージのバージョンと一致する必要があります。

このセクションを完了するには、次のツールがインストールされている必要があります。

  • Windows アセスメント & デプロイメント キット (Windows ADK)
  • Windows 10 IoT Core パッケージ
  • IoT Core ADK アドオン
  • IoT Core PowerShell 環境
  • メモ帳や VS Code などのテキスト エディター

基本的なイメージを作成する

ワークスペースを作成する

  1. エクスプローラーで、IoT Core ADK アドオンをインストールしたフォルダー (たとえば C:\IoT-ADK-AddonKit) に移動し、IoTCorePShell.cmd を開きます。 管理者として実行するように求めるメッセージが表示されます。

これにより、PowerShell モジュールが読み込まれ、ADK、IoT Core キットのバージョンがチェックされます。 証明書ストア内にテスト証明書があるかどうかもチェックされ、ない場合は自動的にインストールされます。

トラブルシューティング: エラー: "指定されたパスを見つけられませんでした"。 これが表示された場合は、アイコンを右クリックし、[ターゲット] のパスを、ツールをインストールするために選択した場所に変更します。

  1. IoTCorePShell で、New-IoTWorkspace を使用して、OEM 名が Contoso でアーキテクチャが arm の新しいワークスペース C:\MyWorkspace を作成します。
New-IoTWorkspace C:\MyWorkspace Contoso arm
(or) new-ws C:\MyWorkspace Contoso arm

IoT Core では、x64、x86、arm、arm64 の 4 つのアーキテクチャがサポートされています。

OEM 名では英数字のみがサポートされます。これは、生成されるさまざまなファイル名のプレフィックスとして使用されるためです。

これにより、IoTWorkspace.xml が生成され、今後の更新に使用できるバージョン番号が設計に対して設定されます。 既定では、最初のバージョン番号は 10.0.0.0 に設定されます

Registry.Version、Custom.Cmd、Provisioning.Auto などの必須パッケージがワークスペースに自動的にインポートされます。

PowerShell session showing setup of new IoTWorkSpace

  1. ワークスペースにサンプル パッケージをインポートします。 パッケージを選択してインポートすることも、すべてインポートすることもできます。
# Importing Recovery packages from sample workspace (create-a-basic-image)
Import-IoTOEMPackage Recovery.*
(or) importpkg Recovery.*
# Below example imports all packages from the sample workspace (create-a-basic-image)
Import-IoTOEMPackage *
(or) importpkg *

Raspberry Pi BSP をインポートする

次の手順では、ボード サポート パッケージ ファイルを取得し、FFU ファイルに含めるその .CAB ファイルを追加またはビルドします。

  1. RPi_BSP.zip をローカル ディレクトリ C:\Downloads\RPi_BSP.zip にダウンロードします。

  2. Import-IoTBSP を使用して、この BSP をインポートします。

Import-IoTBSP RPi2 C:\Downloads\RPi_BSP.zip
(or) importbsp RPi2 C:\Downloads\RPi_BSP.zip

使用できる BSP の詳細については、Windows 10 IoT Core BSP に関するページを参照してください。

テスト プロジェクトを作成する

IoT Core シェル環境から、Raspberry Pi 2 BSP を使用する新しい製品フォルダーを作成します。 このフォルダーはビルドする新しいデバイスを表し、プロジェクトを開始するために使用できるサンプルのカスタマイズ ファイルを含みます。 Add-IoTProduct を使用して、新しい製品を作成します。

Add-IoTProduct ProductA RPi2
(or) newproduct ProductA RPi2

製造元の名前 (OEM 名)、ファミリ、SKU、Baseboard メーカー、Baseboard 製品などの SMBIOS 情報を入力するように求められます。 いくつかの値の例を次に示します。

  • システムの OEM 名: Fabricam
  • システムのファミリ名: FabricamHub
  • システムの SKU 番号: AI-001
  • Baseboard メーカー: Arrow
  • Baseboard 製品: Raspberry Pi 2

BSP 名は、BSP のフォルダー名と同じです。 C:\MyWorkspace\Source-<arch>\BSP フォルダーを調べると、使用可能な BSP を確認できます。

これにより、フォルダー C:\MyWorkspace\Source-<arch>\Products\\ProductA が作成されます。

New Product

OemCustomization.cmd ファイル

すべてのイメージには、デバイスの起動時に毎回実行されるファイル oemcustomization.cmd が含まれます。 このファイルを変更して、起動時に実行される内容をカスタマイズすることができます。 この例では、このファイルは C:\MyWorkspace\Source-<arch>\Products\\ProductA の下にあります。 このファイルの内容は次のとおりです。

@echo off
REM OEM Customization Script file
REM This script if included in the image, is called everytime the system boots.

reg query HKLM\Software\IoT /v FirstBootDone >nul 2>&1

if %errorlevel% == 1 (
    REM Enable Administrator User
    net user Administrator p@ssw0rd /active:yes
    if exist C:\Data\oobe (
        call folderpermissions.exe 'C:\Data\oobe -e'
    )
REM - Enable the below if you need secure boot/bitlocker
REM Enable Secureboot
REM if exist c:\IoTSec\setup.secureboot.cmd  (
REM    call c:\IoTSec\setup.secureboot.cmd
REM )

REM Enable Bitlocker
REM if exist c:\IoTSec\setup.bitlocker.cmd  (
REM    call c:\IoTSec\setup.bitlocker.cmd
REM )
    reg add HKLM\Software\IoT /v FirstBootDone /t REG_DWORD /d 1 /f >nul 2>&1
)

REM The below should be called on every boot
if exist C:\RecoveryConfig\Recovery.BcdEdit.cmd (
    call C:\RecoveryConfig\Recovery.BcdEdit.cmd
)

REM Set the crashdump file locations to data partition, set on every boot.
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CrashControl" /v DedicatedDumpFile /t REG_SZ /d C:\Data\DedicatedDumpFile.sys /f
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\CrashControl" /v DumpFile /t REG_SZ /d C:\Data\MEMORY.DMP /f

Note

カスタム テスト イメージに対しては、BitLocker や SecureBoot などのセキュリティ機能が既定で無効になっていることに注意してください。 これらの機能を (製品イメージに) 含めたい場合は、イメージをビルドする前に、このファイル内の該当する行のコメント アウトを解除します。

Note

このファイル内のコマンドはローカル システム特権で実行されることに注意してください。

パッケージをビルドする

IoT Core シェルから、New-IoTCabPackage を使用して作業フォルダー内のすべてのパッケージをビルドして、製品を作成するための環境を準備します。

New-IoTCabPackage All
(or) buildpkg All

Note

テスト モードでパッケージをビルドするときに SignTool エラーが発生した場合は、installoemcerts.cmd を実行してテクニシャン PC にテスト証明書をインストールしてください。

イメージをビルドする

  1. すべてのリムーバブル記憶域ドライブ (Micro SD カードや USB フラッシュ ドライブを含む) を取り出します。

  2. IoT Core PowerShell 環境で、New-IoTFFUImage を使用して次のコマンドを入力して、FFU イメージ ファイルをビルドします。

New-IoTFFUImage ProductA Test
(or) buildimage ProductA Test

これにより、基本的なイメージが含まれた FFU ファイルが C:\MyWorkspace\Build\<arch>\ProductA\Test にビルドされます。 このテスト イメージには、デバッグ目的で使用できる追加のツールが含まれます。 最終的な FFU ファイルのビルドが完了するまでに、約 10 - 30 分かかります。

すべての出力をログ ファイルではなくコンソールに出力するには、次のような -Verbose フラグを追加します。

new-IoTFFUImage -Verbose ProductX Test

Note

0x80070005 または 0x800705b4 がエラー コードとして表示された場合は、すべての外部ドライブ (Micro SD カードや USB メモリ ドライブを含む) を取り外してから、もう一度やり直します。 それでもうまくいかない場合は、PC のセットアップとサンプルのダウンロードに関する説明に戻って、すべてのものがインストールされていることを確認してください。

Windows IoT Core イメージをフラッシュする

FFU イメージ ファイルがビルドされたので、このファイルを使用して、イメージをデバイスにフラッシュして展開できます。 この FFU イメージ ファイルを特定の製造元のデバイスにフラッシュするための手順を以下に示します。

前提条件または要件

このセクションを完了するには、次のツールがインストールされている必要があります。

  • Windows IoT Core ダッシュボード (Raspberry Pi のみ)
  • Dragonboard Update Tool (Qualcomm DragonBoard のみ)
  • 展開イメージのサービスと管理 (DICM) ツール (Intel デバイスのみ)

ここでは Raspberry Pi を使用しているので Raspberry Pi から始めますが、それ以外のデバイスにイメージをフラッシュする方法についても説明します。

Raspberry Pi

  1. Windows IoT Core ダッシュボードを起動します。

  2. micro SD カードをテクニシャン PC に接続し、ツール内で選択します。

  3. [新しいデバイスのセットアップ] セクションで、[デバイスの種類] で Broadcomm [Raspberry Pi 2 & 3] を選択します

  4. [OS ビルド] で [カスタム] を選択します。

  5. [参照] をクリックして、先ほど作成した FFU ファイルを探して選択します。 ここでは、FFU ファイルは C:\MyWorkspace\Build\<arch>\ProductA\Test\Flash.ffu にあります。 続けて、 [次へ] をクリックします。

  6. microSD カードが [ドライブ] 選択項目に表示されていることを確認します。

  7. 必要に応じて、[デバイス名] および [Administrator のパスワード] 選択項目をデバイスに対して設定できます。

  8. [ソフトウェア ライセンス条項に同意する] チェック ボックス (右下) をオンにして、[インストール] をクリックします。

IoT Dashboard dialog box in Windows settings showing new device set up

Windows IoT Core ダッシュボードでコマンド ウィンドウが開き、DISM (展開イメージのサービスと管理ツール) を使用して FFU ファイルが microSD カードにフラッシュされます。

Raspberry Pi Flashing DISM

Note

または、次のように DISM コマンドを使用して、手動でイメージをフラッシュすることもできます。dism.exe /Apply-Image /ImageFile:"D:\flash.ffu" /ApplyDrive:\\.\PhysicalDrive0 /SkipPlatformCheck

フラッシュ プロセスが完了したら、テクニシャン PC から microSD カードを取り出し、Raspberry Pi に挿入します。 電源装置を再度接続して、Windows IoT Core を起動します。 イメージに関する基本情報が表示された、IoT Core の既定のアプリが表示されます。

Qualcomm

DragonBoard 410c

Qualcomm から、Dragonboard Update Tool アプリケーションが提供されています。これを使用して、FFU イメージ ファイルを Dragonboard 410c にフラッシュします。 x86 または x64 のいずれかのバージョンをダウンロードできます (x64 をお勧めします)。

DragonBoard update tool

DragonBoard Update Tool をインストールしたら、まず、DragonBoard デバイスをプログラミング モードにする必要があります。 これを行うには、ディップスイッチ #1 (デバイスの背面にあります) を ON の位置に設定します。

Dragonboard Dipswitch

microUSB ケーブルと電源をボードに装着して、DragonBoard デバイスをテクニシャン PC に接続します。

DragonBoard Update Tool を実行し、展開する FFU イメージ ファイルを参照して、[プログラム] ボタンをクリックします。 デバイスが FFU ファイルをフラッシュしている間は、接続状態が緑色になり、進行状況バーが表示されます。

フラッシュ プロセスが完了したら、ボードから電源と microUSB ケーブルを取り外します。 その後、ディップスイッチ #1 を OFF の位置に戻す必要があります。 電源装置を再度接続して、Windows IoT Core を起動します。

DragonBoard Update tool position 1DragonBoard Update tool position 2

Intel

Apollo Lake/Braswell/Cherry Trail

DISM (展開イメージのサービスと管理ツール) と起動可能な USB スティックを使用して、指定した Intel デバイス (Apollo Lake/Braswell/Cherry Trail) に FFU イメージ ファイルをフラッシュします。 DISM の追加情報についてはこちらをご覧ください。

起動可能な USB ドライブの作成

最初に、指定した Intel ハードウェア デバイス上で起動するために使用できる、起動可能な USB ドライブを作成する必要があります。 これには Window PE (WinPE) を使用できます (WinPE の追加情報については、こちらをご覧ください)。

  1. Windows ADK Windows Preinstallation Environment アドオンから WinPE をインストールします。

WinPE Install screen

  1. USB ドライブを準備します。

使用する USB ドライブは、WinPE を読み込む前に正しくフォーマットされている必要があります。 USB ドライブを正しくフォーマットするには、次の手順に従います。

  • 管理コマンド プロンプトから diskpart ツールを実行します
  • list disk を実行して、使用可能なディスクの一覧を表示します
  • select disk X を実行します (ここで、X は USB ドライブのディスク番号に対応します)
  • clean を実行して、選択したディスクを消去します

Note

次のエラーが表示された場合は、convert mbr を実行します。

ERROR: Failed to format "F:"; DiskPart errorlevel -2147212244
  • create partition primary を実行して、ディスク上にプライマリ パーティションを作成します
  • format fs=fat32 quick を実行して、ドライブをフォーマットします
  • assign を実行して、ドライブを割り当てます
  • diskpart を終了します。 これで USB ドライブがフォーマットされ、WinPE をインストールする準備ができました。
  1. WinPE 作業ファイルを作成します。

次に、テクニシャン PC で Windows PE ファイルの作業コピーを作成する必要があります。 これを行うには、[展開およびイメージング ツール環境] コマンド ライン プログラムを使用します。 Deployment and Imaging Tools Environment を起動する最も簡単な方法は、スタート メニューで「展開」を検索することです。

[展開およびイメージング ツール環境] コマンド ライン プログラムを管理者として実行し、次のコマンドを実行します。

copype amd64 C:\WinPE_amd64

これにより、Windows PE ファイルの作業コピーが C:\WinPE_amd64 に作成されます。

テクニシャン PC に USB ドライブを挿入し、次のコマンドを実行して USB ドライブに Windows PE をインストールします。 X は USB ドライブのドライブ文字に置き換えることができます。

MakeWinPEMedia /UFD C:\WinPE_amd64 X:
  1. FFU ファイルを USB ドライブのルート ドライブにコピーします。
  2. USB ドライブを Intel ハードウェア デバイスに挿入し、USB ドライブから起動します。 USB ドライブからの起動を指定するために、ハードウェア デバイスの BIOS (またはブート メニュー) を入力する必要がある場合があります。
  3. Windows PE 環境が起動すると、コマンド ウィンドウが表示されます。 ドライブと現在のディレクトリを FFU ファイルの場所に変更します (ドライブの列挙に応じて、C: または D: ..など)次のコマンドを実行して FFU イメージ ファイルをフラッシュします。
dism.exe /Apply-Image /ImageFile:"C:\IoT\Workspaces\ContosoWS\Build\ARM\ProductX\Test\flash.ffu" /ApplyDrive:\\.\PhysicalDrive0 /SkipPlatformCheck

Note

ほとんどの場合、フラッシュするオンボード ストレージのターゲットは PhysicalDrive0 として列挙されますが、複数のストレージ デバイスがある場合は他のドライブ番号として列挙される可能性があります。 ドライブ番号を確認するには、diskpartlist disk コマンドを使用します。

  1. フラッシュ プロセスが完了したら、ハードウェア デバイスの電源を切り、USB ドライブを取り外します。 ハードウェア デバイスに電源を再接続して、Windows IoT Core を起動します。
Diskpart のコマンド
C:\>diskpart
 Microsoft DiskPart version 10.0.17134.1
 Copyright (C) Microsoft Corporation.
 On computer: LWIN-CNCY-BUILD

 DISKPART> list disk

 Disk ###  Status         Size     Free     Dyn  Gpt
 --------  -------------  -------  -------  ---  ---
 Disk 0    Online          447 GB  1024 KB        *
 Disk 1    Online          167 GB  1024 KB        *
 Disk 2    Online           14 GB      0 B        *

 DISKPART> select disk 2
 Disk 2 is now the selected disk.

 DISKPART> clean
 DiskPart succeeded in cleaning the disk.

 DISKPART> convert mbr
 DiskPart successfully converted the selected disk to MBR format.

 DISKPART> create partition primary
 DiskPart succeeded in creating the specified partition.

 DISKPART> format fs=fat32 quick
   100 percent completed

 DiskPart successfully formatted the volume.

 DISKPART> assign
 DiskPart successfully assigned the drive letter or mount point.

 DISKPART> exit
WinPE のコマンド
copype amd64 C:\WinPE_amd64
MakeWinPEMedia /UFD C:\WinPE_amd64 X:
DISM のコマンド (Intel ハードウェア デバイス上の WinPE 経由)
X:\WinPE>d:

D:\>dism.exe /Apply-Image /ImageFile:"C:\IoT\Workspaces\ContosoWS\Build\ARM\ProductX\Test\flash.ffu" /ApplyDrive:\\.\PhysicalDrive0 /SkipPlatformCheck

次のステップ

デバイスをオンにしたままで、「ラボ 1b: イメージへのアプリの追加」に進みます。