Firefly开源社区

打印 上一主题 下一主题

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

23

积分

0

威望

0

贡献

技术小白

积分
23

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

发表于 2018-12-5 09:26:24      浏览:12492 | 回复:7        打印      只看该作者   [复制链接] 楼主
本帖最后由 挺_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设备吧?拿来用的话一堆未定义,该文件是不是也要用到?

回复

使用道具 举报

23

积分

0

威望

0

贡献

技术小白

积分
23
发表于 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上会有鼠键识别。
回复

使用道具 举报

23

积分

0

威望

0

贡献

技术小白

积分
23
发表于 2018-12-14 10:31:53        只看该作者  板凳
已解决
回复

使用道具 举报

36

积分

0

威望

0

贡献

技术小白

积分
36
发表于 2018-12-23 19:22:16        只看该作者  地板
怎么解决的呢?
回复

使用道具 举报

33

积分

0

威望

0

贡献

技术小白

积分
33
发表于 2019-3-8 16:24:03        只看该作者  5#
怎么解决的呢?
回复

使用道具 举报

25

积分

0

威望

0

贡献

技术小白

积分
25
发表于 2019-12-6 18:30:37        只看该作者  6#
博主,这个问题怎么解决的,能不能帮忙回一下,这个节点最后是怎么弄出来的,
回复

使用道具 举报

30

积分

0

威望

0

贡献

技术小白

积分
30
发表于 2020-4-16 15:50:26        只看该作者  7#
估计是没有修改config导致,直接menuconfig是不行的
回复

使用道具 举报

17

积分

0

威望

0

贡献

技术小白

积分
17
发表于 2021-11-2 18:54:05        只看该作者  8#
最后是怎么解决的啊,现在也再弄这个问题
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

友情链接 : 爱板网 电子发烧友论坛 云汉电子社区 粤ICP备14022046号-2
快速回复 返回顶部 返回列表