目的:對USB作深入學習,在此留下筆記。歡迎討論。
[Linux 3.2] [driver/usb/core/inode.c]
函數:usbfs_init()
USB文件系統的初始化取決於是否CONFIG_USB_DEVICEFS. (make menuconfig ---> Device Drivers ---> USB support ---> USB device filesystem (DEPRECATED))
如果沒有配置CONFIG_USB_DEVICEFS, 則usbfs_init()為inline函數,直接return 0;
如果配置CONFIG_USB_DEVICEFS, 則代碼如下:
其主要作用:注冊usb文件系統,注冊一個usbfs_nb通知鏈,最後是在proc文件系統下面創建bus/usb目錄。
進入/proc/bus/usb目錄
# ls
001 002 devices
此devices的內容完全與usb debug文件系統裡的devices文件一樣。
001,代表usb總線1
002,代表usb總線2
注意:具體內容可以參見<Documentations/usb/proc_usb_info.txt>
問題:這些內容是如何產生的呢?
回答:見後面分析。
http://www.linuxidc.com/Linux/2012-03/57535.htm
http://www.linuxidc.com/Linux/2012-03/57536.htm
http://www.linuxidc.com/Linux/2012-03/57537.htm
http://www.linuxidc.com/Linux/2012-03/57538.htm
Linux USB subsystem -- initialize
Linux USB subsystem --- USB Debug File System Initialize
Linux USB subsystem --- USB bus registration
Linux USB subsystem --- USBFS driver registration
Linux USB subsystem --- USB Hub initialize
Linux USB subsystem --- register generic usb driver