但我不断从我的代码中收到以下一堆错误(即使它是使用’sudo’执行的):
USB error: Could not set config 0: Device or resource busyset configuration: FailedCheck that you have permissions to write to 007/012 and,if you don't,that you set up hotplug (http://linux-hotplug.sourceforge.net/) correctly.USB error: Could not claim interface 0: Device or resource busyclaim interface: FailedUSB error: error submitting URB: No such file or directorybulk writing: FailedUSB error: error submitting URB: No such file or directorybulk reading: Failedresponse was:
代码是:
usb_dev_handle* find_device ();int main (int argc,char *argv[]){ usb_dev_handle* udev; int status; char request[] = "K1"; // 'Ping' command used to check communication char response[256]; udev = find_device (); // udev is successfully found here status = usb_set_configuration (udev,0); printf ("set configuration: %s\n",status ? "Failed" : "passed"); status = usb_claim_interface (udev,0); printf ("claim interface: %s\n",status ? "Failed" : "passed"); status = usb_bulk_write (udev,3,request,sizeof (request),500); printf ("bulk writing: %s\n",status ? "Failed" : "passed"); status = usb_bulk_read (udev,2,response,sizeof (response),500); printf ("bulk reading: %s\n",status ? "Failed" : "passed"); printf ("response was: %s\n",response); usb_close (udev); return 0;}
代码有什么问题?它是如何修复的?
*** 作系统:Ubuntu 10.10
解决方法 回答这个问题,因为我在同一个 *** 作系统上遇到了这个问题,并且能够以下列方式解决:下载并编译最新的libusb源代码1.0.8.
以下是我用于声称USB接口0的一些API调用:
libusb_init(NulL);libusb_open_device_with_vID_pID(NulL,vendor_ID,product_ID);libusb_detach_kernel_driver(devh,0);libusb_claim_interface(devh,0);libusb_close(devh);libusb_exit(NulL);
以上示例中的变量描述:
static struct libusb_device_handle *devh = NulL;uint16_t vendor_ID;uint16_t product_ID;
要获取供应商ID和产品ID,您可以运行以下命令(例如我的设备信息)
$lsusb
…
Bus 001 Device 013: ID 0930:6544 Toshiba Corp. Kingston DataTraveler 2.0 Stick (2GB)
…
粗体冒号分隔的字符串分别包含供应商和产品ID.
如何编译代码:
我使用以下命令编译我的代码:
/bin/bash libtool –silent –tag=CC –mode=link g++ -Wall -Wundef -Wunused -Wshadow -D_DEBUG -I../libusb -g -O2 -o read read.cpp ../libusb/libusb-1.0.la -lusb-1.0 -lrt
从提取的libusb-1.0.8目录将libtool复制到编译区域.
希望这可以帮助.
总结以上是内存溢出为你收集整理的linux – libusb基本的例子想要的全部内容,希望文章能够帮你解决linux – libusb基本的例子想要的所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)