On Tue, Jan 13, 2015 at 05:26:34PM +0100, Andrzej Pietrasiewicz wrote: > W dniu 13.01.2015 o 16:10, Felipe Balbi pisze: > >Hi, > > > >On Tue, Jan 13, 2015 at 07:05:37AM -0800, Chris McClimans wrote: > >>Is it possible to appear as a USB gadget hid (kb + mouse), > >>mass_storage, and ethernet at the same time? > > > >yes, that's called a composite device. > > > >>My goal is to try and create a device that when attached during boot > >>to a PC would be able to send keys as a hid keyboard to select booting > >>from a USB mass storage. > >> > >>Booting from the mass storage would then load ipxe and perform dhcp > >>over the USB RDNIS device. The nic would probably be bridged to wifi, > >>or at least connected to some type of boot control process. > >> > >>It has been necessary to unload g_multi in order to load g_hid on the > >>Edison on 3.10.17 so far and wanted to make sure the end goal was > >>possible at all. > > > >Have a look at libusbg, you need to cook up your own gadget. g_multi > >won't help you here. > > > > To elaborate a bit more on Felipe's answer: > > g_multi is an example of a "legacy" gadget; legacy gadgets' > composition of functions (like hid, mass storage, ethernet) > is more or less hardcoded into them and you cannot do > anything about that. > > If you want a composition which is not covered by > any of the legacy gadgets, you need to create your own. > Your options for doing that are: > > 1) Create another "legacy"-style gadget; it is not > that difficult if you have some experience with > gadgets from the kernel side. You don't get > community support in this case and chances of > merging another "legacy"-style gadget into > upstream kernel are rather low unless you have > very good arguments but I can't think of any to > be honest. heh, they're not low, they don't exist :-) From now on we will only merge functions and rely on the configfs interface for bulding gadgets :-) > 2) Compose your gadget using configfs. This feature > has been in the kernel since late 2012 and as of now > all the functions available as > drivers/usb/gadget/function/f_xyz.c are available > for composition with configfs (with uvc being merged > in 3.20). While composing your gadget manually > (using shell) is a perfectly legal thing to do, > the bare configfs interface is intended primarily > for dedicated userspace tools and the tool you > want to look at is libusbg: > > https://github.com/libusbg/libusbg > > Please note that often the bleeding edge of development > can be found at: > > https://github.com/kopasiak/libusbg much better than my reply, thanks :-) -- balbi
Attachment:
signature.asc
Description: Digital signature