Introducing libgadget 0.0.1

From: Matt Porter
Date: Wed Sep 04 2013 - 13:25:42 EST


With the move to configfs for creation of arbitrary USB composite gadgets,
I found myself wanting a simple C library to configure and parse gadgets
in a system. It has no other dependencies other than libc itself.

It can be found at:

git://git.linaro.org/people/mporter/libgadget.git

Doxygen docs on API and examples at:

http://people.linaro.org/~matt.porter/libgadget/group__libgadget.html
http://people.linaro.org/~matt.porter/libgadget/examples.html

Output from the examples:

$ mkdir /config
$ mount -t configfs none /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

Besides things noted in the todo list, I'm working on a gadgettool
on top of libgadget to make life easier for everyday creation of
common composite devices. e.g. gadgettool --create="g1" --function="acm"
--function="ecm" --enable

-Matt
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/