12 个版本 (6 个重大更新)
0.7.2 | 2024年6月25日 |
---|---|
0.7.0 | 2024年3月14日 |
0.6.0 | 2023年11月11日 |
170 在 Unix API 中
每月 134 次下载
在 3 crates 中使用
180KB
4K SLoC
usb-gadget
此库允许在具有 USB 设备控制器 (UDC) 的 Linux 设备上实现 USB 外设,即所谓的 USB 设备。支持预定义的 USB 功能和完全定制的 USB 接口实现。
以下预定义的 USB 功能由内核驱动程序实现,可用:
- 网络接口
- CDC ECM
- CDC ECM(子集)
- CDC EEM
- CDC NCM
- RNDIS
- 串行端口
- CDC ACM
- 通用
- 人机界面设备 (HID)
- 存储设备 (MSD)
此外,还可以在用户模式 Rust 代码中实现完全定制的 USB 功能。
还提供对操作系统特定描述符和 WebUSB 的支持。
特性
此 crate 提供以下可选功能:
tokio
:在 Tokio 运行时之上启用对自定义 USB 功能的异步支持。
要求
最小支持的 Rust 版本 (MSRV) 是 1.73。
需要 Linux 支持的 USB 设备控制器 (UDC)。通常,标准 PC 不包括 UDC。Raspberry Pi 4 包含一个 UDC,该 UDC 连接到其 USB-C 端口。
以下 Linux 内核配置选项应启用以实现全部功能:
CONFIG_USB_GADGET
CONFIG_USB_CONFIGFS
CONFIG_USB_CONFIGFS_SERIAL
CONFIG_USB_CONFIGFS_ACM
CONFIG_USB_CONFIGFS_NCM
CONFIG_USB_CONFIGFS_ECM
CONFIG_USB_CONFIGFS_ECM_SUBSET
CONFIG_USB_CONFIGFS_RNDIS
CONFIG_USB_CONFIGFS_EEM
CONFIG_USB_CONFIGFS_MASS_STORAGE
CONFIG_USB_CONFIGFS_F_FS
CONFIG_USB_CONFIGFS_F_HID
需要 root 权限来配置 Linux 上的 USB 设备,并且需要挂载 configfs
文件系统。
许可证
usb-gadget 在 Apache 2.0 许可证下授权。
贡献
除非您明确说明,否则您提交给 usb-gadget 的任何贡献,均应按照 Apache 2.0 许可证授权,不附加任何额外条款或条件。
依赖项
~2-11MB
~122K SLoC