ラボ 1c: イメージへのファイルとレジストリ設定の追加

Windows IoT Core イメージに対してテスト ファイルとレジストリ キーを作成し、それらをパッケージ化して、顧客に配布された後でサービスを提供できるようにします。 イメージに追加するファイルとレジストリ キーは、多くの場合、アーキテクチャに固有のものではないので、すべてのデバイス アーキテクチャで使用できる共通パッケージを作成することをお勧めします。

目標

  • デバイス用のレジストリとファイル設定を含んだパッケージを作成する
  • レジストリ/ファイル設定パッケージをパッケージ化して、FFU イメージに含めることができるようにする
  • レジストリ/ファイル設定パッケージを含めるように、IoT Addon Kit プロジェクト構成ファイルを変更する
  • レジストリ/ファイル設定パッケージを含んだ FFU イメージをビルドして展開する

イメージに対していくつかのテスト ファイルとレジストリ キーを作成し、それらを再びパッケージ化して、顧客に届いた後にサービスを提供できるようにします。

これらは、x86、x64、Arm ビルドで使用される共通機能マニフェスト (OEMCommonFM.xml) に追加します。

このラボでは、ProductB という製品を新たに作成します。これにより、後で IoT サンプル アプリを使用してデバイスの IP アドレスを取得し、ファイルとレジストリ キーが機能したことを確認できるようになります。

前提条件

以前に、基本イメージの作成に関するページに従って基本イメージを作成していることを確認してください。

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

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

テスト ファイルを作成する

メモ帳を使用していくつかのサンプル テキスト ファイルを作成し、ランダムなテキストを追加して、それらのファイルが空でない状態にします。 この例では、TestFile1.txt および TestFile2.txt という 2 つのファイルを作成しました。

テスト ファイル用のパッケージをビルドする

  1. IoT Core PowerShell Environment を開きます。C:\MyWorkspace\IoTCorePShell.cmd を管理者として実行し、Add-IoTFilePackage を使用してファイル パッケージを作成します。

    # Array of files with destinationDir, Source and destinationFilename
    $myfiles = @(
        ("`$(runtime.system32)","C:\Temp\TestFile1.txt", ""),        
        ("`$(runtime.bootDrive)\OEMInstall","C:\Temp\TestFile2.txt", "TestFile2.txt")
        )
    Add-IoTFilePackage Files.Configs $myfiles
    

    これで、C:\MyWorkspace\Common\Packages\Files.Configs に新しいフォルダーが作成されます。

    また、FeatureID FILES_CONFIGSC:\MyWorkspace\Common\Packages\OEMCOMMONFM.xml ファイルに追加されます。

    C:\Program Files (x86)\Windows Kits\10\Tools\bin\i386\pkggen.cfg.xml には、$(runtime.system32) のような変数が定義されます。

  2. Add-IoTRegistryPackage を使用して Registry package を作成します。

    # Array of files with destinationDir, Source and destinationFilename
    $myregkeys = @(
        ("`$(hklm.software)\`$(OEMNAME)\Test","StringValue", "REG_SZ", "Test string"),
        ("`$(hklm.software)\`$(OEMNAME)\Test","DWordValue", "REG_DWORD", "0x12AB34CD")
        )
    Add-IoTRegistryPackage Registry.Settings $myregkeys
    

    これで、C:\MyWorkspace\Common\Packages\Registry.Settings に新しいフォルダーが作成されます。

    また、FeatureID REGISTRY_SETTINGSC:\MyWorkspace\Common\Packages\OEMCOMMONFM.xml ファイルに追加されます。

  3. New-IoTCabPackage を使用してパッケージをビルドします。

    New-IoTCabPackage Files.Configs
    (or) buildpkg Files.Configs
    New-IoTCabPackage Registry.Settings
    (or) buildpkg Registry.Settings
    

    パッケージがビルドされ、C:\MyWorkspace\Build\<arch>\pkgs で使用可能になります。

新しい製品を作成する

  1. 新しい製品フォルダーを作成します。

    Add-IoTProduct ProductB RPi2
    (or) newproduct ProductB RPi2
    

    これを実行すると、SMBIOS 値の入力を求めるメッセージが表示されます。

プロジェクトの構成ファイルを更新する

Add-IoTProductFeature を使用して製品テスト構成を更新し、機能を含めます。

Add-IoTProductFeature ProductX Test FILES_CONFIGS -OEM
(or) addfid ProductX Test FILES_CONFIGS -OEM
Add-IoTProductFeature ProductX Test REGISTRY_SETTINGS -OEM
(or) addfid ProductX Test REGISTRY_SETTINGS -OEM

イメージをビルドしてテストする

基本的なイメージの作成に関するページに指定されているように、FFU イメージをもう一度ビルドします。 実行する必要があるのは New-IoTFFUImage コマンドのみです。

New-IoTFFUImage ProductX Test
(or)buildimage ProductX Test 

FFu ファイルがビルドされたら、Windows IoT Core イメージのフラッシュに関するページで指定されているように、これをハードウェア デバイスにフラッシュできます。

追加されたファイルとレジストリ キーを確認する

デバイスにファイルが追加されたことを確認するには、次の手順を実行します。

  1. テクニシャン PC とデバイスの両方を同じイーサネット ネットワークに接続します。

    たとえば、ワイヤード (有線) ネットワーク経由で接続するには、イーサネット ケーブルを接続します。 デバイスに直接接続するには、テクニシャン PC からデバイスにネットワーク ケーブルを直接接続します。

  2. テスト アプリで、デバイスの IP アドレスをメモします。 たとえば、10.100.0.100 などです。

  3. テクニシャン PC で、エクスプローラーを開き、\ プレフィックスと \c$ サフィックスを使用して、デバイスの IP アドレスを入力します。

    \\10.100.0.100\c$
    

devicename (既定の管理者アカウント) とパスワードを使用してログオンします (既定値は minwinpc\Administrator / p@ssw0rd です)。

  1. デバイスにファイルが存在しているかどうかを確認します。 この例では、次を探します。

    \\10.100.0.100\c$\Windows\system32\TestFile1.txt

    \\10.100.0.100\c$\OEMInstall\TestFile2.txt

レジストリ キーを確認する

  1. テクニシャン PC で、SSH クライアント (PuTTY など) を使用してデバイスに接続します。 たとえば、IP アドレスとポート 22 を使用してデバイスに接続します。 次に、管理者アカウントとパスワードを使用してログインします (詳しくは、「SSH」をご覧ください)。

  2. SSH クライアントのコマンド ラインから、システムに対してレジストリ キーを照会します。 この例では、次のコマンドを実行してレジストリ キーの存在を確認しました。

    reg query HKLM\Software\Fabrikam\Test
    

    SSH クライアントにテスト値が表示されます。

    なお、Windows デバイス ポータルで Run Command を使用して、接続したデバイスで reg query コマンドを実行することもできます。

    Windows デバイス ポータルでコマンドを実行する

出力ウィンドウにテスト値が表示されます。

次のステップ

ラボ 1d: イメージへのプロビジョニング パッケージの追加