0. 环境
linux-4.4
10. 概述
- 多媒体设备
CONFIG_MEDIA_SUPPORT // 多媒体设备支持
CONFIG_MEDIA_USB_SUPPORT // 各类USB总线的多媒体设备
CONFIG_USB_VIDEO_CLASS // UVC协议,免驱摄像头协议
CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV // 摄像头按钮
CONFIG_USB_GSPCA // 非UVC摄像头的驱动
- 声卡支持
CONFIG_SOUND // 声卡支持
CONFIG_SND // ALSA(高级Linux声音架构)
CONFIG_SND_USB // 基于USB总线的声卡,如外接声卡
- 人机接口
CONFIG_HID // 人机接口
CONFIG_USB_HID // 基于USB的HID接口
CONFIG_USB_HIDDEV // 严格来书不算USB HID的设备支持
- 通用串行总线(universal serial bus)
CONFIG_USB_SUPPORT // USB支持
CONFIG_USB // USB host支持
CONFIG_USB_DEBUG // 调试
CONFIG_USB_ANNOUNCE_NEW_DEVICES // 记录设备信息,主要用于调试
CONFIG_USB_DEFAULT_PERSIST // 总线挂起是提供小电流保持USB设备状态
CONFIG_USB_DYNAMIC_MINORS // 动态分配USB主次设备号
CONFIG_USB_OTG // OTG支持
CONFIG_USB_OTG_WHITELIST // OTG白名单(otg_whitelist.h)外的设备不会初始化,嵌入式设备建议选N
CONFIG_USB_OTG_BLACKLIST_HUB // 是否静止初始化外部HUB
CONFIG_USB_ULPI_BUS // USB PHY,仅适用于嵌入式环境
CONFIG_USB_MON // 捕获USB流量,是否支持
CONFIG_USB_WUSB // 主机端无线USB的支持
CONFIG_USB_WUSB_CBAF // 安全措施,建立无线USB支持前必须优先连接
CONFIG_USB_WUSB_CBAF_DEBUG // 调试
CONFIG_USB_C67X00_HCD // Cypress公司的外设控制器
CONFIG_USB_XHCI_HCD // 重点:USB3.0驱动
CONFIG_USB_XHCI_HCD_DEBUGGING // 调试
CONFIG_USB_XHCI_PLATFORM // platform设备的xHCI驱动,仅用于嵌入式环境
CONFIG_USB_EHCI_HCD // USB2.0驱动
CONFIG_USB_EHCI_ROOT_HUB_TT // HUB适配,选Y以兼容usb1.1
CONFIG_USB_EHCI_TT_NEWSCHED // 改变工作方式,以提高多个USB1.1设备在USB2.0集线器上的速度
CONFIG_USB_EHCI_HCD_PLATFORM // platform设备的eHCI驱动,仅用于嵌入式环境
CONFIG_USB_OHCI_HCD // platform设备的oHCI驱动,仅用于嵌入式环境
CONFIG_USB_UHCI_HCD // platform设备的uHCI驱动,仅用于嵌入式环境
CONFIG_USB_WHCI_HCD // 无线USB主控接口
CONFIG_USB_HWA_HCD // 3G/4G无线上网卡。Host Wire Adapter driver
CONFIG_USB_HCD_BCMA // 博通对EHCI/OHCI的支持,仅用于嵌入式环境
CONFIG_USB_HCD_SSB // 博通对EHCI/OHCI的支持,仅用于嵌入式环境
CONFIG_USB_MUSB_HDRC // 基于Mentor Graphics公司silicon IP核的USB控制器,仅用于嵌入式环境
CONFIG_USB_RENESAS_USBHS // 基于Renesas公司USBHS IP核的USB控制器,仅用于嵌入式环境
CONFIG_USB_ACM // USB 适配器,modem,古董
CONFIG_USB_PRINTER // USB打印机
CONFIG_USB_WDM // 为CDC和WMC标准的手机提供设备支持
CONFIG_USB_TMC // Test and Measurement Class,适用于测试仪器的USB通信开发
CONFIG_USB_STORAGE // 存储设备
CONFIG_USB_STORAGE_DEBUG // 调试
CONFIG_USB_MDC800 // 具体设备支持,古董
CONFIG_USB_MICROTEK // 具体设备支持,古董
CONFIG_USB_DWC3 // 基于DesignWare USB3 IP核的USB3.0控制器(仅用于嵌入式环境)
CONFIG_USB_CHIPIDEA // 基于DesignWare USB3 IP核的USB3.0控制器(仅用于嵌入式环境,同DWC2)
CONFIG_USB_USS720 // 某种转换设备,忽略
CONFIG_USB_SERIAL // USB串口转换支持
CONFIG_USB_TEST // 调试
CONFIG_USB_ATM // DSL modem,古董
CONFIG_USB_PHY // 底层信号转换(仅用于嵌入式环境)
CONFIG_USB_GADGET // 主/从设备支持的功能,是linux允许运行在外设中,如手机作为PC的大容量存储设备加载时
20. 实际配置
- 环境
QCA + IPQ601X + Linux4.4.60 + 32bit
- 编译配置
#
# Makefile for the kernel USB device drivers.
#
# Object files in subdirectories
obj-$(CONFIG_USB) += core/
obj-$(CONFIG_USB_SUPPORT) += phy/
obj-$(CONFIG_USB_DWC3) += dwc3/
obj-$(CONFIG_USB_DWC2) += dwc2/
obj-$(CONFIG_USB_ISP1760) += isp1760/
obj-$(CONFIG_USB_MON) += mon/
obj-$(CONFIG_PCI) += host/
obj-$(CONFIG_USB_EHCI_HCD) += host/
obj-$(CONFIG_USB_ISP116X_HCD) += host/
obj-$(CONFIG_USB_OHCI_HCD) += host/
obj-$(CONFIG_USB_UHCI_HCD) += host/
obj-$(CONFIG_USB_FHCI_HCD) += host/
obj-$(CONFIG_USB_XHCI_HCD) += host/
obj-$(CONFIG_USB_SL811_HCD) += host/
obj-$(CONFIG_USB_ISP1362_HCD) += host/
obj-$(CONFIG_USB_U132_HCD) += host/
obj-$(CONFIG_USB_R8A66597_HCD) += host/
obj-$(CONFIG_USB_HWA_HCD) += host/
obj-$(CONFIG_USB_IMX21_HCD) += host/
obj-$(CONFIG_USB_FSL_MPH_DR_OF) += host/
obj-$(CONFIG_USB_FOTG210_HCD) += host/
obj-$(CONFIG_USB_MAX3421_HCD) += host/
obj-$(CONFIG_USB_C67X00_HCD) += c67x00/
obj-$(CONFIG_USB_WUSB) += wusbcore/
obj-$(CONFIG_USB_ACM) += class/
obj-$(CONFIG_USB_PRINTER) += class/
obj-$(CONFIG_USB_WDM) += class/
obj-$(CONFIG_USB_TMC) += class/
obj-$(CONFIG_USB_STORAGE) += storage/
obj-$(CONFIG_USB) += storage/
obj-$(CONFIG_USB_MDC800) += image/
obj-$(CONFIG_USB_MICROTEK) += image/
obj-$(CONFIG_USB_SERIAL) += serial/
obj-$(CONFIG_USB) += misc/
obj-$(CONFIG_EARLY_PRINTK_DBGP) += early/
obj-$(CONFIG_USB_ATM) += atm/
obj-$(CONFIG_USB_SPEEDTOUCH) += atm/
obj-$(CONFIG_USB_MUSB_HDRC) += musb/
obj-$(CONFIG_USB_CHIPIDEA) += chipidea/
obj-$(CONFIG_USB_RENESAS_USBHS) += renesas_usbhs/
obj-$(CONFIG_USB_GADGET) += gadget/
obj-$(CONFIG_USB_COMMON) += common/
obj-$(CONFIG_USBIP_CORE) += usbip/
实际编译进内核的如下:
CONFIG_USB=m
CONFIG_USB_SUPPORT=y
CONFIG_USB_DWC3=m
CONFIG_PCI=y
CONFIG_USB_EHCI_HCD=m
CONFIG_USB_XHCI_HCD=m
CONFIG_USB_PRINTER=m
CONFIG_USB_STORAGE=m
CONFIG_USB_GADGET=m
CONFIG_USB_COMMON=m
obj-m += core/
obj-y += phy/
obj-m += dwc3/
obj-y += host/
obj-m += class/
obj-m += storage/
obj-m += misc/
obj-m += gadget/
obj-m += common/