Skip to content

C library encapsulating the Linux kernel USB gadget configfs userspace API functionality

License

GPL-2.0, LGPL-2.1 licenses found

Licenses found

GPL-2.0
COPYING
LGPL-2.1
COPYING.LGPL
Notifications You must be signed in to change notification settings

linux-usb-gadgets/libusbgx

Repository files navigation

libusbg-neXt (libusbgx)
-------

libusbgx is a C library encapsulating the kernel USB gadget-configfs
userspace API functionality.

It provides routines for creating and parsing USB gadget devices using
the configfs API. Currently, all USB gadget configfs functions that can
be enabled in kernel release 3.11 (Linux for Workgroups!) are supported.

See the Doxygen docs and examples for complete details on the
programming API and INSTALL for installation of the library and
examples.

The library is licensed under the GNU LGPL-2.1 (or later) and
the examples are licensed under the GNU GPL-2.0 (or later).

To run the examples:

$ modprobe configfs
$ modprobe libcomposite
$ mount -t configfs none /sys/kernel/config
$ gadget-acm-ecm
$ show-gadgets
ID 1d6b:0104 'g1'
  UDC			3f120000.usbotg
  bDeviceClass		0x00
  bDeviceSubClass	0x00
  bDeviceProtocol	0x00
  bMaxPacketSize0	0x40
  bcdDevice		0x0311
  bcdUSB		0x0000
  idVendor		0x1d6b
  idProduct		0x0104
  Serial Number		0123456789
  Manufacturer		Foo Inc.
  Product		Bar Gadget
  Function 'acm.usb0'
    port_num		0
  Function 'acm.usb1'
    port_num		1
  Function 'ecm.usb0'
    dev_addr		32:1b:dc:a4:bc:a2
    host_addr		82:b7:58:62:f6:31
    ifname		usb0
    qmult		5
  Configuration 'c.1'
    MaxPower		2
    bmAttributes	0x80
    configuration	CDC 2xACM+ECM
    acm.GS0 -> acm.usb0
    acm.GS1 -> acm.usb0
    ecm.usb0 -> ecm.usb0