1 Star 0 Fork 1

Bianbu Linux/usb-gadget

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

编译

如果需要板子作为usb device提供uvc功能,则需以下编译步骤,否则无需编译。只需把scripts目录下的脚本拷贝到板子上,运行脚本配置相应功能即可。

导出交叉工具链到环境变量,或者在Bianbu desktop上执行

$ make
#产出uvc-gadget-new

配置脚本

本仓库提供两个 usb gadget 配置脚本,分别是:

  1. 用于配置 uvc gadget 的 scripts/uvc-gadget-setup.sh
  2. 用于配置 adb、rndis、uvc、mass storage 的 scripts/gadget-setup.sh

具体使用方法可以查看对应脚本 help 命令及参考本文档的后续章节。

查看脚本使用帮助:

uvc-gadget-setup.sh help
gadget-setup.sh help

UVC

板子做usb device,UVC配置可选用两种方法:

  1. 使用专用uvc脚本,支持更多uvc配置,独立USB PID(推荐):
$ /etc/init.d/S50adb-setup stop
$ uvc-gadget-setup.sh start
$ uvc-gadget-new
  1. 使用composite gadget脚本,支持uvc与其他功能同时使用。
$ /etc/init.d/S50adb-setup stop
$ gadget-setup.sh uvc
$ uvc-gadget-new

RNDIS

gadget-setup.sh rndis

PC端设置

img_v3_02dr_d968d898-83fe-4f63-a236-1dade8dc0c4g

ADB

gadget-setup.sh 通用脚本集成了 ADB功能。

注:Bianbu desktop/linux有默认集成adb功能,gadget-setup.sh不能和系统集成的同时使用。

# 配置 adb
gadget-setup.sh adb
# 停止 adb
gadget-setup.sh stop

Mass Storage (BOT协议)

先安装sudo apt install dosfstools

gadget-setup.sh msc:<镜像或设备节点>
# 举例
gadget-setup.sh msc:/dev/nvme0n1

#使用内存盘
gadget-setup.sh msc

Mass Storage (支持UASP协议)

先安装sudo apt install dosfstools

UASP协议提升了传输效率。

gadget-setup.sh uas:<镜像或设备节点>
# 举例
gadget-setup.sh uas:/dev/nvme0n1

复合设备

举例:rndis + adb:

gadget-setup.sh rndis,adb

手动选择控制器

由于当前硬件平台可能有多个支持device的usb控制器(udc),可以用以下命令查看可用的 udc:

~ # gadget-setup info
SpacemiT gadget-setup tool v0.5-SUPPORTROLESW

Board Model: spacemit k1-x MUSE-Pi board
# ....
Available UDCs: c0900100.udc c0980100.udc1 c0a00000.dwc3
# ...

# 或者直接适用:
~ # ls /sys/class/udc/
c0900100.udc   c0980100.udc1  c0a00000.dwc3

默认脚本选用 /sys/class/udc/ 目录下的第一个 udc。

用户可以通过环境变量指定特定 udc,举例:

# 选择第二个 udc
USB_UDC_IDX=2 gadget-setup.sh ...
USB_UDC_IDX=2 uvc-gadget-setup.sh ...
# 选择 c0a00000.dwc3
USB_UDC=c0a00000.dwc3 gadget-setup.sh ...
USB_UDC=c0a00000.dwc3 uvc-gadget-setup.sh ...

其中 ... 省略了脚本的其他参数。

手动切换控制器角色

在usb控制器支持手动切换的方案中,可以通过以下命令来查看支持切换的控制器:

gadget-setup.sh info

通过以下命令来切换控制器角色 host 或 device:

gadget-setup.sh role <控制器/otg名称> <device或者host>
# 举例:
gadget-setup.sh role c0a00000.dwc3 device

注:切换至device模式时如果对应USB接口存在额外的vbus配置,需要手动关闭,见具体方案文档。

空文件

简介

usb gadget for spacemit platform fork from https://git.ideasonboard.org/uvc-gadget.git 展开 收起
取消

发行版

暂无发行版

贡献者 (1)

全部

近期动态

14天前推送了新的 k1-bl-v2.2rc4-release 标签
14天前推送了新的 k1-bl-v2.2.y 分支
17天前评论了任务 #IBWOIB uvc功能用不了
1个月前更改了任务 #IBWOIB uvc功能用不了 的状态为待确认
1个月前创建了任务 #IBWOIB uvc功能用不了
加载更多
不能加载更多了
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/bianbu-linux/usb-gadget.git
git@gitee.com:bianbu-linux/usb-gadget.git
bianbu-linux
usb-gadget
usb-gadget
bl-v1.0.y

搜索帮助