トラブルシューティング

これは、ユーザーが直面する一般的なトラブルシューティング問題が記載された記事です。

ヒント

特定の対象を検索するには、Ctrl + F を使用して単語や語句を検索します。

SKU の識別

GetProductInfo API によって IoT Core の SKU やエディションに関する情報が識別されます。 エディションや製品の ID がイメージにベイクされます。

PRODUCT_IOTUAP: 0x0000007B = Windows 10 IoT Core

エディションの ID に関する詳細情報は、こちらに見つかります。

Windows 10 IoT Core でのハードウェア仮想キーのマッピング

HID キーボードとしてのレポートに切り替え、コンシューマー コントロールの代わりに仮想キーを送信します。

メモリ割り当ての最小化

OS によって制御されるメモリと処理を最小限に抑えるには、OS が明確であり、ディスプレイが接続されていないことを確認します。 何も接続されていないときは、Intel INF の設定でディスプレイが偽装されていないことを確認し、外部 DisplayPort へのすべての出力を構成します。 これにより、DWM は実行されますが、モニターがアイドル状態であるかのように動作します。

ロットを受け取り、クラッシュ ダンプが発生する

特に UWP アプリの場合:

  1. アプリがストアによる署名を受け、デベロッパー センターのアプリ ポータルを通じてテレメトリを受け取ります。 cal スタックは受け取りますが、フル ダンプは受け取りません。
  2. WerRegisterAppLocalDump を使用してアプリがダンプ ログに送られるようにし、それらが任意の場所にアップロードされるようにアプリを設定できます。
  3. 加えて、VSAppCenter または HockeyApp を使用して、さらにインストルメント化できます。

システムの問題の場合 (NTServices、OS の安定性、ドライバー):

  1. Microsoft では、クラッシュが発生しているサービス、OS のコンポーネント、ドライバーに関するコール スタックと情報をお客様が受け取れるように、パートナー テレメトリ分析情報ポータルに取り組んでいます。
  2. デバイスから dmp ファイルを取得するためにカスタム スクリプトや exe を使用できます。
  3. Azure IoT DM を使用してデバイス上の ETW トレーシングを必要に応じて構成し、ログをキャプチャできます。
  4. カスタムの exe をビルドして wevtapi.dll を呼び出し、最後にシャットダウンした理由を記録することができます。

SLEEPSTUDY の実行

Windows 10 IoT Core で SLEEPSTUDY を実行しようとするとエラー 0x080004005 が発生する場合は、次を実行して SLEEPSTUDY のレポートを生成する必要があります。

  1. SSH または PowerShell から、IoT Core でコマンド powercfg / sleepstudy / xml を実行します。
  2. これにより、"sleepstudy-report.xml" が生成されます。
  3. 生成された sleepstudy-report.xml レポートをデスクトップ マシンにコピーし、"powercfg/sleepstudy/transformxml sleepstudy-report.xml" を実行します。
  4. 最終的な sleepstudy-report.html が生成されます。

サービス アプリと NTServices への対応

App Store または Azure Blob を使用して、アプリの高速イテレーションを実行できます。 App Store を使用すると、CDN と egrees に対して支払う必要はありません。 Store では、世界中の CDN カバレッジも無料で利用できます。 経験則として、アプリの高速更新のために発行する際には、ストア ID とストア更新を準備しておくことをお勧めします。

デバイスの Bluetooth クラスを "not a PC" (PC でない) に設定する

適切な相互運用と Bluetooth の互換性のためには、Bluetooth スタックがデバイスの適切なクラス (COD) を示す必要があります。 標準によって定義されたさまざまな値はこちらで確認できます。   Windows では、既定で SmBios のエンクロージャの種類の値からフォーム ファクター データを読み取り (ページ 38 の表 17 を参照)、そこから CoD のメジャー デバイス クラスとマイナー デバイス クラスのフィールドを抽出します。 プラットフォームがエンクロージャの種類を介して割り当てられた既定の COD をオーバーライドする場合は、 ここに記載されている "COD Major" と "COD Type" の値を設定することでオーバーライドできます。

コンピューター名の設定

