2011/07/17

libusb-1.0はzadigを使うべし

前回、ドライバがunsupportedと認識されていることがわかった。
ログを追加してみると、ドライバは「libusb0」という名前になっていることがわかった。
Windowsのlibusbをインストールしたときにinf-wizardというのがあって、それを使ったからだ。
確か、libusbを使うんならオリジナルのドライバではなく、そっちを使うんだよな。

libusb-1.0のソースを見ていくと、WinUSBというドライバが出てくる。
しかし「libusb0」みたいな名前は出てこない。
WinUSBって、MicrosoftのWinUSBだろうと思って気にしていなかったのだが、私の認識が違う気がしてきた。


もう一度、libusbのページを見た。
そして気付いたのだが、libusb-1.0はwindows_backendの方なのだ。
私がinf-wizardとかなんとか言っていたのは、libusb-win32で、こっちはlibusb-0.1だ。
libusb-0.1ではドライバが「libusb0」みたいな名前だけど、libusb-1.0では「WinUSB」なのだろう。
そうなってなかったので「unsupported」と言われたわけだ。


推測だがlibusb-1.0の「WinUSB」はMicrosoftのWinUSBだと思う。
zadigというexeファイルを実行すると、自動的にドライバを置き換えてくれるけど、これはWinUSBのinfを自分で書かなくていいようにしてくれているんではないかなぁ。


zadigでドライバを置き換えると、ちゃんとlibusb_open()が動くようになった。
まあ、ちゃんと読めって話ですな。

0 件のコメント:

コメントを投稿

コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。

注: コメントを投稿できるのは、このブログのメンバーだけです。