मैं libusb उपयोग करने के लिए कोशिश कर रहा हूँ से 'इंटरफ़ेस का दावा नहीं किया', लेकिन मैं निम्नलिखित त्रुटि संदेश प्राप्त कर रहा हूँ:त्रुटि संदेश
usbfs: प्रक्रिया 24,665 (MyProgram) इंटरफेस 0 दावा नहीं किया था उपयोग
से पहले
मुझे वास्तव में समझ में नहीं आता है, क्योंकि जहां तक मैं कह सकता हूं, मैं पुस्तकालय में दिए गए विवरण के अनुसार कर रहा हूं। यहां मेरा कोड है:
#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;
}
जैसा कि आप देख सकते हैं, मैं स्थानांतरण से पहले इंटरफ़ेस का दावा करता हूं। (मैंने अन्य यूएसबी उपकरणों के साथ एक ही कोड की कोशिश की है, बस अगर उसके साथ कुछ करने के लिए कुछ होगा।)
मैं libusb-1.0.9 का उपयोग कर रहा हूं, जो नवीनतम रिलीज है जो मुझे मिल सकता है। मैं इस बात को Ubuntu12.04_64 (सटीक पांगोलिन) पर चला रहा हूं।
क्या यह अनुमति समस्या हो सकती है? क्या आपने अपने कार्यक्रम को 'सुडो' के साथ चलाने की कोशिश की है? – gfour
हां, मैंने सुडो की कोशिश की। जैसे-जैसे यह निकलता है, सबकुछ ठीक काम करता प्रतीत होता है, इसलिए मुझे लगता है कि संदेश त्रुटि या चेतावनी के बजाए जानकारी को बुरी तरह से प्रस्तुत किया गया है। मैं अभी भी समझना चाहता हूं कि मुझे संदेश क्यों मिलता है, हालांकि। – Robert
[इस समाधान को देखें] (http://stackoverflow.com/questions/22011760/libusb-claim-interface-access-denied-java/39269489#39269489)। यह मदद कर सकता है। –