1

libusb API を使用して C で記述されたカスタム USB ファームウェアを使用しています。目標は、このファームウェアを Linux、Mac、および Windows と互換性を持たせることです。これまでのところ、Ubuntu および Mac でデバッグ プローブを使用して Beaglebone Black を使用してテストすると、適切な USB 列挙と、それぞれの OS のホスト アプリケーションでの操作が得られました。ただし、ボードを Windows 10 に接続しようとすると、「このデバイスを開始できません。(コード 10) 無効なパラメーターがサービスまたは関数に渡されました。

Windows への libusb の移植に関しては、主にWCID wikilibusb wikiに依存してきました。WINUSB 用の MS OS 文字列記述子と MS OS CID 機能記述子を追加しました。Zadigは、デバイスが現在 WCID に準拠しており、WinUSB デバイスとして認識されていることを示しています。

USB Device Tree Viewer 3.6 を使用すると、問題コード CM_PROB_FAILED_START が主な問題のようです。

    ----------------- Device Qualifier Descriptor -----------------
Error                    : ERROR_GEN_FAILURE

      -------------------- String Descriptors -------------------
String descriptors are not available  (because the device has problem code CM_PROB_FAILED_START)

特に、デバイス修飾子はファームウェアに存在し、libusb0 を使用すると適切に表示されますが、非推奨になったと聞き、WinUSB との互換性を取得しようとしています。

Windows 10 と Linux でより厳しい特定の記述子の問題やその他のファームウェア要件はありますか? デバイスが起動すらしないので、ファームウェアが特に Windows 用に適切にセットアップされていないと推測しています。

4

0 に答える 0