Renesas製コントローラー搭載のPCIe USB3.0インターフェースでKinect v2を使用したときにKinect v2が正しく認識されないことがあったので、試行錯誤してわかったその対処法をメモ。
デバイス マネージャーで確認すると、「WDF KinectSensor Interface 0」のアイコンにエラーのマークが…
WDF KinectSensor Interface 0 のプロパティを確認してみると、デバイスの状態に
「このデバイスを開始できません。(コード 10)」
「{操作の失敗}
要求した操作が失敗しました。」
というメッセージが表示されていました。
使用したPCIeボードは玄人志向のUSB3.0N4-PCIe(Renesas μPD720200)です。
また、このときのドライバはIntelのWEBサイトで配布されているRenesasの「2.1.28.1」というバージョンのもの。
Station DriversというWEBサイトで配布されているRenesasの「2.1.39.0」でも同様の現象が発生…
そこで、以下の方法でMicrosoftが提供しているRenesasコントローラー用のドライバを導入してみました。
デバイス マネージャーで、「ユニバーサル シリアル バス コントローラー」の中にある「Renesas Electronics USB 3.0 Host Controller」を右クリック。
ポップアップメニューから「ドライバー ソフトウェアの更新(P)…」を選択します。
どのような方法でドライバー ソフトウェアを検索しますか?と訊かれるので、、「ドライバー ソフトウェアの最新版を自動検索します(S)」を選択。
Microsoftが保管しているドライバの中から、最新のものが自動検索されます。
(ネットワークに繋いでおいてください!)
検索が終わると、自動的にドライバのインストールが行われます。
「ドライバー ソフトウェアが正常に更新されました。」という表示が出ればドライバの更新完了。
再起動が促されたら、再起動します。
再起動が終わって、デバイス マネージャーを確認してみると…
WDF KinectSensor Interface 0 が正常に認識されました!
USB3.0コントローラーの表示はMicrosoftのものに変わっています。
WDF KinectSensor Interface 0 のプロパティでも、デバイスの状態が「このデバイスは正常に動作しています。」になりました。
詳しい原因は把握できていないのですが、Renesas純正ドライバの場合に問題が起こる場合があるのかも?
ちなみに、動作環境などはこのへん
Getting Started – MSDN (http://msdn.microsoft.com/en-us/library/dn791990.aspx)
とか、このへん
System Requirements – MSDN (http://msdn.microsoft.com/en-us/library/dn791991.aspx)
に詳しく書かれています。
これで、Kinect StudioやSDK Browser等でもKinect v2の動作が確認できるはず…
Enjoy!
CPU: AMD Phenom II X6 1090T 6コア6スレッド 3.2 – 3.6GHz
RAM: DDR3 6GB
OS: Windows 8.1 Enterprise x64
GPU: NVIDIA GeForce GT520
USB: Renesas製コントローラ USB3.0 (PCI Express x1)
しかし、同様の対処をしても環境によっては動作しない場合がありました。
チップセットの制約等で十分な帯域が確保できない場合には
「USBコントローラーの帯域の超過」、「コントローラーはこのデバイスに必要なリソースを提供できません。」というメッセージが表示され、
正しく認識されるものの、使用はできないようです。
実際に、
CPU: Intel Core i7 860
チップセット: Intel P55 Express Chipset
RAM: DDR3 16GB
GPU: NVIDIA GeForce GT640
USB: Renesas製コントローラ USB3.0 (PCI Express x1)
のマシンで試しましたが、認識はただしく行われるものの
使用することができませんでした。
Kinect StudioやSDK Browserのサンプル等のアプリケーションを起動しても何も表示されなかったりします。
これは、おそらくチップセットが提供するPCI Expressポートの制約によるものだと思われます。
Kinect v2 はUSB3.0で5Gb/sの帯域を確保できていないと動作しないようですが、
Intelの5シリーズチップセットのデータシートのPCI Express Root Ports欄には
Each Root Port supports 2.5 Gb/s bandwidth
と書いてあり、USB3.0のボードを取り付けても実質的にはUSB3.0の規格上の速度で通信できないようなのです…
2014年8月6日 at 20:29
こちらの記事を参考にKinect v2が正しくインストールされました。
ありがとうございます。
ただ、PC上で認識しているだけでアプリ内では認識されませんでした。
そちらではどうでしょうか?
2014年8月28日 at 15:33
以下の環境では、ここに書いた方法で正しく動作しました。
CPU: AMD Phenom II X6 1090T 6コア6スレッド 3.2 – 3.6GHz
RAM: DDR3 6GB
OS: Windows 8.1 Enterprise x64
GPU: NVIDIA GeForce GT520
USB: Renesas製コントローラ USB3.0 (PCI Express x1)
しかし、同様の対処をしても環境によっては動作しない場合がありました。
チップセットの制約等で十分な帯域が確保できない場合には
「USBコントローラーの帯域の超過」、「コントローラーはこのデバイスに必要なリソースを提供できません。」というメッセージが表示され、
正しく認識されるものの、使用はできないようです。
実際に、
CPU: Intel Core i7 860
チップセット: Intel P55 Express Chipset
RAM: DDR3 16GB
GPU: NVIDIA GeForce GT640
USB: Renesas製コントローラ USB3.0 (PCI Express x1)
のマシンで試しましたが、使用できませんでした。
これは、おそらくチップセットが提供するPCI Expressポートの制約によるものだと思われます。
Kinect v2 はUSB3.0で5Gb/sの帯域を確保できていないと動作しないようですが、
Intelの5シリーズチップセットのデータシートのPCI Express Root Ports欄には
Each Root Port supports 2.5 Gb/s bandwidth
と書いてあり、USB3.0のボードを取り付けても実質的にはUSB3.0の規格上の速度で通信できないようなのです…
2014年12月4日 at 23:09
こんばんわ。
記事を参考にverifierのすべての項目をクリアしました。
最後の項目だけにつまづいていたのですが、助かりました。
ありがとうございました。
マザー:ASUS P8Z68-V PRO/GEN3
USB3.0:(増設)BUFFALO IFC-PCIE2U3
2014年12月8日 at 21:18
Thanks for your note. In my case, added optional USB 3.0 port PCI Express. When i set up and plug in this, it is happened ‘WDF KinectSensor Interface 0’ problem. if i can’t find your post, it is not easy to fix maybe. So Thanks your post!