注册 登录
LUPA开源社区 返回首页

wuting_linux的个人空间 http://www.lupaworld.com/?296848 [收藏] [复制] [分享] [RSS]

我的博客

总线分析之USB——设备号

已有 7823 次阅读2009-12-3 15:40

USB中的设备号

/proc/devices 文件里显示了所有当前系统里已经分配出去的主设备号,
wuting@wuting-desktop:linux-2.6.24$ cat /proc/devices
Character devices:
  1 mem
  2 pty
  3 ttyp
  4 /dev/vc/0
  4 tty
  4 ttyS
  5 /dev/tty
  5 /dev/console
  5 /dev/ptmx
  6 lp
  7 vcs
 10 misc
 13 input
 21 sg
 29 fb
 99 ppdev
128 ptm
136 pts
180 usb
189 usb_device
216 rfcomm
254 hidraw

Block devices:
  1 ramdisk
259 blkext
  8 sd
 65 sd
 66 sd
 67 sd
 68 sd
 69 sd
 70 sd
 71 sd
128 sd
129 sd
130 sd

可以看到usb_device和usb 都在里面。但是,USB设备有很多种,并不是都会用到这个预留的主设备号。比如在移动硬盘显示出来的主设备号就是8,你的摄像头在linux显示的主设备号也绝对不会是这里的USB_MAJOR。实际上,咱们经常遇到的大多数usb设备都会与input、video等子系统关联,并不单单只是作为usb设备而存在。如果usb设备没有与其它任何子系统关联,就需要在对应驱动的probe函数里使用usb_register_dev函数来注册并获得主设备号USB_MAJOR , 你可以在drivers/usb/misc 目录下看到一些例子, drivers/usb/usb-skeleton.c文件也属于这种。如果usb设备关联了其它子系统,(也就是说不使用USB_MAJOR作为主设备号时,struct usb_interface的字段minor可以简单的忽略。minor只在USB_MAJOR起作用时起作用。)则需要在对应驱动的probe函数里使用相应的注册函数,USB_MAJOR也就用不着了。比如,usb键盘关联了input子系统,驱动对应drivers/hid/usbhid目录下的usbkbd.c文件,在它的probe函数里可以看到使用了input_register_device来注册一个输入设备。


准确的说,这里的USB设备应该说成USB接口,当USB接口关联有其它子系统,也就是说
不使用USB_MAJOR作为主设备号时,struct usb_interface的字段minor可以简单的忽
略。minor只在USB_MAJOR起作用时起作用。

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册
验证问答 换一个 验证码 换一个

关于LUPA|人才芯片工程|人才招聘|LUPA认证|LUPA教育|LUPA开源社区 ( 浙B2-20090187 浙公网安备 33010602006705号   

返回顶部