IoT には、"SetComputerName" という Win32 ツールが組み込まれています。  これは、コンピューター名を変更するために呼び出すことができます。  名前を変更するには、再起動が必要です。  残念ながら、このユーティリティは管理者コンテキストから呼び出す必要があり、UWP アプリは DefaultAccount ユーザー コンテキストで実行されます。   これを回避する方法の 1 つとして、SetComputerName を呼び出す、手動でトリガーされるスケジュールされたタスクからバッチ ファイルを実行する方法があります。  バッチ ファイルでは、メインの UWP アプリの名前の保存先となるテキスト ファイルから、目的のコンピューター名を読み取る必要があります。  たとえば、UWP アプリでファイルをパブリック ドキュメント フォルダーに保存し、バッチ ファイルでそのファイルを読み取ることができます。  その後、UWP アプリはプロセス起動ツールを使用する必要があります (スケジュールされたタスクを実行するようにトリガーする (例: schtasks /run /TN "SetMyComputerNameTask") プロセス ランチャーに関するドキュメントはこちら schTasks に関するドキュメントはこちら

ASUS Tinkerboard と Rockchip のサポート

ASUS Tinkerboard と Rockchip は、Microsoft では公式にはサポートされていませんが、Windows 10 IoT Core で SoC を機能させるために、Rockchip が他のサード パーティと協力したケースもあります。

ローミング時に MBM デバイスを接続すると問題が発生する

ローミングを有効にするときには、次の 2 つの点を考慮する必要があります。

  1. profile.xml は、ローミングを構成し、移動体通信ネットワークへの接続を自動的に確立するように動作を設定します。 ローミングのプロファイルを設定するには、こちらの記事を参照してください。

      <!-- applicability to any combination of home carrier, partner MOs and non-partner MOs, except for HomeAndNonPartner -->
      <xs:simpleType name="roamApplicabilityType">
        <xs:restriction base="xs:token">
           <xs:enumeration value="NonPartnerOnly"/>
           <xs:enumeration value="PartnerOnly"/>
           <xs:enumeration value="HomeOnly"/>
           <xs:enumeration value="HomeAndPartner"/>
           <xs:enumeration value="PartnerAndNonpartner"/>
           <xs:enumeration value="AllRoaming"/>
        </xs:restriction>
      </xs:simpleType>
    
      <xs:simpleType name="roamControlType">
        <xs:restriction base="xs:token">
           <xs:enumeration value="AllRoamAllowed"/>
           <xs:enumeration value="PartnerRoamAllowed"/>
           <xs:enumeration value="NoRoamAllowed"/>
        </xs:restriction>
      </xs:simpleType>
    

    自動接続のプロファイルを設定するには、"auto" を選択します。

    <!-- Connection Mode, default is "manual" -->
        <xs:element name="ConnectionMode" minOccurs="0">
          <xs:simpleType>
            <xs:restriction base="xs:string">
              <!-- manual connect always -->
              <xs:enumeration value="manual" />
              <!-- auto connect always -->
              <xs:enumeration value="auto" />
              <!-- auto connect when not roaming -->
              <xs:enumeration value="auto-home"/>
            </xs:restriction>
          </xs:simpleType>
        </xs:element>
    
  2. もう 1 つの要素は、インターフェイスごとのローミング ポリシーを満たす必要があることです。 既定では、そのポリシーは FALSE ("ホーム通信事業者のみ") に設定されます。 これは、コマンド ラインで netsh mbn get/set dataroamcontrol. を使用してクエリおよび変更できます。

    例:

        netsh mbn show dataroamcontrol int=*
        netsh mbn set dataroamcontrol interface=Cellular profileset=all state=all
        netsh mbn set dataroamcontrol help
    

    デバイスがローミングしているのに、ローミング ポリシーがデータ ローミングを許可しない場合、エラー0x139f (ERROR_INVALID_STATE) が発生することがあります。これは、wwansvc に送信された接続要求に関するエラーです。

Raspberry Pi 3B+ の起動に関する問題

注意

Raspberry Pi 3B+ 用のこのリリースは、サポート対象外のテクニカル プレビューです。 限定的な検証と有効化が完了しています。 より良い評価エクスペリエンスおよび商用製品を希望される場合は、Raspberry Pi 3B またはサポート対象の Intel、Qualcomm、または NXP SoC を搭載したその他のデバイスを使用してください。 Raspberry Pi 3B+ に関する問題のトラブルシューティングについては、こちらでトラブルシューティング ガイドを参照してください。

Raspberry Pi 3 Model B+ は、Raspberry Pi 3 範囲の最新製品で、1.4 GHz で動作する 64 ビットのクアッド コア プロセッサ、デュアル バンド 2.4 GHz と 5 GHz のワイヤレス LAN、Bluetooth 4.2/BLE、より高速なイーサネット、別個の PoE HA を介した PoE 機能を備えています。

最近、Windows10 IoT Core に関心を寄せられた多くのお客様が Windows 10 IoT Core のフラッシュ後にデバイスを正常に起動できないという問題に直面しましたが、Raspbian ではそれに適切に対処できます。 以下に、起動の問題のトラブルシューティングに関する推奨事項をいくつか示します。

この Insider Preview イメージには既知の問題がいくつかあります。 次の点に注意してください。

  • このイメージは Raspberry Pi 3B+ 専用で、Raspbierry Pi 2 では起動しません。
  • Visual Studio からの F5 ドライバーのデプロイは、Windows 10 IoT Core では機能しません。
  • オンボードの Wi-Fi と Bluetooth は、Raspberry Pi 3B+ では機能しません。
  • Ft5406 タッチ スクリーン ドライバーは、Raspberry Pi 3B+ では無効になっています。
  • SD カード アクティビティ LED は無効になっています。

Windows 10 IoT Core でどの SD カードを使用するかを選択するときの要件は2 つしかありません。 クラス 10 の SD カードを使用する必要があります。また、カードに十分な容量 (少なくとも 8 GB の容量) があることを確認してください。 Windows 10 IoT Core と互換性があることが Microsoft によって検証された SD カードがいくつかあります。

  • Samsung EVO 32 GB クラス 10 Micros SDHC カード
  • SanDisk Ultra Micro SDHC、16 GB カード

一般的には、SD カードが偽物ではないこと、損傷またはデータの破損がないことを確認する必要があります。 SD カードは、電力不足や不適切な取り外しなど、さまざまな要因によって同じようにデータが破損する傾向があります。 メモリ カードが破損しないように保護することが重要です。

イメージを SD カードにフラッシュするために、Windows 10 IoT Core ダッシュボードを使用できます。 [OS ビルド] フィールドで "カスタム" を選択してから、フラッシュする FFU ファイルを選択する必要があります。

デバイスにハードウェア障害がないかどうかを確認します。 Raspberry Pi 3B+ ボードには 3B と同じ 2 つの LED があります。 1 つは PWR 用で、もう 1 つは ACT 用です。 ACT ライトの点滅回数によって、ボードが起動中かどうかが分かります。 Raspberry Pi 3B+ での起動中に、SD カード アクティビティ LED が点滅しないことがあります。

デバイスが起動中で、デバイスによって待機ページが表示されたら、しばらくお待ちください。 通常、これは最大で 1 分続きます。 ただし、SD カードの読み書き速度が原因で、さらに時間がかかる場合があります。

Windows 10 IoT Core でデバイスを正常に起動できない場合は、Linux OS (Raspbian など) を SD カードにフラッシュして、問題の原因がハードウェアにあるかどうかを絞り込むことができます。

"虹のような画面" が表示されていることに気づいた場合は、こちらで入手可能な 3B+ リリース バージョンをフラッシュしたことを確認してください。 コミュニティで投稿された 3B+ フラッシュ チュートリアル (こちら) でプロセスを検証することができます。

Raspberry Pi 向け Windows 10 IoT Core のシリアル ポート通信

Raspberry Pi では、ハードウェア UART および USB UART アダプターの両方が、シリアル通信を使用するアプリケーションで使用できます。 既定では、UART の送信ピンと受信ピンは GPIO ヘッダーのピン 8 と 10 です。

UART および USB UART アダプター

UART0 を初期化し、書き込みの後に読み取りを実行する方法について詳しくは、こちらの記事で確認できます。

また、Radio Frequency Communication (RFCOMM) は、従来の Bluetooth の基本となるシリアル通信です。 Windows 10 IoT Core で UWP アプリを実行して、Bluetooth シリアル経由で IoT デバイスに接続する方法については、こちらの GitHub サンプルを参照してください。

デバイスがシリアル ポート経由でデータの読み取り/書き込みができない場合は、次の手順に従ってトラブルシューティングしてください。

  1. TX をジャンパーで RX に接続し (下図参照)、次にサンプル コードを実行して、アプリがデータの読み取り/書き込みを実行可能かどうかを確認します。 これが機能しない場合は、ボード上の IC が破損している可能性があります。

    Raspberry Pi で TX から RX に接続

  2. BaudRate、Handshaking、StopBits が正しく構成されていることをご確認ください。 テストするシリアル ポートに完全な RS232 インターフェイス (DB9 など) が備わっている場合は、一般的なハンドシェイク クロスオーバーで接続された RxTx クロスオーバー ワイヤ付きの DB プラグを使用してください。 一部の RS232 ポート (または USB アダプター) では、正常に機能させるために、Carrier Detect (DCD) や DCE Ready (DSR) などのシグナルをアサートしておく必要があります。

  3. Windows 10 IoT Core で USB UART アダプターを使用する場合は、次のものがサポートされます。

  • CP2102 USB 2.0
  • TTL モジュール シリアル コンバーター
  • FTDI
  • 汎用 usbser.sys

また、devcon.exe スタックとdevcon.exe状態コマンドレットを使用して、Windows 10 IoT Coreで予想されるドライバー スタックとドライバーの状態をチェックすることもできます。

USB\VID_10C4&PID_EA60\0001
    Name: Silicon Labs CP210x USB to UART Bridge
    Setup Class: {4d36e978-e325-11ce-bfc1-08002be10318} Ports
    Controlling service:
        silabser

Mincomm も、シリアル ポートの問題をトラブルシューティングするのに役立つツールです。 このツールは、ポートの列挙、それらのフレンドリ名とデバイス ID の指定、ポートのオープン、設定 (ボーレート、ストップビットなど) の構成、データの送受信を行うことができます。

Sirep Test サービス

既定では、 Sirep Test サービスは製品版のイメージで有効になっていませんが、起動時に Sirep サービスを無効にしたい場合は、ログインして Sirep を自動起動から無効にすることができます。

次に示す PowerShell コマンドを使用して、それを行うことができます。

administrator@MINWINPC C:\Data\Users\administrator>sc stop TestSirepSvc

SERVICE_NAME: TestSirepSvc
       TYPE               : 20  WIN32_SHARE_PROCESS
        STATE              : 3  STOP_PENDING
                                (STOPPABLE, NOT_PAUSABLE, ACCEPTS_PRESHUTDOWN)
        WIN32_EXIT_CODE    : 0  (0x0)
        SERVICE_EXIT_CODE  : 0  (0x0)
        CHECKPOINT         : 0x4
        WAIT_HINT          : 0x1770

administrator@MINWINPC C:\Data\Users\administrator>sc query TestSirepSvc

SERVICE_NAME: TestSirepSvc
        TYPE               : 20  WIN32_SHARE_PROCESS
        STATE              : 1  STOPPED
        WIN32_EXIT_CODE    : 0  (0x0)
        SERVICE_EXIT_CODE  : 0  (0x0)
        CHECKPOINT         : 0x0
        WAIT_HINT          : 0x0

administrator@MINWINPC C:\Data\Users\administrator>sc config TestSirepSvc start=disabled
[SC] ChangeServiceConfig SUCCESS

タブレット モード

"タブレット モード" はデスクトップ シェルにのみ存在する概念であり、IoT Core には適用されません。

デバイスで (I2C または USB HID タッチによって) ハードウェアがサポートされている場合、タッチはインボックス クラス ドライバーを使用して自動的に機能するはずです。 詳細については、こちらを参照してください。

Yubikey サポート

Windows 10 IoT Core はスマート カードをサポートしていません。 ただし、スマート カードは、PIN と押しボタン (Yubikey の場合) で保護されているため、一般的にはデバイス ID ではなくユーザー ID に使用されるデバイスです。 これは、IoT デバイスとは調和しません。 代替物をお探しの場合は、デバイス上の TPM 2.0 が Yubikey やスマート カードよりも役立つ可能性があります。 Microsoft には TPM の完全な証明書サポートがあります。デバイスに加え、ユーザー証明書や Azure IoT のアクセス資格情報 (Limpet) も格納するようになっています。