USB 3.0 カーネルデバッグ

皆様、いかがお過ごしでしょうか。WDK サポートチームのI沢(アイザワ)です。

今回は、USB3.0 経由でカーネルデバッグを行うお話です。最近の PC には USB3.0 ポートが搭載されているものもかなり増えてきておりますので、是非これまでの USB2.0 よりワンランク上のデバッグ接続方法に移行いたしましょう!単純に USB2.0 に比べて通信速度が速いのと、デバッグ接続方法の選択肢が増えるので、あらかじめ環境を用意しておきたいものです。具体的な接続方法につきましては、基本的に USB2.0 で接続する際の設定とほぼ変わりません。USB2.0 経由での接続方法は、K 里さんの記事ですでに案内しておりますので、こちらをご参照ください。

USB 2.0 カーネル デバッグ 前編

https://blogs.msdn.com/b/jpwdkblog/archive/2009/03/10/usb-2-0.aspx

USB 2.0 カーネル デバッグ 後編

https://blogs.msdn.com/b/jpwdkblog/archive/2009/03/13/usb-2-0-2.aspx

USB 2.0 カーネル デバッグ その後

https://blogs.msdn.com/b/jpwdkblog/default.aspx?PageIndex=3

では、USB2.0 経由での接続となにが異なるかというと、当然ですがハードウェアが異なります!これを一つずつ見ていきましょう。

■ ホスト PC の USB ホストコントローラ

デバッグに使用可能なホスト PC および ターゲット PC のUSB ホストコントローラにはそれぞれ要件があります。要件を満たしているか確認を行なうためにUSB ポートの情報を確認する必要があるのですが、それには USBView を使います。USBView は WDK 8.1 Update に含まれておりますので、以下のサイトからダウンロードしてインストールを行いましょう。

Download kits and tools for Windows

https://msdn.microsoft.com/en-us/windows/hardware/gg454513.aspx

デフォルト設定のままインストールした場合は、”C:\Program Files (x86)\Windows Kits\8.1\Tools” フォルダの各アーキテクチャ別のフォルダに格納されております。ここでは、”C:\Program Files (x86)\Windows Kits\8.1\Tools\x64\usbview.exe” を使用します。

まずは、ホスト PC で要件を満たしているか確認しましょう。USBView を実行して ホストコントローラの情報を確認します。赤い枠線で囲まれているところをご確認ください。ホストコントローラが xHCI に対応していることが確認できます。このように、ホスト PC のホストコントローラは xHCI に対応している必要があります。

clip_image002

デバイスマネージャー上から対象のホストコントローラに適用されているドライバを確認することでもホストコントローラの種類を判別できます。以下のように USBXHCI.SYS がロードされていれば、xHCI 対応のホストコントローラと考えて問題ないでしょう。

clip_image004

あとは当然ポートが USB3.0 に対応している必要があります。こちらも USBView で確認できるので併せて確認しておきましょう。

clip_image006

■ ターゲット PC の USB ホストコントローラ

ターゲット PC がデバッグを行うための要件を満たしているか確認いたします。ホストコントローラが xHCI に対応している点、及びポートが USB3.0 に対応してる必要がある点はホスト PC と変わりません。

追加で確認しなければならない点は、デバッグに使用可能なポートかどうかという点です。USBView で “Is Port Debug Capable” が “yes” と表示されていれば OK です!。

clip_image008

■ USB3.0 ケーブル

ホスト PC とターゲット PC を接続するケーブルにも少々注意が必要です。

コネクタタイプが A-A のクロスオーバーケーブルである必要があります。また、USB3.0 用のピンだけ接続されている必要があります。

もし対応しているケーブルを探す場合は、”USB 3.0 debug cable” といったキーワードで検索すると見つかるかもしれません。

さぁハードウェアの準備はできましたでしょうか!?

あとは先ほどの K 里さんの記事を基に接続設定を行いましょう!

準備ができたら接続を行います…

clip_image010

接続できましたね!これで快適デバッグライフが送れます!

ではまたお会いいたしましょう!

■ 参考

Setting Up Kernel-Mode Debugging over a USB 3.0 Cable Manually

https://msdn.microsoft.com/en-us/library/windows/hardware/hh439372%28v=vs.85%29.aspx?f=255&MSPPError=-2147217396