Estoy intentando utilizar libusb, pero yo soy obtener el siguiente mensaje de error:mensaje de error 'Interfaz no reclamado' de libusb
usbfs: Proceso 24665 (miprograma) no reclamó interfaz 0 antes de su uso
Realmente no entiendo por qué, porque por lo que yo sé, lo hago de acuerdo con la descripción que se encuentra en la biblioteca. Aquí está mi código:
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <libusb.h>
int main(void)
{
int result;
struct libusb_device_descriptor desc;
libusb_device **list;
libusb_device *my_device = NULL;
result = libusb_init(NULL);
libusb_set_debug(NULL, 3);
ssize_t count = libusb_get_device_list(NULL, &list);
for (int i = 0; i < count; i++) {
libusb_device *device = list[i];
result = libusb_get_device_descriptor(device, &desc);
if((desc.idVendor == 0x03f0) && (desc.idProduct == 0x241d)) {
my_device = device;
break;
}
}
if(my_device != NULL) {
libusb_device_handle *handle;
result = libusb_open(my_device, &handle);
int kernelActive = libusb_kernel_driver_active(handle, 0);
if(kernelActive == 1) {
result = libusb_detach_kernel_driver(handle, 0);
}
result = libusb_claim_interface (handle, 0);
result = libusb_control_transfer(handle,0x21,34,0x0003,0,NULL,0,0);
result = libusb_release_interface (handle, 0);
if(kernelActive == 1) {
result = libusb_attach_kernel_driver(handle, 0);
}
libusb_close(handle);
}
libusb_free_device_list(list, 1);
libusb_exit(NULL);
return EXIT_SUCCESS;
}
Como puede ver, reclamo la interfaz antes de la transferencia. (He intentado el mismo código con otros dispositivos USB también, por si acaso eso tendría algo que ver con eso.)
Estoy usando libusb-1.0.9, que es la última versión que pude encontrar. Estoy ejecutando esto en Ubuntu12.04_64 (Precise Pangolin).
¿Podría ser un problema de permisos? ¿Has intentado ejecutar tu programa con 'sudo'? – gfour
Sí, probé sudo. Resulta que todo parece funcionar bien, así que supongo que el mensaje es información mal presentada, en lugar de un error o una advertencia. Sin embargo, me encantaría entender por qué recibí el mensaje. – Robert
[Verifique esta solución] (http://stackoverflow.com/questions/22011760/libusb-claim-interface-access-denied-java/39269489#39269489). Puede ayudar. –