Lines Matching full:gadget
2 USB Raw Gadget
5 USB Raw Gadget is a gadget driver that gives userspace low-level control over
6 the gadget's communication process.
8 Like any other gadget driver, Raw Gadget implements USB devices via the
9 USB gadget API. Unlike most gadget drivers, Raw Gadget does not implement
12 Raw Gadget is currently a strictly debugging feature and should not be used
20 Raw Gadget is similar to GadgetFS but provides more direct access to the
21 USB gadget layer for userspace. The key differences are:
23 1. Raw Gadget passes every USB request to userspace to get a response, while
26 its own and never forward them to the gadget layer.
28 2. Raw Gadget allows providing arbitrary data as responses to USB requests,
30 This makes Raw Gadget suitable for fuzzing by providing malformed data as
33 3. Raw Gadget provides a way to select a UDC device/driver to bind to,
35 having multiple Raw Gadget instances bound to different UDCs.
37 4. Raw Gadget explicitly exposes information about endpoints addresses and
40 5. Raw Gadget has an ioctl-based interface instead of a filesystem-based
46 The user can interact with Raw Gadget by opening ``/dev/raw-gadget`` and
48 for details. Multiple Raw Gadget instances (bound to different UDCs) can be
51 A typical usage scenario of Raw Gadget:
53 1. Create a Raw Gadget instance by opening ``/dev/raw-gadget``.
57 Raw Gadget and react to those depending on what kind of USB gadget must
62 Nevertheless, Raw Gadget provides a UDC-agnostic way to write USB gadgets.
66 endpoints for the gadget and assign addresses in the endpoint descriptors
69 Raw Gadget usage examples and a test suite:
71 https://github.com/xairy/raw-gadget
76 Every Raw Gadget endpoint read/write ioctl submits a USB request and waits
85 Raw Gadget would not wait until the completion of each USB request.