前回、ドライバが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 件のコメント:
コメントを投稿
コメントありがとうございます。
スパムかもしれない、と私が思ったら、
申し訳ないですが勝手に削除することもあります。
注: コメントを投稿できるのは、このブログのメンバーだけです。