Windows では動作するが、Linux ではドライバーを持たないデバイス プロトコルをリバース エンジニアリングしようとしています。(windows vm + wireshark) をキャプチャし、後ですべての USB 通信を再生します。Windows と Linux のバージョンでまったく同じ Wireshark トレースがあると思います。
ループには、変更されないように見えるいくつかのセットアップ データがあり、その後に 4096 バイトの bulk_in 転送が続きます。
私の問題は、実際にはバイト 0 から始まるはずの 4096 バイトの受信データの前に +-1000 バイトのゼロが頻繁にあることです。Windows バージョンでは常に正しいようです。
何が原因でしょうか? タイミングの問題?pyusb/usblib は何でも処理できると思いますか? ある種の例外はありますか?
関連するエンドポイント情報を見ると、wMaxPacketSize は 512 ですが、4096 バイトを書き込んでいます。関連している可能性はありますか? オーバーフロー例外は発生しません。
ありがとう!