マイコン工作実験日記

Microcontroller を用いての工作、実験記録

原因はPCにあった

2009-02-18 23:54:32 | USB
わたしの使っているLet's NoteでUSB複合デバイスのインストールができなかった問題ですが、Tsuneoさんからのコメントを参考にsetupapi.logを調べたことろ、わたしのPC側の問題であることが判明しました。

わたしのPCでのログ内容は、次のようになっていました。
#-019 ハードウェア ID を検索しています: usb\vid_03eb&pid_6132&rev_0003,usb\vid_0
3eb&pid_6132
#-018 互換性のある ID を検索しています: usb\devclass_00&subclass_00&prot_00,usb\
devclass_00&subclass_00,usb\devclass_00,usb\composite
#-166 デバイス インストール関数: DIF_SELECTBESTCOMPATDRV。
#W059 最も互換性のあるドライバの選択に失敗しました。 エラー 0xe0000228: このデバ
イスと互換性のあるドライバがありません。
#W157 既定のインストーラは失敗しました。 エラー 0xe0000228: このデバイスと互換性
のあるドライバがありません。
#I060 選択したドライバの設定
#-166 デバイス インストール関数: DIF_INSTALLDEVICE。
#I125 USB\VID_03EB&PID_6132\001 の NULL ドライバをインストールしています。
#I121 USB\VID_03EB&PID_6132\001 のデバイス インストールは正しく終了しました。

これだけだと、「適切なドライバが無い」と言われているだけです。そこで、ちゃんとインストールできたカミさんのPCのログを調べてみると
#-018 互換性のある ID を検索しています: usb\devclass_00&subclass_00&prot_00,usb\
devclass_00&subclass_00,usb\devclass_00,usb\composite
#-198 コマンドラインは処理されました。: C:\WINDOWS\system32\services.exe
#I022 C:\WINDOWS\inf\usb.inf で "USB\COMPOSITE" が見つかりました; デバイス: "USB
 複合デバイス"; ドライバ: "USB 複合デバイス"; プロバイダ: "Microsoft"; Mfg: "(標
準 USB ホスト コントローラ)"; セクション名: "Composite.Dev"
#I023 実際のインストール セクション: [Composite.Dev.NT] ランク: 0x00002003. ドラ
イバ有効開始日: 07/01/2001.
#-166 デバイス インストール関数: DIF_SELECTBESTCOMPATDRV。
#I063 選択されたドライバは "c:\windows\inf\usb.inf" のセクション [Composite.Dev]
 からインストールされます。
となっており、何やらusb.infファイルを参照していることがわかりました。そこで、再度Let's Noteの方を確認してみると、なんとusb.infファイルが無いではありませんか。。

カミさんのマシンからusb.infをコピーしてくることで、問題を解決することができました。どうしてusb.infが無くなってしまったのかはわかりませんが、以前何度もblue screenを見た時に削除されているのかもしれません。

これで当初の計画どおりにCDC+MSDの複合デバイスのサポートに取り組めそうです。Tuneoさん、ありがとうございました。