W dniu 06.10.2015 o 14:38, Frans-Pieter van Wyk pisze:
Hi,
My question is, is it possible to setup a USB composite device consisting of a smart card CCID and a mass storage device using Configfs? ConfigFS is used to compose a gadget of existing functions. As far as I can tell there is no smart card CCID usb function in kernel, so either you need to have your own out-of-tree implementation or implement it in userspace with FunctionFS. Or more generally speaking, how can I pass a class descriptor, specific to a particular interface, to Configfs? Usb gadget is one of the consumers (users) of ConfigFS. ConfigFS applied to usb gadgets serves only the purpose of composing gadgets of existing functions. These are the functions which provide interface descriptors. FunctionFS is a specific USB function which forwards most of USB traffic to userspace. FunctionFS can be composed into a gadget with ConfigFS, but, by design, its function directory in ConfigFS is _empty_. In other words, if you mkdir functions/ffs.ccid you have empty functions/ffs.ccid. You need to mount corresponding FunctionFS instance (ccid) and provide all the descriptors the way FunctionFS expects it. I am using kernel 3.14 with Configfs compiled into the kernel only with mass storage and FunctionFS support.
Here is some background and what I have tried thus far... Using a previous implementation, I was able to successfully expose the embedded device as a CCID using gadgetfs
It looks like the problem you are facing are the differences between FunctionFS and gadgetfs. AP -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html