WinDbg のカーネルデバッグで使える USB 3.0 ケーブルを作る

WinDbg のカーネルデバッグで使える USB 3.0 ケーブルを買おうと思ったのですが高すぎたので自作した話です。2 台の PC を直接接続する、両端が USB Type-A オス端子のデバッグ用クロスケーブルです。

Web でデバッグケーブルを探したものの

最初に Web で USB 3.0 デバッグケーブルを探したのですが、ニーズが少ないのか、日本のサイトでは売っていないようでした。

仕方がないので、米国 DataPro 社のサイト [1] からの購入を試みます。

「3ft $14.95」ということは「約 90cm で約 2000 円」です。少し高いと思いつつ、[+Add to cart]ボタンを押します。

続いて [Checkout] ボタンを押します。

住所などを入力し、[Proceed to Shipping Options] ボタンを押します。

ここで送料が出てきたのですが、「$41.00」ということは現在の為替レートで「約 5600 円」になります。本体価格と合わせて「約 7600 円」は高すぎです。仕事で使うのであれば出来合いのケーブルを買ったほうが安心ですが、今回は趣味で使うだけなのでそっと閉じ、自作の道を探すことにしました。

デバッグケーブルの結線図

そもそも USB 3.0 デバッグケーブルとはどのようなものなのでしょうか。

マイクロソフトのサイト [2] には、「USB 3.0 回線のみを備え、Vbus がない A-A クロスオーバーケーブル」とありますが、これだけではよくわかりません。
参考文献 [3] の記述をヒントに探したところ、参考文献 [4] に仕様が載っていることがわかりました。以下に引用します。

結線図で書くとこうなります。

端的に書くと、確かに「USB 3.0 回線のみを備え(→ USB 2.0 の信号線である D- と D+ を結線していない)、Vbus がない(→ VBUS を結線していない) A-A(→ 両端が Type-A 端子の)クロスオーバー(→ USB 3.0 の信号線である SSRX-, SSRX+, SSTX-, SSTX+ はクロスさせた)ケーブル」でした。

市販のケーブルの結線を調べる

デバッグケーブルと謳っていない市販のケーブルの結線はどうなっているのでしょうか。両端が Type-A 端子の USB 3.0 ケーブルを秋葉原で 3 種類購入し、テスターを当てて調べてみました。

1 つ目は千石電商で購入した「変換名人, USB 3.0 ケーブル, A to A 20cm, 型番: USB3A-AX / CA20, クロス結線, 680円」です。デバッグケーブルの仕様に近いですが、「VBUS」「D-」「D+」も結線されていました。

2 つ目は、これも千石電商で購入した「変換名人, USB 3.0 ケーブル, A to A 20cm, 型番: USB3A-A / CA20, ストレート結線, 680 円」です。文字通りストーレートで、いわば延長ケーブルでした。

3 つ目は、あきばお~ 2 号店で購入した、「comon, USB ケーブル (3.0), A type(オス)<-> A type(オス), 3AA-20, 2m, 460 円」です。パッケージにはクロスともストレートとも書いてなかったのですが、変換名人のクロス結線と同じでした。

コネクタ変換基板を中継器に利用

市販のクロスケーブル(上記 1 つ目か 3 つ目)の端子から「VBUS」「D-」「D+」の金属ピンをはがすか、ケーブルの被覆を開けて「VBUS」「D-」「D+」の電線をカットすればデバッグケーブルになりそうです(参考文献 [3] では後者の方法を取っている)。しかし、自分ではうまく加工できそうにありません。

そこで今回は、マルツでたまたま見かけた「サンハヤト, USB 3.0 コネクタ変換基板, CK-38, 1001 円(2 個入り)」を利用してみました。USB 3.0 Type-A メスのコネクタと基板の 2 個セットです。

いきなりですが、組み立てた写真が以下になります。

上から見たところ↓。

下から見たところ↓。

写真左側の基板の注意点は次の通りです。

  • USB Type-A メス端子のピン 9 個だけでなく、金属のカバー(Shell)の部分もはんだ付けする。
  • 付属の 2 x 5 のピンヘッダは、足の長いほうが下になるようにして、はんだ付けする。
  • 基板の両側に 1 x 3 のピンヘッダをはんだ付けしておくと、2 つの基板を組み合わせたときにしっかり固定されるのでよい。回路的には意味はない。ピンヘッダは、秋月電子の「ピンヘッダ, 1×40 (40P), 通販コード C-00167, 35 円」を利用。

写真右側の基板の注意点は次の通りです。

  • USB Type-A メス端子のピン 9 個だけでなく、金属のカバー(Shell)の部分もはんだ付けする。
  • 付属の 2 x 5 のピンヘッダは使わず、基板の上に 1×5 と 1×2 のピンソケットをはんだ付けする。このとき、「1. VBUS」「2. D-」「3. D+」は開放したままにしておく。ピンソケットは、秋月電子の「分割ロングピンソケット(メス), 1×40 (40P), 赤, 通販コード C-10299, 100 円」を利用。
  • 基板の両側に 1 x 3 のピンソケットをはんだ付けしておくと、2 つの基板を組み合わせたときにしっかり固定されるのでよい。回路的には意味はない。
  • 基板に足を付けてもよい。今回は秋月電子の「3mm プラスチックネジ (7mm) + ナットセット, 通販コード P-01885, 130 円(12 個セット)」を利用。

秋月電子の部品は以下です。

2 つの基板を重ね合わせると次のようになります。

重ね合わせたときの結線図は以下です。「VBUS」「D-」「D+」が断線したストレート接続になります。

サンハヤトの基板以外にも、千石電商で売っている「八ヶ岳クラブ, USB 3.0 メス横型コネクタ基板, USB3.0-FH, 480 円」や、aitendo で売っている「★3.0★ USB コネクタ with 基板, IFB-USB3A-M, 150 円」(激安)も使えそうです。ただし、両側に足が付けられないため、重ね合わせたときにグラグラするかもしれません。

デバッグケーブル完成

作成した基板に「comon のクロスケーブル」と「変換名人のストレートケーブル」を挿せば、デバッグケーブルの完成です(この後、ショート防止のため基板はビニールテープでぐるぐる巻きに)。

トータルな結線は次の通りです。参考文献 [4] のデバッグケーブルの仕様と同じになりました。

実際にこのケーブルを使ってカーネルデバッグできることを確認しました。
一部無駄な買い物もしてしまいましたが、それを除くと 2500 円弱で済みました。

参考文献

[1] USB 3.0 Super-Speed A/A Debugging Cable.
https://www.datapro.net/products/usb-3-0-super-speed-a-a-debugging-cable.html

[2] USB 3.0 ケーブル経由のカーネルモード デバッグの手動設定.
https://learn.microsoft.com/ja-jp/windows-hardware/drivers/debugger/setting-up-a-usb-3-0-debug-cable-connection

[3] すらりん日記, USB 3.0 Kernel Debugging のための準備.
https://blog.techlab-xe.net/post-2000/

[4] USB 3.1 Legacy Cable and Connector Revision 1.0.
https://www.usb.org/document-library/usb-31-legacy-cable-and-connector-revision-10