设置成usb gadget hid模式,插入PC端不能识别到鼠键
问题描述:
你好,我烧录的是Linux Kernel4.4以上的系统,我按照源码下的Documentation/usb/gadget_hid.txt,进行修改,并且也修改了menuconfig ,<> USB Gadget Support ---> < USB Gadget Drivers (HID Gadget) 能编译进内核(能出现g_hid.ko和usb_f_hid.ko),查找了相关资料说应该会在 /dev下面生成个hidg的节点,但是修改烧录后,并没有生成,插到PC端出现最后一图
抓了log,自己定义的status = platform_device_register(&my_hid); 返回是成功的。
想请问一下这个注册成功了为什么没出来节点呢?
答
随后一直按流程打印信息,到这个log :udc-core: couldn't find an available UDC - added [g_hid] to list of pending drivers
好像是不能匹配,去绑定,到不了下面
found:
ret = udc_bind_to_driver(udc, driver);
函数是这个
int usb_gadget_probe_driver(struct usb_gadget_driver *driver)
{
struct usb_udc *udc = NULL;
int ret = -ENODEV;
if (!driver || !driver->bind || !driver->setup)
return -EINVAL;
mutex_lock(&udc_lock);
if (driver->udc_name) {
list_for_each_entry(udc, &udc_list, list) {
ret = strcmp(driver->udc_name, dev_name(&udc->dev));
if (!ret)
break;
}
if (ret)
ret = -ENODEV;
else if (udc->driver)
ret = -EBUSY;
else
goto found;
} else {
list_for_each_entry(udc, &udc_list, list) {
/* For now we take the first one */
if (!udc->driver)
goto found;
}
}
if (!driver->match_existing_only) {
list_add_tail(&driver->pending, &gadget_driver_pending_list);
pr_info("udc-core: couldn't find an available UDC - added [%s] to list of pending drivers\n",
driver->function);
ret = 0;
}
mutex_unlock(&udc_lock);
return ret;
found:
ret = udc_bind_to_driver(udc, driver);
mutex_unlock(&udc_lock);
return ret;
}
请问是哪一步没配置呢?求大佬们帮帮忙,谢谢