次の方法で共有


USB 2.0 ケーブルを経由のカーネルモード デバッグの手動設定

Windows用デバッグ・ツールは、USB 2.0ケーブル経由でのカーネル・デバッグをサポートしています。 このトピックでは、USB 2.0デバッグを手動でセットアップする方法について説明します。

デバッガを実行するコンピューターは ホスト コンピューターと呼ばれ、デバッグ対象のコンピューターは ターゲット コンピューターと呼ばれます。

USB 2.0ケーブルでのデバッグには、以下のハードウェアが必要です:

  • USB 2.0デバッグケーブル。 USB2.0デバッグ・ケーブル USB2.0デバッグ・ケーブル USB2.0デバッグ・ケーブル USB2.0デバッグ・ケーブル USB2.0デバッグ・ケーブル USB2.0デバッグ・ケーブル USB2.0デバッグ・ケーブル これらのケーブルは、USB 2.0 デバッグケーブルという用語でインターネット検索すると見つけることができます。

  • ホストコンピュータ上では、EHCI(USB 2.0)ホストコントローラ

  • ターゲット・コンピュータ上では、デバッグをサポートするEHCI(USB 2.0)ホスト・コントローラ。

トラブルシューティングを簡素化するため、ハブやドッキング・ステーションを避けて、ターゲット・コンピュータとホスト・コンピュータの間にケーブルを直接接続してください。

ターゲット コンピューターのセットアップ

  1. ターゲットコンピュータで、UsbViewツールを起動します。 UsbViewツールはWindows用のデバッグツールに含まれています。

  2. UsbViewで、EHCI仕様と互換性のある全てのホストコントローラを探します。 例えば、Enhancedと表示されているコントローラを探します。

  3. UsbViewで、EHCIホストコントローラのノードを展開します。 ホストコントローラがデバッグをサポートしていることを示す表示を探し、デバッグポートの番号を探します。 例えば、UsbViewはポート1のデバッグをサポートするEHCIホストコントローラに対して、このような出力を表示します。

    Xxx xxx xxx USB2 Enhanced Host Controller - 293A
    ...
    Debug Port Number:  1
    Bus.Device.Function (in decimal): 0.29.7
    

    多くのEHCIホストコントローラはポート1でのデバッグをサポートしていますが、一部のEHCIホストコントローラはポート2でのデバッグをサポートしています。

  4. デバッグに使用するEHCIコントローラのバス番号、デバイス番号、ファンクション番号をメモしておいてください。 UsbViewはこれらの番号を表示します。 前述の例では、バス番号は0、デバイス番号は29、ファンクション番号は7です。

  5. デバッグをサポートする EHCI コントローラとポート番号を確認したら、次は正しいポート番号に関連する物理的な USB コネクタを探します。 物理コネクタを見つけるには、USB 2.0デバイスをターゲットコンピュータのUSBコネクタに接続します。 UsbViewをリフレッシュして、デバイスの位置を確認します。 UsbViewに、デバッグ・ポートとして特定したEHCIホスト・コントローラとポートに接続されているデバイスが表示されていれば、デバッグに使用できる物理的なUSBコネクタが見つかったことになります。 EHCIコントローラのデバッグ・ポートに関連する外部物理USBコネクタがない可能性もあります。 その場合は、コンピュータ内部の物理 USB コネクタを探します。 同じ手順で、内部 USB コネクタがカーネル・デバッグに適しているかどうかを判断します。 デバッグ・ポートに関連付けられている物理的な USB コネクタ(外部または内部)が見つからない場合、USB 2.0 ケーブルを介したデバッグのターゲットとしてコンピュータを使用することはできません。

    例外については、この記述を参照してください。

重要

BCDEdit を使用してブート情報を変更する前に、テスト PC で BitLocker やセキュア ブートなどの Windows セキュリティ機能を一時的に中断することが必要になる場合があります。 デバッグが完了し、カーネル デバッグを無効にしたら、セキュア ブートを再度有効化できます。

  1. ターゲットコンピュータで、コマンドプロンプトウィンドウを管理者として開き、以下のコマンドを入力します:

    • bcdedit /debug on
    • bcdedit /dbgsettings usb targetname:TargetName

    ここで、TargetNameはターゲットコンピュータ用に作成した名前です。 TargetNameは、ターゲットコンピュータの正式な名前である必要はないことに注意してください:

    • 文字列は、大文字と小文字の組み合わせを問わず、TargetName のどこにも「debug」を含んではならない。 例えば、TargetNameのどこかに "DeBuG "または "DEBUG "を使用した場合、デバッグは正しく動作しません。
    • 文字列に使用できる文字は、ハイフン(-)、アンダースコア(_)、数字の0~9、アルファベットのA~Z(大文字または小文字)のみです。
    • 文字列の長さは最大で 24 文字です。
  2. デバイスマネージャーで、デバッグに使用するUSBコントローラーを探します。 GeneralタブのLocationの下に、バス番号、デバイス番号、ファンクション番号が表示されます。 次のコマンドを入力します。

bcdedit /set "{dbgsettings}" busparams b.d.f

