问题标签 [libusb]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1056 浏览

c++ - 如何在c ++中获取可执行文件所在驱动器的信息

我的应用程序将从具有特定信息的 USB 密钥运行,例如我需要的供应商 ID、设备 ID 等。

我尝试使用 libusb,但尽管我仍然无法使其正常工作,我如何才能找到合适的 USB 驱动器来获取信息?

请注意,我希望代码是跨平台的,这就是我首先选择 libusb 的原因。

编辑 :

我找到了一个程序(usbviewer),它可以在连接时枚举所有 USB 端口和驱动器上的特定信息。

我已经阅读了 linux 的源代码,信息是直接从 /proc/bus/usb/devices 中提取的,非常简单。

但是在 Windows 上,要获取 USB 节点连接信息,大约需要 1000 行才能获得数据结构中的实际信息(枚举集线器控制器、根集线器、端口......)。

另一边的 libusb 迫使我生成一个 INF 文件并通过 inf-wizard.exe 为每个设备安装驱动程序,然后我才能获得信息(虽然没有在 linux 上尝试过)。

编辑 2:

我找到了一种使用 Windows、Linux 和 Mac OS X 获取设备序列号的方法(没有尝试过 MAC OS X,但它应该像 Linux 一样工作)。对于 Windows,我GetVolumeInformation()在 Linux 上使用函数来读取具有 FAT 文件系统的驱动器的序列号,我在相应的 /dev/* 文件中读取 4 个字节,从 0x27 或 0x43 开始,具体取决于 FAT 版本。

但是这种阅读需要程序没有的root访问权限,在我看来有点不可靠。

有任何想法吗 ?

0 投票
1 回答
1317 浏览

python - pyUSB 未发现设备

所以,我已经在我的 OS X Lion (10.7.3) 机器上安装了 libusb 和 pyUSB,并且我运行了以下脚本:

我插入了一个 USB 设备:SanDisk cruzer micro,4GB。我可以毫无问题地在 Finder 和磁盘工具中打开这个闪存驱动器。但是,上述脚本的输出是:

至少表明 pyUSB 的第一个也是唯一一个总线不相信当前连接了任何设备。我错过了某种基本设置吗?为什么 pyUSB 找不到我的设备?

我一直在参考这个 StackOverflow 问题来开始:usb 设备识别

0 投票
3 回答
5851 浏览

linux - 模拟 USB 设备以实现自动化

我必须模拟 USB 设备以实现自动化和测试目的(在 Linux 中)。该设备的原始驱动程序/应用程序使用“libusb”与其通信。

我在Linux和模拟方面没有太多经验,经过一番搜索,我了解到我需要在用户空间编写内核级驱动程序和应用程序来模拟该设备。这是正确的吗?如果是,如何做到这一点?

提前致谢。

0 投票
1 回答
738 浏览

usb - 处理 UBS 输入只能工作一次,除非我拔下并重新插入硬件。

我下面的代码从 USB 设备(例如鼠标)获取 4 位数据。一切正常,除了当我运行代码和结束时我的鼠标停止工作。如果我再次运行我的代码,那么它会给出错误或不希望的或意外的结果。我必须拔下设备并再次运行我的代码,然后才能得到预期的答案。

什么可能导致这种情况,我该如何解决?

0 投票
0 回答
848 浏览

android - JNI移植的libusb-compat在应用程序中找不到设备,可以在应用程序之外

我有一个内置 USB 主机支持的三星 Galaxy SII,还有一个也有 USB 主机“被入侵”的摩托罗拉 Droid(原版)。SGSII 运行 Android 3.x,Droid 运行 2.x。

我将 libusb-compat 移植到 Android(主要是交叉编译它),这样我就可以插入一个外部设备并使用它,它有一个需要 libusb-compat 的驱动器。该驱动程序也被移植到 Android 并链接到我的 libusb-compat 端口。最重要的是一个应用程序,它有一个 JNI 接口来使用驱动程序和 libusb-compat。

在运行 Android 2.x 的 Droid 上,所有这些都可以完美运行。我可以用我移植的驱动程序初始化设备,它可以使用 libusb-compat 来做它的事情。

但是,在运行 3.x 的 SGSII 上,调用 libusb-compat 以列出 USB 设备、查询它们等都失败了。在我的应用程序中运行的 Libusb-compat 能够找到根 USB 总线,但 USB 设备列表总是空的,并且对它们的查询失败。

现在,如果我编译一个链接到 libusb-compat 的简单独立可执行文件,并尝试列出 USB 设备并在我的应用程序之外运行它(例如,在 adb shell 中),它能够找到根总线和所有SGSII 上的 USB 设备。这让我相信应用程序在 Android 3.x 上运行的沙箱阻止了 libusb-compat 访问 USB 设备。可能是支持 USB 主机的设备上的权限问题。

我尝试将此添加到我的清单中,但没有帮助:

是否有什么突出我做错或需要添加 libusb-compat 在我的应用程序中工作?同样,如果我使用我的 libusb-compat 驱动程序的 ndk 构建一个独立的应用程序,它就可以工作。

0 投票
3 回答
23082 浏览

usb - 来自 libusb 的错误消息“未声明接口”

我正在尝试使用libusb,但收到以下错误消息:

usbfs:进程 24665(myprogram)在使用前未声明接口 0

我真的不明白为什么,因为据我所知,我是根据图书馆中的描述来做的。这是我的代码:

如您所见,我确实在转移之前声明了接口。(我也在其他 USB 设备上尝试过相同的代码,以防万一这与它有关。)

我正在使用 libusb-1.0.9,这是我能找到的最新版本。我在Ubuntu 12.04_64 (Precise Pangolin) 上运行这个东西。

0 投票
1 回答
2685 浏览

python - 已安装 libusb - 但未找到 pyUSB 后端

我正在尝试使用 wxGlade 为 USB 设备设计一个 GUI。代码的 pyUSB 部分已添加到 Glade 生成的 python 代码中。

但是,有一个错误。'没有可用的后端'

这是对使用函数 usbDev = usb.core.find(idVendor = 0xfffe, idProduct = 0x0001) 的响应

我已经安装了 libusb-win32 仍然无法正常工作。我重新启动了一次PC,但无济于事。请帮忙。

0 投票
3 回答
1129 浏览

android - 如何使用 System.load() 函数加载库?

我需要ld-uClibc-0.9.30.1.so为我的 Android Eclipse 项目加载库。我尝试Sytem.load("/root/workspace/libs/ld-uClibc-0.9.30.1.so")从主机加载它,但出现错误:

有什么事?为什么它不适用于 System.load?

0 投票
0 回答
793 浏览

android - How to give libusb 0.1.12 permissions for Android?

I have to use libusb in my Android project. So far I have read alot on the internet that it is not so easy to use libusb with Android. I read something about init.rc and ueventd.rc and that I have to give some permissions for the usb. But because I am Android beginner I wanted to ask whether you could give me some more details how to make libusb work on Android. What are the steps needed to be done? Thanks in advance.

0 投票
2 回答
5982 浏览

c - 如何在linux中获取usb的urb信息

我正在尝试获取 USB 棒的 urb 信息。我写如下:

我可以编译它。但是当我运行它时,它说无效的论点。那么,我怎么了?