12

libusb を使用して USB デバイス用のデバイス ドライバーを作成しています。デバイスを要求しようとすると、エラー コード LIBUSB_ERROR_BUSY (-6) が表示されます。ドキュメントによると、デバイスが既に要求されていることを意味します (リンク)。

どのドライバー/プログラムがデバイスを要求したかを確認するにはどうすればよいですか? さらに重要なことに、要求されたデバイスを自分で要求するにはどうすればよいですか?

コードスニペット:

r = libusb_claim_interface(handle[0], 0);
if (r < 0) {
    fprintf(stderr, "libusb_claim_interface error %d\n", r);
    goto out_release;
}
printf("claimed interface\n");

出力:

libusb_claim_interface error -6
4

3 に答える 3

18

libusb_detach_kernel_driver()前に電話しますlibusb_claim_interface()か?これが必要な場合があります。

于 2011-06-25T06:24:32.703 に答える
4

この問題は、インターフェイスが別の Linux ドライバーによって要求されている可能性が最も高いです。呼び出しlibusb_detach_kernel_driver()てインターフェイス番号を指定すると、接続できるはずです。

于 2011-09-29T19:27:29.360 に答える
0

libusb_set_configuration()前に電話しましたlibusb_claim_interface()か?

これは、記述子に構成が 1 つしかない場合でも呼び出す必要があります。

于 2011-06-17T15:44:45.893 に答える