package: new package for usb gadget setup
authorChuanhong Guo <gch981213@gmail.com>
Sun, 19 Nov 2023 12:56:52 +0000 (20:56 +0800)
committerChuanhong Guo <gch981213@gmail.com>
Thu, 28 Dec 2023 05:10:32 +0000 (13:10 +0800)
commitb196a9f6ce8ef7d6b09d20ef79ffcf464d1a15ab
tree5a45cc2697c475192821324fbfcad1e44b0706ac
parentb799dd3c705dfd95745cdd94b13d1cd2ad2367a6
package: new package for usb gadget setup

Setting up usb gadgets using g_* kernel modules are considered a
legacy approach, but the usb_gadget configfs is a bit annoying
to use directly.
The usb_gadget configfs works by creating magic directories
and writing to magic files under /sys/kernel/config/usbgadget.
This new package is an init script to setup usb_gadget configfs
using uci. In the config file, gadget/configuration/function
sections create corresponding directories. UCI options are magic
files available in the configfs and strings/0x409 directories,
grabbed with a 'find' command. UDC option in gadget writes
the UDC file under the 'gadget' directory to attach the
generated gadget config.

It's also possible to apply pre-made config templates under
/usr/share/usbgadget. The templates use the same UCI config
format, with the 'gadget' entry named 'g1'. Currently, there
are templates for CDC-ACM and CDC-NCM gadgets written based
on existing g_*.ko module code.

Certain SBCs come with only a USB device port (e.g. Raspberry Pi
Zero). With this script, it's now possible to perform initial
setup on them by adding a default NCM gadget.

Signed-off-by: Chuanhong Guo <gch981213@gmail.com>
package/utils/usbgadget/Makefile [new file with mode: 0644]
package/utils/usbgadget/files/presets/acm [new file with mode: 0644]
package/utils/usbgadget/files/presets/ncm [new file with mode: 0644]
package/utils/usbgadget/files/usbgadget.conf [new file with mode: 0644]
package/utils/usbgadget/files/usbgadget.init [new file with mode: 0644]