USB Gadget Support
modulename: udc-core.ko
configname: CONFIG_USB_GADGET
Linux Kernel Configuration
└─>Device Drivers
└─>USB support
└─>USB Gadget Support
In linux kernel since version 2.6.20 (release Date: 2007-02-04)
USB is a host/device protocol, organized with one host (such as a
PC) controlling up to 127 peripheral devices.
The USB hardware is asymmetric, which makes it easier to set up:
you can't connect a "to-the-host" connector to a peripheral.
Linux can run in the host, or in the peripheral. In both cases
you need a low level bus controller driver, and some software
talking to it. Peripheral controllers are often discrete silicon,
or are integrated with the CPU in a microcontroller. The more
familiar host side controllers have names like "EHCI", "OHCI",
or "UHCI", and are usually integrated into southbridges on PC
motherboards.
Enable this configuration option if you want to run Linux inside
a USB peripheral device. Configure one hardware driver for your
peripheral/device side bus controller, and a "gadget driver" for
your peripheral protocol. (If you use modular gadget drivers,
you may configure more than one.)
If in doubt, say "N" and don't enable these drivers; most people
don't have this kind of hardware (except maybe inside Linux PDAs).
For more information, see <http://www.linux-usb.org/gadget> and
the kernel documentation for this API.
PC) controlling up to 127 peripheral devices.
The USB hardware is asymmetric, which makes it easier to set up:
you can't connect a "to-the-host" connector to a peripheral.
Linux can run in the host, or in the peripheral. In both cases
you need a low level bus controller driver, and some software
talking to it. Peripheral controllers are often discrete silicon,
or are integrated with the CPU in a microcontroller. The more
familiar host side controllers have names like "EHCI", "OHCI",
or "UHCI", and are usually integrated into southbridges on PC
motherboards.
Enable this configuration option if you want to run Linux inside
a USB peripheral device. Configure one hardware driver for your
peripheral/device side bus controller, and a "gadget driver" for
your peripheral protocol. (If you use modular gadget drivers,
you may configure more than one.)
If in doubt, say "N" and don't enable these drivers; most people
don't have this kind of hardware (except maybe inside Linux PDAs).
For more information, see <http://www.linux-usb.org/gadget> and
the kernel documentation for this API.
source code:
is selected by
CONFIG_USB_ISP1760_DUAL_ROLECONFIG_USB_ISP1760_DUAL_ROLE
CONFIG_USB_ISP1301
CONFIG_USB_LPC32XX
CONFIG_USB_RENESAS_USB3
CONFIG_USB_SNP_UDC_PLAT
CONFIG_USB_AMD5536UDC
CONFIG_USB_LIBCOMPOSITE
CONFIG_USB_F_UVC
CONFIG_USB_CONFIGFS
CONFIG_USB_CONFIGFS_SERIAL
CONFIG_USB_CONFIGFS_ACM
CONFIG_USB_CONFIGFS_OBEX
CONFIG_USB_CONFIGFS_NCM
CONFIG_USB_CONFIGFS_ECM
CONFIG_USB_CONFIGFS_ECM_SUBSET
CONFIG_USB_CONFIGFS_RNDIS
CONFIG_USB_CONFIGFS_EEM
CONFIG_USB_CONFIGFS_PHONET
CONFIG_USB_CONFIGFS_MASS_STORAGE
CONFIG_USB_CONFIGFS_F_LB_SS
CONFIG_USB_CONFIGFS_F_FS
CONFIG_USB_CONFIGFS_F_UAC1
CONFIG_USB_CONFIGFS_F_UAC1_LEGACY
CONFIG_USB_CONFIGFS_F_UAC2
CONFIG_USB_CONFIGFS_F_MIDI
CONFIG_USB_CONFIGFS_F_HID
CONFIG_USB_CONFIGFS_F_UVC
CONFIG_USB_CONFIGFS_F_PRINTER
CONFIG_USB_CONFIGFS_F_TCM
CONFIG_USB_ZERO
CONFIG_USB_AUDIO
CONFIG_USB_ETH
CONFIG_USB_ETH_RNDIS
CONFIG_USB_ETH_EEM
CONFIG_USB_G_NCM
CONFIG_USB_FUNCTIONFS
CONFIG_USB_FUNCTIONFS_ETH
CONFIG_USB_FUNCTIONFS_RNDIS
CONFIG_USB_MASS_STORAGE
CONFIG_USB_GADGET_TARGET
CONFIG_USB_G_SERIAL
CONFIG_USB_MIDI_GADGET
CONFIG_USB_G_PRINTER
CONFIG_USB_CDC_COMPOSITE
CONFIG_USB_G_NOKIA
CONFIG_USB_G_ACM_MS
CONFIG_USB_G_MULTI
CONFIG_USB_G_MULTI_RNDIS
CONFIG_USB_G_MULTI_CDC
CONFIG_USB_G_HID
CONFIG_USB_G_DBGP
CONFIG_USB_G_WEBCAM