Firefly开源社区

标题: Firefly-RK3399 USB OTG 在 3.0 下无法工作 [打印本页]

作者: ntzyz    时间: 2017-9-15 11:26
标题: Firefly-RK3399 USB OTG 在 3.0 下无法工作
本帖最后由 ntzyz 于 2017-9-15 18:25 编辑

我想通过 configfs 将 OTG 端配置成 Mass Storage,脚本如下:
  1. #!/bin/bash

  2. cd /sys/kernel/config/usb_gadget

  3. mkdir g.1/functions/mass_storage.0 -p
  4. echo "/dev/mmcblk0" > g.1/functions/mass_storage.0/lun.0/file

  5. mkdir g.1/strings/0x409
  6. mkdir -p g.1/configs/c.1/strings/0x409

  7. echo 0xa4a2 > g.1/idProduct
  8. echo 0x0525 > g.1/idVendor

  9. echo 12345 > g.1/strings/0x409/serialnumber
  10. echo ntzyz > g.1/strings/0x409/manufacturer
  11. echo "usb gadget" > g.1/strings/0x409/product

  12. echo "cnf1" > g.1/configs/c.1/strings/0x409/configuration

  13. ln -s g.1/functions/mass_storage.0 g.1/configs/c.1

  14. echo fe800000.dwc3 > g.1/UDC
复制代码
这段脚本在连接到 USB2.0 的主机端时,测试无问题:
  1. root@ntzyz-rk3399 ~ # ./start.sh
  2. [ 22.944403] Mass Storage Function, version: 2009/09/11
  3. [ 22.944900] LUN: removable file: (no medium)
  4. [ 23.329729] configfs-gadget gadget: high-speed config #1: c
复制代码
主机端也能看到相应的磁盘:

但是在 USB 3.0 下则无效:
  1. root@ntzyz-rk3399 ~ # ./start.sh
  2. [ 20.913747] Mass Storage Function, version: 2009/09/11
  3. [ 20.914263] LUN: removable file: (no medium)
复制代码
此时 UDC 的状态是未加载,主机端也没有相应的硬件:
  1. root@ntzyz-rk3399 ~ # cat /sys/class/udc/fe800000.dwc3/state
  2. not attached
复制代码
内核是 GitLab 上 clone 的,配置加了一些特性(cifs, iSCSI over TCPIP, btrfs, etc),完整config链接:https://gist.github.com/ntzyz/7a0b3f4ac56db1dc7684c8d2ce37b1c1

作者: HappyFire    时间: 2018-3-6 10:40
请教楼主,如何将3399的type-c设置成device口,由于目前刚开始弄usb方面,不是很懂
作者: bingo    时间: 2018-5-19 16:17
你好,AIO-RK3399的板子使用usb-otg需要配置device-tree吗
作者: pumpkinZhu    时间: 2018-5-24 14:29
dts里面dr模式配置成otg,配置成host可以用U盘,鼠标这些
作者: wdy    时间: 2018-8-16 12:07
楼主,你的RK3399 otg功能驱动起来了吗,我也想用,按照你的方式也是工作不正常




欢迎光临 Firefly开源社区 (https://dev.t-firefly.com/) Powered by Discuz! X3.1