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 に対応している必要があります。
デバイスマネージャー上から対象のホストコントローラに適用されているドライバを確認することでもホストコントローラの種類を判別できます。以下のように USBXHCI.SYS がロードされていれば、xHCI 対応のホストコントローラと考えて問題ないでしょう。
あとは当然ポートが USB3.0 に対応している必要があります。こちらも USBView で確認できるので併せて確認しておきましょう。
■ ターゲット PC の USB ホストコントローラ
ターゲット PC がデバッグを行うための要件を満たしているか確認いたします。ホストコントローラが xHCI に対応している点、及びポートが USB3.0 に対応してる必要がある点はホスト PC と変わりません。
追加で確認しなければならない点は、デバッグに使用可能なポートかどうかという点です。USBView で “Is Port Debug Capable” が “yes” と表示されていれば OK です!。
■ USB3.0 ケーブル
ホスト PC とターゲット PC を接続するケーブルにも少々注意が必要です。
コネクタタイプが A-A のクロスオーバーケーブルである必要があります。また、USB3.0 用のピンだけ接続されている必要があります。
もし対応しているケーブルを探す場合は、”USB 3.0 debug cable” といったキーワードで検索すると見つかるかもしれません。
さぁハードウェアの準備はできましたでしょうか!?
あとは先ほどの K 里さんの記事を基に接続設定を行いましょう!
準備ができたら接続を行います…
接続できましたね!これで快適デバッグライフが送れます!
ではまたお会いいたしましょう!
■ 参考
Setting Up Kernel-Mode Debugging over a USB 3.0 Cable Manually