【linux】USB开发实例[1] - kernel config

本文详细介绍了Linux环境下USB配置的相关选项,包括USB控制器、设备支持、声卡及多媒体设备等,并展示了实际编译配置示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

0. 环境

linux-4.4

10. 概述

  1. 多媒体设备
CONFIG_MEDIA_SUPPORT 										// 多媒体设备支持
	CONFIG_MEDIA_USB_SUPPORT								// 各类USB总线的多媒体设备
		CONFIG_USB_VIDEO_CLASS								// UVC协议,免驱摄像头协议
			CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV				// 摄像头按钮
		CONFIG_USB_GSPCA									// 非UVC摄像头的驱动
  1. 声卡支持
CONFIG_SOUND						// 声卡支持
	CONFIG_SND						// ALSA(高级Linux声音架构)
		CONFIG_SND_USB				// 基于USB总线的声卡,如外接声卡
  1. 人机接口
CONFIG_HID					// 人机接口 
	CONFIG_USB_HID			// 基于USB的HID接口
	CONFIG_USB_HIDDEV		// 严格来书不算USB HID的设备支持
  1. 通用串行总线(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. 实际配置

  1. 环境

QCA + IPQ601X + Linux4.4.60 + 32bit

  1. 编译配置
#
# 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/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

过得精彩

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值