我对 NodeJS 中的usb库有一些问题。我尝试通过 USB 向Armbian Linux的某个设备发送一些命令。我的代码看起来像这样
const usb = require("usb");
const elzabUSB = usb.findByIds(1155, 22336);
elzabUSB.open();
let interface = elzabUSB.interfaces[1];
let flag = false;
if (interface.isKernelDriverActive()) {
flag = true;
interface.detachKernelDriver();
}
interface.claim();
let out = interface.endpoints[0];
let cmd; // some data to be send
out.transfer(cmd, function (err) { //
if (err) console.log(err);
console.log("OK");
});
setTimeout(() => {
interface.release((err) => {
if (err) console.log(err);
try {
if (flag) interface.attachKernelDriver(); // error here
elzabUSB.close();
} catch (err) {
console.log(err);
}
});
}, 500);
因为我的主机是 Armbian Linux,所以我必须从我的 USB 中分离内核驱动程序,以至少对 Endpoints 做一些事情。当我尝试使用接口函数.attachKernelDriver()将设置重置为默认值时,我收到了这个错误......
{ Error: LIBUSB_ERROR_NOT_FOUND
at Interface.attachKernelDriver (/home/felg/node_modules/usb/usb.js:330:21)
at Interface.interface.release (/home/felg/usb.js:74:62)
at Device.<anonymous> (/home/felg/node_modules/usb/usb.js:316:7) errno: -5 }
如果有人遇到此错误并且知道如何解决,请回复。
此致