この前に仕事で知った知識がかなり役に立ちそうな内容だと思ったので備忘録的にシェア。
色んなデバイスをPCのUSB端子に挿そうと試みるわけですが、なぜか「こっちの端子はちゃんと動かないのに反対側に挿したら認識した」みたいな現象、マジであるあるですよね。
今回これについて原因を考察してみます。
CPU直結のチップセットに載っているUSBコントローラーは問題ない
「USBコントローラー」というUSB機器を司る盟主がいますが、彼が載っているチップセットはそのままパソコンの中心となる制御装置に直結しています。
ちなみにこれらUSBコントローラーには、僕らがよく見る「USB端子」の他にも
- タッチパッド
- ハードキー
- ウェブカメラ
などUSB-IFを使用するものが内部的にも接続されていることがあります。
で、これらはUSBコントローラーを介して直接PCの心臓部にアクセスできるイメージですので、何かが上手くいかないことは基本的にありません。
想定された設計通りのシステムなので当然ですね。
PCメーカーが後付けする追加のUSBコントローラーが問題になる
対して、PCメーカーが
- USB端子の不足を補いたいから
- 別の規格に対応したUSB端子を追加したいから
などの理由で、新たにUSBコントローラーを後付けすることがあります。
主にPCIエクスプレスなどで接続されていることが多いです。
で、これが問題になります。
PC制御部への距離が遠く、正規のチップセットからの通信経路を通らないことがあるため、上手くPCにアクセスできないことがあるらしい。
OSレベルでは問題がないことが多いものの、BIOSやUEFIなどへのアクセスは特に苦手なようです。
USB経由のリカバリーディスクや回復プログラムが端子によって全く動作しないことがあるのは間違いなくこれのせいだと思います。
事実、これら復元系の操作方法のドキュメントでは公式でも「上手くいかない場合は違うUSB端子に挿し替えてください」とよく書かれています。まあリカバリーディスクに限らずUSBに関するマニュアルにはよく書いてあるか。
その辺は上手くやっとけよ、という…。
接続先のチップはデバイスマネージャーで確認できる
どの端子がどういうUSBコントローラーに繋がっているのかは、実はデバイスマネージャーで確認できます。
デバイスマネージャーの起動は、Win+Rを押してからdevmgmt.msc
と入力してどうぞ。
デバイスマネージャーを見るとUSBに関する記載がいくつかあるのが分かります。
でも実はここじゃありません。
まずは下図のように表示形式を「デバイス(接続別)」に変更します。
こうすることでデバイスの種類ごと(USBとか)ではなくて、接続先のインターフェースごとにツリーが分かれるという寸法です。
そしたら「ACPI x64ベースPC」の「Microsoft ACPI-Compliant System」の「PCI Express ルート コンプレックス」を探します。この中がそれぞれのUSBコントローラーです。
中を見て
- 「Intel ◯◯ Series USB Enhanced Host Controller」
- 「Intel USB ◯.0 eXtensible Host Controller」
みたいのがあれば、それがチップセット直結の方のUSBコントローラーです(これ以外にも微妙に違う表記のもあるかも)。
それ以外の名称のものがあったら、それは後付けされた別のUSBコントローラーです。
あとは簡単、実際に全部の端子に適当なUSBデバイスを挿してみりゃOK。
挿し込むとツリーが勝手に更新されるので、どのコントローラーの下に表示が増えたか見ていけばいいだけです。
僕のこのPCは全端子使ってますが、ツリーはこれしかなかったのでたぶん追加コントローラーはないということのはず…。
なんとなく自分が普段使うPCのUSB端子事情は覚えておくといいかも!
なぜ反対側に挿すと上手くいくことが多いのか
最後に超絶微妙な考察を書いて終わりにします。
なんのデータもない完全に主観的な感覚なんですけど、「挿し直して上手くいくときって、だいたい反対側の端子に挿したとき」じゃないですか?
これ、例の追加コントローラーが物理的な配置上の問題で反対側に来やすいから、じゃないかと思ってます。
実際この推論は的を得ていて、多くのPCで「チップセット直結のUSB端子2つ+反対側に追加端子1つ」という構成が取られているみたいです。
あとは、「2012年頃まではUSBコントローラー大手供給元だったルネサスが量産できるUSB 3.0コントローラーが技術的に2ポートまでしか対応できなかったから」というのも関係してそう?な気がしてます。
昔はUSB 3.0コントローラーをルネサスしか提供できなかったので、その名残で追加のコントローラーは反対側に来やすかったのかなーとか。
それにしてもUSBって奥が深くて面白いなあ。