Linux USB subsystem --- USB Debug File System Initialize

原创 2012年03月22日 18:23:47

目的:对USB进行深入学习,在此留下笔记。欢迎讨论。

[Author: Bo Shen <voice.shen@gmail.com>]

[Linux 3.2] [driver/usb/core/usb.c]


首先来分析USB子系统初始化的第一个函数usb_debugfs_init()

static int usb_debugfs_init(void)

{
	usb_debug_root = debugfs_create_dir("usb", NULL);
	if (!usb_debug_root)
		return -ENOENT;

	usb_debug_devices = debugfs_create_file("devices", 0444,
						usb_debug_root, NULL,
						&usbfs_devices_fops);
	if (!usb_debug_devices) {
		debugfs_remove(usb_debug_root);
		usb_debug_root = NULL;
		return -ENOENT;
	}

	return 0;
}

其主要作用就是在debugfs中创建一个usb目录,然后在usb目录下面创建一个devices的文件。

问题:创建的这些文件在那里呢?

答案:存在于debug文件系统里面。

问题:debug文件系统又在那里呢?

答案:http://blog.csdn.net/voice_shen/article/details/7084870


下面假设debug文件系统已经被挂载到/sys/kernel/debug目录里。进入usb目录,查看

# ls

devices ehci ohci

这个devices文件就是上面创建的。

注意:这个文件的内容和/proc/bus/usb/devices的内容是一致的。

# cat devices

---------------------------取其中一段----------------------------------

T: Bus=01 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#= 3 Spd=480 MxCh= 0
D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1
P: Vendor=0dd8 ProdID=f607 Rev=11.00
S: Manufacturer=Netac
S: Product=OnlyDisk
S: SerialNumber=AA04012700009721
C:* #Ifs= 1 Cfg#= 1 Atr=80 MxPwr=100mA
I:* If#= 0 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage
E: Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=31875us

----------------------------------------------------------------------------

这些信息都是什么意思呢?具体参考:<Documentations/usb/proc_usb_info.txt>


问题:这些信息是从那里来的呢?

回答:后续给出答案。

 

问题:devices文件中的ehci,ohci是如何加入的呢?

回答:后续给出答案。

相关文章推荐

USB子系统

http://blog.csdn.net/leesagacious/article/details/50890858 usb_debugfs_initbus_registerbus_...

一定要让你彻底明白什么是USB子系统

usb_debugfs_init/** 这个函数主要做了一下事情: 在debugfs中创建了一个文件,并指定了操作他的函数。 */ static int us...

Linux USB subsystem -- initialize

USB initialization function -- usb_init()

Linux USB subsystem --- EHCI host controller register

目的:对USB作深入学习,在此留下笔记。欢迎讨论。 [Linux 3.2] [driver/usb/host/ehci-hcd.c] 函数:ehci_hcd_init() stati...

Linux USB subsystem --- USBFS driver registration

Linux USB subsystem --- USBFS driver registration

The Linux USB Input Subsystem, Part I

The Linux USB Input Subsystem, Part I (2008-06-20 14:19:13) 转载       The L...
  • wenhui_
  • wenhui_
  • 2011年10月09日 13:43
  • 677

USB/File system相关内核配置

USB 内核配置   after make menuconfig, 进入Linux相关内核配置选项, 根据所选开发板功能部件,选择如下: 1.1 USB驱动内核配置 配置内核支持USB,需选中如下选项...

Linux USB subsystem --- USB create HCD

目的:对USB作深入学习,在此留下笔记。欢迎讨论。 [Linux-3.2][drivers/usb/core/hcd.c] 函数:usb_create_hcd(const struct h...

Linux USB subsystem --- register generic usb driver

目的:对USB作深入学习,在此留下笔记。欢迎讨论。 [Linux 3.2] [driver/usb/core/driver.c] 函数:usb_register_device_driver ...

Linux USB subsystem --- USB bus registration

Linux USB subsystem --- USB bus registration
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Linux USB subsystem --- USB Debug File System Initialize
举报原因:
原因补充:

(最多只允许输入30个字)