b, d, およびf は、ホストコントローラのバス番号、デバイス番号、ファンクション番号です。 バス番号、デバイス番号、ファンクション番号は、10進数形式でなければなりません(例えば、busparams 0.29.7)。

  1. ターゲット コンピューターを再起動します。

ホストコンピュータのセットアップ

  1. ホスト・コンピュータがUSBデバッグのターゲットとして設定されていないことを確認します。 (必要に応じて、管理者としてコマンドプロンプトウィンドウを開き、bcdedit /debug offと入力し、再起動します)。
  2. ホストコンピュータ上で、UsbViewを使用して、デバッグをサポートするEHCIホストコントローラとポートを見つけます。 可能であれば、USB 2.0デバッグケーブルの一端を、デバッグをサポートしていない(ホストコンピュータ上の)EHCIポートに差し込みます。 それ以外の場合は、ケーブルをホスト コンピュータの EHCI ポートに接続します。
  3. USB 2.0 デバッグ ケーブルのもう一方の端を、ターゲット コンピュータ上で前に確認したコネクタに差し込みます。

初めてデバッグセッションを開始する

  1. ホストコンピュータ上で実行されている Windows のビット数 (32 ビットまたは 64 ビット) を決定する。
  2. ホストコンピュータで、ホストコンピュータで実行されているWindowsのビットサイズに合ったバージョンのWinDbgを(管理者として)開きます。 例えば、ホスト・コンピュータがWindowsの64ビット・バージョンを実行している場合、64ビット・バージョンのWinDbgをAdministratorとして開きます。
  3. File メニューの Kernel Debug を選択します。 [カーネル デバッグ] ダイアログ ボックスで、[USB] タブを開きます。ターゲット コンピュータのセットアップ時に作成したターゲット名を入力します。 OK をクリックします。

この時点で、USB デバッグ ドライバーがホスト コンピューターにインストールされます。 このため、WinDbg のビット数を Windows のビット数に合わせることが重要である。 USB デバッグ ドライバーをインストールすると、以降のデバッグ セッションで WinDbg の 32 ビット バージョンまたは 64 ビット バージョンを使用できます。

USB 2.0 デバッグ ケーブルは、実際には 2 本のケーブルであり、中央にドングルが付いています。 ドングルの方向は重要です。 一方はデバイスに電力を供給しますが、もう一方は電力を供給しません。 USB デバッグが機能しない場合は、ドングルの方向を交換してみてください。 つまり、両方のケーブルをドングルから取り外し、ケーブルが接続されている側を交換します。

デバッグセッションの開始

WinDbg の使用

ホスト コンピューターで WinDbg を開きます。 [ファイル] メニューの [カーネル デバッグ] を選択します。 [カーネル デバッグ] ダイアログ ボックスで、[USB] タブを開きます。ターゲット コンピュータのセットアップ時に作成したターゲット名を入力します。 OK をクリックします。

コマンド プロンプト ウィンドウに次のコマンドを入力して、WinDbg とのセッションを開始することもできます。TargetName は、ターゲット コンピューターのセットアップ時に作成したターゲット名です。

windbg /k usb:targetname=TargetName

KD の使用

ホスト コンピュータでコマンド プロンプト ウィンドウを開き、次のコマンドを入力します。TargetName は、ターゲット コンピュータのセットアップ時に作成したターゲット名です。

kd /k usb:targetname=TargetName

USBView にデバッグ可能なポートは表示されるが、物理コネクタにマッピングされたポートが表示されない場合はどうすればよいでしょうか?

一部のコンピュータでは、USBView にデバッグ可能なポートが表示されますが、物理 USB コネクタにマップされたポートは表示されません。 たとえば、USBView では、eHCI コントローラーのデバッグ ポート番号としてポート 2 が表示される場合があります。

... USB Enhanced Host Controller ...
...
Debug Port Number:  2
Bus.Device.Function (in decimal): 0.29.0

また、USBView を使用して個々のポートを確認すると、デバッグ可能としてリストされます。

[Port 2]
Is Port User Connectable: Yes
Is Port Debug Capable: Yes
...
Protocols Supported
  USB 1.1      yes
  USB 2.0      yes
  USB 3.0      no

ただし、USB 2.0 デバイス (フラッシュ ドライブなど) をコンピュータのすべての USB コネクタに接続すると、USBView ではデバイスがデバッグ対応ポート (この例ではポート 2) に接続されていることが表示されません。 USBView では、実際には外部コネクタが eHCI コントローラのデバッグ対応ポートにマッピングされているにもかかわらず、外部コネクタが xHCI コントローラのポートにマッピングされていると表示される場合があります。

USBView の xHCI コントローラーと EHCI コントローラーのスクリーンショット。

このような場合でも、USB 2.0 ケーブル経由でカーネル モード デバッグを確立できる可能性があります。 ここに示す例では、xHCI コントローラーのポート 2 にマッピングされているように表示されているコネクタに USB 2.0 デバッグ ケーブルを接続します。 次に、バス パラメーターを eHCI コントローラーのバス、デバイス、および機能番号 (この例では 0.29.0) に設定します。

bcdedit /set "{dbgsettings}" busparams 0.29.0

その他のサポート

トラブルシューティングのヒントやその他の情報については、Microsoft USB ブログを参照してください。

関連項目

カーネル モードのデバッグを手動でセットアップする