我正在使用 USB4Java(低级版本)并且基本上是使用此代码工作 here . 我在 Ubuntu 中工作,遇到了有关权限的问题,但能够通过从终端使用 gksu 运行 eclipse 来解决。
现在我遇到了一个新问题: 当我到达此处代码中的要点时:
public static void claimDevice(DeviceHandle handle, int interfaceNum){
int r = LibUsb.claimInterface(handle, interfaceNum);
.
.
.
我收到一个异常,告诉我“资源正忙”:
USB error 6: Unable to claim interface: Resource busy
我以前使用过 Ubuntu(但从未用于开发,所以我对它真的很陌生)。 如果这不是应该处理这个问题的地方,那么请告诉我应该把它带到哪里,以便我得到答案。
具体来说,问题是,这是什么意思,我该如何解决? 我的目标,在这种情况下,这是一个自定义 USB 设备,是创建一个低级跨平台...基于 java...“驱动程序”(松散地使用该术语)。我现在正在使用 Ubuntu,因为终端 lsusb 命令提供了大量关于相关设备的信息。
最佳答案
我能够(多亏了一些哄骗)找到了谷歌的答案:对于遇到这个错误并且不想挖掘的任何其他人,在我工作的上下文中,我被要求分离接口(interface)在我声明它之前从内核中获取它,就像这样:
public static void claimDevice(DeviceHandle handle, int interfaceNum){
int r = LibUsb.detachKernelDriver(handle, interfaceNum);
if (r != LibUsb.SUCCESS &&
r != LibUsb.ERROR_NOT_SUPPORTED &&
r != LibUsb.ERROR_NOT_FOUND) throw new LibUsbException("Unable to detach kernel driver", r);
.
.
.
希望这对你也有帮助。
关于java - 无法声明接口(interface) : Resource busy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23764742/