Re: gadgetfs: how to wait for USB device initialization?

From: Andrey Konovalov
Date: Tue Jun 13 2017 - 14:09:00 EST


On Tue, Jun 13, 2017 at 6:22 PM, Tal Shorer <tal.shorer@xxxxxxxxx> wrote:
> On Tue, Jun 13, 2017 at 7:02 PM, Tal Shorer <tal.shorer@xxxxxxxxx> wrote:
>> On Tue, Jun 13, 2017 at 3:21 PM, Andrey Konovalov <andreyknvl@xxxxxxxxxx> wrote:
>>> Hi!
>>>
>>> I'm trying to use gadgetfs to fuzz USB device drivers by simply
>>> connecting random devices for now.
>>>
>>> What I want to achieve right now is the following:
>>>
>>> 1. mount gadgetfs
>>> 2. emulate connection of a new USB device
>>> 3. wait for the device to finish initializing
>>> 4. unmount gadgetfs
>>> 5. goto 1
>>>
>>> The question is how do I wait for the device to finish initializing
>>> (the corresponding USB driver to finish probing?) before unmounting
>>> gadgetfs? As I understand, when I write device description to
>>> "/dev/gadget/dummy_udc" the initialization happens asynchronously
>>> after writing is done.
>>>
>>
>> You can use inotify on the state file inside a udc's sysfs directory.
>> It's awesome like that.
>> Here's a sample code that doesn't do any cleanups because I'm lazy:
>> https://gist.github.com/talshorer/61be1bc3472cc2a7b4866b9bd5a239ca
> And I forgot usage >:
> ./wait_udc_configured /sys/devices/platform/dummy_udc.0/udc/dummy_udc.0/state

Hi Tal,

I will try this, thanks!