USB ÀH¨­ºÐ(FOR LINUX)

¥»¤å°Ñ¦Òlinux USB(http://www.linux-usb.org/)³oùئ³³\¦hÃö©ó usbªº¸Ô²Ó¸ê®Æ
csc 2004/04/22


²{¦b¤j³¡¥÷ªº¹q¸£¶gÃä³]³Æ³£¬OUSB,¦]¦¹À´±o³]USB¬O¤@¥ó«Ü­«­nªº¨Æ,­ì¨Ó§Ú¸Ë redhat Fedora 1.0,¥i¥H¦Û°ÊÀ°§Ú±NUSB³]©w¦n(°£¤Fmountªº°Ê§@(¦³®É¥i¥H¦³®É¤£¦æ)),¦ý¬O­«Äé¤@¦¸¤§«á©Ò¦³ªºUSB³£§ä¤£¨ì,¦]¦¹·Q­n¦Û¤v¨Ó³]©w,§_«h¥i ¯à¤S­n­«Äé¤F....,¥H¤U°w¹ïredhat Fedora 1.0¨Ó³]©w(¤Jªù«D­«²z½×)



°ÝÃD:
  1. ¨º¤@­Ó®Ö¤ß¦³¤ä´©?
    2.2.7¥H«á,³Ì¨Îªº¬O(2.4)
  2. §Ú»Ý­n­«·s½s֤ͮ߶Ü?
    ¦pªG®Ö¤ß¤ä´©,´N¤£»Ý­n­«·s½sĶ,§A»Ý­nªº´N¬O¥»¤å¤F
  3. USB1.1¤ÎUSB2.0¦³¤°»ò¤£¤@¼Ë?
    ¯Â´N³t«×USB1.1(1.5Mbit/sec-12Mbit/sec),¦ÓUSB2.0(³Ì°ª¥i¥H480Mbit/sec),¤]´N¬O³Ì§Ö³t«× 480/12=40§Ö¤F40­¿(2.0¾A¥Î©ó¤j®e¶q)


¥H¤U¬O­«ÂI¤F
¥ý¬d¬Ý/lib/modules/"§Aªº®Ö¤ßª©¥»"/kernel/drivers/usb/host
¸Ì­±¦³¥|­ÓÀÉ®×
echi-hcd.o,uhci.o,usb-ohci.o,usb-usci.o
¥Ø«e¥D­n¨Ï¥Îhost
  1. usb1.1:
    usb-ohci.o(compaq),usb-usci.o(intel),¦]¬°¦V¤U¬Û®e©Ò¥H¦³USB¤¶­±ªº¥D¾÷ªO¤@©w¦³,¦ý¨º¤@ºØ³o¬O­n¬Ý§Aªº¥D¾÷ªO ¤W¤ä´©¨º¤@ºØ
  2. usb2.0:
      ehci.o,·sªº¥D¾÷ªO¤j·§³£¦³¤ä´©
ohci(open host controller interface)
usci(universal host controller interface)
¦pªG§A¨S¦³¬Ý¨ì¥i¯à®Ö¤ß¨S¦³½sͤ䴩USB



¤â°Ê³]©w(¨C¦¸¶}¾÷³£»Ý­n­«³])
¬Ý¤@¤U¥Ø«e¨Ï¥Îªº¼Ò²Õ,¦³¨S¦³¸ü¤J¤W­zªº¥ô¤@¼Ò²Õ,¨S¦³¸ü¤J«h¶gÃä³]³Æ´NµLªk¨Ï¥Î
lsmod  |grep usb  (lsmod | grep usci)
#lsmod = list modules ,Åã¥Ü¸ü¤Jªº¼Ò²Õ
#insmod = insert modules,¸ü¤J¼Ò²Õ
¦pªG¨S¦³,¤Á´«¨ì¤W­zªº¨ìhostªº¥Ø¿ý
insmod usb-usci.o ©Î
insmod usb-ohci.o
À³¸Ó¦³¤@­Ó¥i¥H¨Ï¥Î,¦A¬Ý¤@¤U
/proc/bus/usb¬O¤£¬O¦³Ãþ¦ü¤U­±
ls /proc/bus/usb
001 002 devices drivers
¦pªG¨S¦³
mount -t usbdevfs none /proc/bus/usb
¦AÀˬd¤@¤U
ls /proc/bus/usb
lsusb
¦pªG¦³¸ê®Æ¨ºÀ³¸Ó¨S°ÝÃD



¦Û°Ê³]©w(­×§ï¤@¦¸´N¦n¤F,¶}¾÷·| ¦Û°Ê³]©w)
­×§ï/etc/modules.conf (/etc/modprobe.conf)
¥[¤Jalias usb-controller usb-usci
©Î  alias usb-controller usb-ohci
­×§ï/etc/fstab
¦bproc«á¥[¤@¦æ
none   /proc/bus/usb   usbdevfs defaults 0 0

¦]¬°§Ú¬O¨Ï¥ÎUSBÀH¨­ºÐ(©æ«ü ºÐ),¬OÄÝ©óstorage¦]¦¹¨Ï¥ÎÁٻݭnmount
§Ú­Ì¹q¸£¨S¦³scsi,©Ò¥H/devªº³]³Æ´NÅܦ¨¤F/dev/sda1
mount -t fat /dev/sda1 /mnt/flash
´N¦n¤F,¦pªG¦³scsiµwºÐ´N¨S¦³¸Õ¹L¤F

¨ä¥¦¦³¥Îªº©R¥Olspci, lsusb
lspci¬d¬Ýpci¤¶­±(¤º«ØªºUSB¤¶­±¤]¬OPCI)
lsusb¬d¬Ýusb³]³Æ
usbmodules --device /proc/bus/usb/001/001 (¬d¸ß³]©w¨Ï¥Îªº¼Ò²Õ)