解决ubuntu 20 开发者手机hdc无法使用
在ubuntu 20上发现开发者手机的hdc在修改udev规则无法使用,颇为不便。修复方式如下。 // ==0 Represents new equipment and is what we need,<0 my need int HdcHostUSB::OpenDeviceMyNeed(HUSB hUSB) { libusb_device *device &#
·
在ubuntu 20上发现开发者手机的hdc在修改udev规则无法使用,颇为不便。修复方式如下。
// ==0 Represents new equipment and is what we need,<0 my need
int HdcHostUSB::OpenDeviceMyNeed(HUSB hUSB)
{
libusb_device *device = hUSB->device;
int ret = -1;
int OpenRet = libusb_open(device, &hUSB->devHandle);
if (OpenRet != LIBUSB_SUCCESS) {
WRITE_LOG(LOG_DEBUG, "libusb_open fail xret %d", OpenRet);
return -100;
}
while (modRunning) {
libusb_device_handle *handle = hUSB->devHandle;
libusb_set_auto_detach_kernel_driver(handle, 1);//修复开发者手机linux无法使用的问题
struct libusb_device_descriptor desc;
if (CheckDescriptor(hUSB, desc)) {
break;
}
if (CheckActiveConfig(device, hUSB, desc)) {
break;
}
// USB filter rules are set according to specific device pedding device
ret = libusb_claim_interface(handle, hUSB->interfaceNumber);
WRITE_LOG(LOG_DEBUG, "libusb_claim_interface ret %d, interfaceNumber %d",
ret, hUSB->interfaceNumber);
break;
}
if (ret) {
// not my need device, release the device
libusb_close(hUSB->devHandle);
hUSB->devHandle = nullptr;
}
return ret;
}
libusb_set_auto_detach_kernel_driver(handle, 1); 启用auto detach就可以识别了,目前只验证了ubuntu20,其他系统没有验证,发文做记录以方便遇到相同问题的开发者。
效果如下:
更多推荐
所有评论(0)