挺_tzt9t 发表于 2018-12-5 09:26:24

如何将rk3399设置成usb gadget hid模式,插入PC端能识别到鼠键

本帖最后由 挺_tzt9t 于 2018-12-11 10:33 编辑

你好,我烧录的是Linux Kernel4.4以上的系统,我按照源码下的Documentation/usb/gadget_hid.txt,进行修改,并且也修改了menuconfig ,<*>   USB Gadget Support---><*>   USB Gadget Drivers (HID Gadget) 能编译进内核,查找了相关资料说应该会在 /dev下面生成个hidg的节点,但是修改烧录后,并没有生成,插到PC端没有任何反应。
抓了log,自己定义的status = platform_device_register(&my_hid); 返回是成功的。
status = platform_driver_probe(&hidg_plat_driver,hidg_plat_driver_probe); 也是成功的。
status = usb_composite_probe(&hidg_driver);返回是失败的。在这函数下继续跟进,发现是udc/core.c的usb_gadget_probe_driver有异常couldn't find an available UDC
这方面我是的第一次接触,是不是还有其他地方没有修改,有遗漏,请指导下,谢谢。
还有个问题我看了源码里有个linux-sdk/kernel/drivers/usb/gadget/f_hid_rk.c,好像是配置成usb hid设备吧?拿来用的话一堆未定义,该文件是不是也要用到?

挺_tzt9t 发表于 2018-12-12 16:42:45

有人能帮忙解答下吗,为什么“couldn't find an available UDC”
对应的list_for_each_entry(udc, &udc_list, list)这里循环语句都没进去,应该是双向链表里面根本就没内容,求解啊。
尝试了在make menuconfig 下USB Peripheral Controller->Dummy HCD (DEVELOPMENT)选择这个的话,会生成hidg0节点,而且还在/dev下生成hidraw0 ,这应该是自身模拟,测试也是正常的(串口运行调试代码,hdmi显示屏上也会有相应的结果)。但我想要的不是自身模拟,需要正常出来hidg节点,以及type-c插到PC上会有鼠键识别。

挺_tzt9t 发表于 2018-12-14 10:31:53

已解决

snow_person01 发表于 2018-12-23 19:22:16

怎么解决的呢?

joyeuxqiang 发表于 2019-3-8 16:24:03

怎么解决的呢?

鸩羽千夜 发表于 2019-12-6 18:30:37

博主,这个问题怎么解决的,能不能帮忙回一下,这个节点最后是怎么弄出来的,

Gavin家良 发表于 2020-4-16 15:50:26

估计是没有修改config导致,直接menuconfig是不行的

明日之丈 发表于 2021-11-2 18:54:05

最后是怎么解决的啊,现在也再弄这个问题
页: [1]
查看完整版本: 如何将rk3399设置成usb gadget hid模式,插入PC端能识别到鼠键