libusb interface déjà demandé
Je suis en train d'écrire un pilote pour un périphérique usb à l'aide de libusb. Lorsque je tente de réclamer le périphérique j'obtiens le code d'erreur LIBUSB_ERROR_BUSY (-6). Selon la documentation qui signifie que l'appareil a déjà été revendiquée (lien).
Comment puis-je trouver le pilote/programme a revendiqué l'appareil et, plus important encore, comment puis-je, me, prétendre à l'appareil une fois qu'il est demandé.
Extrait de Code:
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");
De sortie:
libusb_claim_interface error -6
J'ai trouvé ce post à la recherche de "Comment puis-je trouver le pilote/programme a revendiqué le périphérique", et donc je voulais lier cette question: Est-il un moyen de comprendre ce qui est à l'aide d'un module du noyau Linux?, je pense que c'est pertinent, parce qu'il dit qu'il n'est pas possible de voir les programmes qui demande un pilote/module.
OriginalL'auteur jairo | 2011-06-15
Vous devez vous connecter pour publier un commentaire.
Appelez-vous
libusb_detach_kernel_driver()
avantlibusb_claim_interface()
? Cela peut être nécessaire.OriginalL'auteur David Grayson
La question est plus que probable que l'interface est revendiquée par un autre pilote Linux. appel
libusb_detach_kernel_driver()
et spécifier le numéro de l'interface et ensuite, vous devriez être en mesure de se connecter à elle.OriginalL'auteur linsek
Avez-vous appeler
libusb_set_configuration()
avantlibusb_claim_interface()
?Ce doit être appelée même si il y a une seule configuration dans le descripteur.
usb-devices
depuis le terminal des listesusb-storage
que le pilote pour le périphérique. Pour une raison quelconque, l'appareil devient un conducteur affecté et je n'ai pas été capable d'empêcher cela. J'ai essayé en utilisant des règles udev.OriginalL'auteur Turbo J