· KLDP.org · KLDP.net · KLDP Wiki · KLDP BBS ·
Linuxdoc Sgml/USB-HOWTO

You are not allowed to 'backlinks'


How to get USB devices working under Linux

How to get USB devices working under Linux

¸®´ª½º¿¡¼­ USB ÀåÄ¡ µ¹¸®±â

Brad Hards , brad.hards@dao.defence.gov.au

Revision: 0.7 ±è±âÇö, arbeit95@chollian.net Revision: 0.7 1999³â 10¿ù 9ÀÏ
ÀÌ ¹®¼­´Â USB ÀåÄ¡µéÀ» ¸®´ª½º ½Ã½ºÅÛ¿¡¼­ »ç¿ëÇϱâ À§ÇÑ ´Ü°èÀû ¾È³»¼­ÀÇ ÃʾÈÀÌ´Ù.

1. ±âº»ÀûÀÎ USB ¼³Á¤

ÃֽŠ¹öÀüÀÇ Ä¿³ÎÀÌ ÀÖ¾î¾ß ÇÑ´Ù. ¹öÀü 2.2.7 À̳ª ÀÌ ÀÌÈĹöÀüÀÇ Ä¿³ÎÀº USB Äڵ带 Æ÷ÇÔÇÏ°í ÀÖ´Ù. ÀÌ»óÀûÀ¸·Î´Â ´ÙÀ½¹öÀüÀÇ ¸ðµç pre-patches¸¦ Æ÷ÇÔÇÑ ÃֽŠ2.3.x Ä¿³ÎÀ» »ç¿ëÇÏ°í ÀÖÀ¸¸é ÁÁ´Ù. 2.2.x Ä¿³Î¿¡¼­ 2.3.x USB Äڵ带 »ç¿ëÇÏ´Â °ÍÀÌ °¡´ÉÇÏ´Ù - ÀÚ¼¼ÇÑ °ÍÀº ÀÌ ÀåÀÇ µÞºÎºÐÀ» »ìÆì º¸¶ó. USB ÄÚµå´Â »ç½Ç Ãʱ⠰³¹ß´Ü°è¿¡ Àֱ⠶§¹®¿¡ °¢ ¹öÀü¸¶´ÙÀÇ º¯°æ( ¹× ¹ö±×µé)Àº ¸Å¿ì »¡¸® º¯ÇÏ´Â °æÇâÀÌ ÀÖ´Ù. ÃֽŠ¹öÀü¿¡ °üÇÑ °ÍÀº µå¹°Áö¸¸ ¸ÞÀϸµ¸®½ºÆ®´Â °ÅÀÇ ´ëºÎºÐ¿¡ °üÇÑ ³»¿ëÀ» ´Ù·ç°í ÀÖ´Ù.

¸ÞÀϸµ¸®½ºÆ®´Â linux-usb@suse.comÀÌ´Ù. °¡ÀÔÇÏ·Á¸é majordomo@suse.com¿¡°Ô subscribe linux-usb ¶ó°í ¾´ ¸ÞÀÏÀ» º¸³»¶ó. ¸ÞÀϸµ¸®½ºÆ®ÀÇ ±ÛµéÀ» ±×¸¸ º¸°í ½ÍÀ¸¸é majordomo@suse.com¿¡°Ô unsubscribe linux-usb ¶ó°í ½á¼­ º¸³»¶ó.

Ä¿³Î¿¡ USB ¼³Á¤À» ÇØ¾ß ÇÑ´Ù. make menuconfig°¡ ÁÁÀ» °ÍÀÌ´Ù. USB drivers - not for the faint of heart Ç׸ñ¿¡¼­ Support for USB(EXPERIMENTAL!)¸¦ ¼±ÅÃÇØ¾ß ÇÑ´Ù. ¶ÇÇÑ UHCI (intel PIIX4 and others) support, OHCI (compaq and some others) support,¶Ç´Â OHCI-HCD (other OHCI opt. Virt. Root Hub) support °¡¿îµ¥ Çϳª¸¦ ¼±ÅÃÇÑ´Ù. UHCI, OHCI ¹× OHCI-HCD¸¦ µ¿½Ã¿¡ °°ÀÌ »ç¿ëÇϸé Á¦´ë·Î ÀÛµ¿ÇÏÁö ¾ÊÀ» ¼ö ÀÖ´Ù(UHCI´Â ÀÛµ¿ÇÒ °ÍÀÌ´Ù). ¾î´À °ÍÀ» °í¸¦ °ÍÀ̳Ĵ ´ç½ÅÀÌ ¾î¶² ¸¶´õº¸µå³ª ¾î´ðÅ͸¦ °®°í ÀÖ´À³Ä¿¡ ´Þ·Á ÀÖ´Ù. Intel°ú Via ¸¶´õº¸µå´Â UHCIÀÌ´Ù. ÄÄÆÑ°ú NEC ¸¶´õº¸µå, iMac°ú Opti Ĩ(¸ðµç Ĩ Á¾·ù¸¦ Æ÷ÇÔ)À» ¾²´Â ¸ðµç ¾î´ðÅÍ´Â OHCIÀ̸ç OHCI³ª OHCI-HCD °¡¿îµ¥ Çϳª¸¦ ¼±ÅÃÇÒ ¼ö ÀÖ´Ù. ¾î¶² ÄÁÆ®·Ñ·¯¸¦ ¼±ÅÃÇؾßÇÒÁö ¸ð¸£°Ú´Ù¸é ¸¶´õº¸µå ¹®¼­¸¦ º¸¶ó. ¶ÇÇÑ /proc/pci¿¡¼­ ÈùÆ®¸¦ ¾òÀ» ¼ö ÀÖ´Ù. USB Ç׸ñÀÌ 0xHHHHÇü½ÄÀ¸·Î µÇ¾î ÀÖÀ» ¶§´Â(HHHH´Â 16Áø¼öÀÌ´Ù - ¿¹¸¦ µé¾î I/O at 0xe400) UHCIÀÌ´Ù. 32 bit memory at 0xHH000000 ÀÏ ¶§´Â(HH´Â 16Áø¼öÀÌ´Ù - ¿¹¸¦ µé¾î 32 bit memory at 0xee000000) OHCIÀÌ´Ù. À̰͵µ ºÒ°¡´ÉÇÏ¸é ¾Æ¹«°Å³ª Çϳª ½ÃµµÇغ¸¶ó.

´ÙÀ½À¸·Î ¾î¶² ÀåÄ¡¸¦ »ç¿ëÇÒ °ÍÀÎÁö¸¦ ¼±ÅÃÇØ¾ß ÇÑ´Ù. ¿¹¸¦ µé¾î xUSB mouse support´Â USB ¸¶¿ì½º, USB keyboard support´Â USB Å°º¸µå, USB hub support´Â Çãºê, USB communications Devices Class (ACM) support´Â POTS ¶Ç´Â ISDN¸ðµ©, USB Printer support´Â USB ÇÁ¸°ÅÍ, USB SCSI Support´Â ´ë¿ë·® ÀúÀåÀåÄ¡¿ë, USB CPiA Camera support´Â Vision CPiA Ĩ¼ÂÀ» »ç¿ëÇÑ Ä«¸Þ¶ó, EZUSB Firmware downloader´Â Anchor ChipsUSB ¸¶ÀÌÅ©·ÎÄÜÆ®·Ñ·¯Å¶¿¡ ´ëÇÑ ´Ù¿î·Îµå, USS7270 parport driver´Â º´·Ä Æ÷Æ® ¾î´ðÅÍ¿ë µîÀÌ´Ù. ¸ðµâ°ú Ä¿³Î Á÷Á¢ Áö¿ø(kernel only), º°µµÀÇ(split) ¸ðµâ, Ä¿³ÎÄÚµå µîÀ» »ç¿ëÇÒ ¼ö ÀÖ¾î¾ß ÇÑ´Ù. ÀåÄ¡µéÀ» ·çÆ® Çãºê¿¡ ²È¾Æ »ç¿ëÇؼ­ Çãºê°¡ ²À ÇÊ¿äÇÏÁö ¾Ê´Ù ÇÏ´õ¶óµµ Çãºê Áö¿øÀ» ¼±ÅÃÇÏ´Â °ÍÀÌ ÁÁ´Ù.

USB audio parsing support´Â ÇöÀç±îÁö´Â Áö¿øµÇÁö ¾Ê´Â´Ù. ÀÌ ¹®¼­¿¡ ¿­°ÅµÇÁö ¾ÊÀº ÀåÄ¡´Â ÀÌ ±ÛÀ» ¾²´Â ½ÃÁ¡¿¡¼­´Â Áö¿øµÇÁö ¾Ê´Â °ÍµéÀÌ´Ù. ±×·¯³ª °³¹ßÀÚµéÀº ÇöÀç Äڵ忡 µµ¿òÀ» ÁÖ´Â °Í(contribute)Àº ¾ðÁ¦µçÁö ȯ¿µÇÑ´Ù.

¾ÈÁ¤ Ä¿³Î(2.2.x)À» ¾²°íÀÚ ÇÑ´Ù¸é °³¹ßÄ¿³Î(2.3.x)ÀÇ Äڵ带 drivers/usb µð·ºÅ丮¿¡ º¹»çÇØ ³ÖÀ¸¸é µÈ´Ù. arch/i386/config.in¿¡¼­ ¾Æ·¡¿Í °°Àº ÇàÀÇ ÁÖ¼®À» ¾ø¾Ö¾ß ÇÑ´Ù.

# source drivers/usb/Config.in

´Ù¸¥ ¾ÆÅ°ÅØóµµ ºñ½ÁÇÒ °ÍÀÌ´Ù. drivers/usb/usb.hÀÇ Ã¹ºÎºÐ¿¡ ¾Æ·¡¿Í °°Àº ¸î ÁÙÀÇ Á¤ÀÇ(definition)¸¦ Ãß°¡ÇØ¾ß ÇÑ´Ù.

#if LINUX_VERSION_CODE < 0x020300
#define DECLARE_WAIT_QUEUE_HEAD(w)     struct wait_queue *w = NULL
#define DECLARE_WAITQUEUE(w,c)         struct wait_queue w = {(c), NULL}
#define wait_queue_head_t              struct wait_queue *
#define init_waitqueue_head(w)         *(w) = 0
#define DECLARE_MUTEX_LOCKED(sem)      struct semaphore sem = MUTEX_LOCKED
#endif

Ä¿³ÎÀ» ÀçÄÄÆÄÀÏÇÏ°í (¸ðµâ·Î ¼³Á¤Çß´Ù¸é) ¸ðµâµµ ÄÄÆÄÀÏ ÇÑ ´ÙÀ½ »õ·Î¿î Ä¿³Î°ú ¸ðµâÀ» ¼³Ä¡Ç϶ó. ½Ã½ºÅÛÀ» ÀçºÎÆÃÇÑ´Ù.

¸ðµâÀ» »ç¿ëÇÏ°í ÀÖ´Ù¸é ¸ðµâÀ» Á¤ÇØÁø ¼ø¼­¿¡ µû¶ó ÀûÀç(load) ÇØ¾ß ÇÑ´Ù. usbcore.o¸¦ ¸ÕÀú ÀûÀçÇÏ°í mouse.o, keyboard.o, hub.o µîÀÇ µå¶óÀ̹öµéÀ» ÀûÀçÇÑ ´ÙÀ½ ¸¶Áö¸·À¸·Î È£½ºÆ® ÄÁÆ®·Ñ·¯(¿¹¸¦ µé¾î usb-uhci.o ¶Ç´Â usb-ohci.o)¸¦ ÀûÀçÇÑ´Ù.

Ä¿³Î ·Î±×¸¦ »ìÆ캸¶ó. ¾Æ·¡¿Í °°Àº ³»¿ëµéÀ» º¼ ¼ö ÀÖÀ» °ÍÀÌ´Ù(UHCI¿Í ¿ÜºÎ Çãºê¸¦ »ç¿ëÇÏ´Â °æ¿ìÀÌ´Ù).

.......
Jul 19 20:46:02 rachel kernel: USB HID boot protocol mouse registered.
.......
Jul 19 20:46:02 rachel kernel: uhci_control_thread at c01b8c5c
Jul 19 20:46:02 rachel kernel: New bus registered
Jul 19 20:46:02 rachel kernel: USB hub driver registered
Jul 19 20:46:02 rachel kernel: uhci_connect_change: called for 0
.......
Jul 19 20:46:02 rachel kernel: USB hub found
Jul 19 20:46:02 rachel kernel: hub: 4-ports detected
Jul 19 20:46:02 rachel kernel: hub: individual port power switching
Jul 19 20:46:02 rachel kernel: hub: standalone hub
Jul 19 20:46:02 rachel kernel: hub: individual port over current protection
Jul 19 20:46:02 rachel kernel: hub: power on to power good time: 100ms
Jul 19 20:46:02 rachel kernel: hub: hub controller current requirement: 100mA
Jul 19 20:46:02 rachel kernel: hub:  port 1 is removable
Jul 19 20:46:02 rachel kernel: hub:  port 2 is removable
Jul 19 20:46:02 rachel kernel: hub:  port 3 is removable
Jul 19 20:46:02 rachel kernel: hub:  port 4 is removable
Jul 19 20:46:02 rachel kernel: hub: local power source is good
Jul 19 20:46:02 rachel kernel: hub: no over current condition exists
Jul 19 20:46:02 rachel kernel: enabling power on all ports
Jul 19 20:46:02 rachel kernel: uhci_connect_change: called for 1
.......
Jul 19 20:46:02 rachel kernel: hub: port 3 connection change
.......

OHCI¿Í OHCI-HCD´Â À¯»çÇÑ ±â´ÉÀ» ¼öÇàÇÒ °ÍÀÌ´Ù. ±×·¯³ª µÎ °³¸¦ ¹Ù²Ù´Â °Í¿¡ ½ÇÆÐÇÑ °Í¿¡ ´ëÇØ ±×¸® Å©°Ô °ÆÁ¤ÇÒ ÇÊ¿ä´Â ¾ø´Ù. º°´Ù¸¥ ¿µÇâÀ» ¹ÌÄ¡´Â ¾Ê´Â »ç¼ÒÇÑ ¹ö±×ÀÌ´Ù. USB¿¡ °ü·ÃµÈ ³»¿ë(hubs, usb, ohci, uhci ¸¦ Ç¥½ÃÇÏ´Â ÁÙ)ÀÌ ÀüÇô ¾ø´Ù¸é ¾Æ¸¶µµ À߸øµÈ µå¶óÀ̹ö¸¦ »ç¿ëÇÏ°í Àְųª(OHCI¸¦ ½á¾ß Çϴµ¥ UHCI¸¦ ¾²´Â °æ¿ì³ª ±× ¹Ý´ëÀÇ °æ¿ì), Çϵå¿þ¾î°¡ ¹°¸®ÀûÀ¸·Î ¼³Ä¡µÇÁö ¾ÊÀº °æ¿ì, BIOS¿¡¼­ USB ±â´ÉÀ» ²¨µÐ °æ¿ì, Ä¿³ÎÀÇ À߸øµÈ ¼³Á¤À̳ª ¼³Ä¡ ¶§¹®ÀÏ °ÍÀÌ´Ù.

2. ¸¶¿ì½º ¼³Á¤

¿ì¼± ¸¶¿ì½º°¡ Ä¿³Î¿¡ ÀÇÇØ Á¦´ë·Î ÀνĵǴÂÁö È®ÀÎÇ϶ó. more /proc/interrupts¸¦ ½ÇÇàÇØ º¸¸é USB¿¡ °üÇÑ ³»¿ë(º¸Åë ohci-usb ³ª usb)À» º¼ ¼ö ÀÖÀ» °ÍÀÌ´Ù. ¸¶¿ì½º¸¦ ¸î ¹ø Ŭ¸¯ÇÑ ´ÙÀ½ /proc/interrupts¸¦ »ìÆ캸¸é ÇØ´ç Ä«¿îÆ®°¡ Áõ°¡µÈ °ÍÀ» º¼ ¼ö ÀÖÀ» °ÍÀÌ´Ù(Ŭ¸¯ ÇÑ ¹ø¿¡ 2¾¿ Áõ°¡Çϴµ¥ down,up °¢ 1¾¿ Áõ°¡ÇÑ´Ù). UHCI¿¡¼­´Â Ä«¿îÆ®°¡ Á» ¾î·Á¿îµ¥ /proc/interrupts ¸¦ »ìÆ캸´Â µ¿¾È Áö¿¬µÈ ½Ã°£(ÃÊ)À» »©¾ß ÇÑ´Ù. USB Å°º¸µå¸¦ »ç¿ëÇÏ°í ÀÖ´Ù¸é Å°´­¸² ¶ÇÇÑ °¨¾ÈÇØ¾ß ÇÑ´Ù.

/proc/misc¸¦ »ìÆ캸¸é ¾Æ·¡¿Í ºñ½ÁÇÑ ³»¿ëÀ» º¼ ¼ö ÀÖÀ» °ÍÀÌ´Ù.

[bradh@rachel bradh]$ more /proc/misc
 32 USB Mouse
  1 psaux

¸¶¿ì½º°¡ »ç¿ëÇÒ /dev Ç׸ñÀ» ¼³Á¤ÇØ¾ß ÇÑ´Ù. ¾Æ·¡ÀÇ ¸í·ÉÀ» »ç¿ëÇ϶ó.

mknod /dev/usbmouse c 10 32 

X À©µµ¿ì¿¡¼­ ¸¶¿ì½º¸¦ »ç¿ëÇÏ·Á¸é ¾Æ·¡¿Í °°ÀÌ ¼³Á¤ÇØ¾ß ÇÑ´Ù.

  • XF86Config ÆÄÀÏ(º¸Åë /usr/X11R6/lib/X11/XF86Config)À» ¼öÁ¤ÇÑ´Ù. ¾Æ·¡ÀÇ ³»¿ëÀ» Ãß°¡Ç϶ó(ÀÎ½Ä °¡´ÉÇÑ °÷ ¾îµðµç »ó°ü¾øÁö¸¸ ÀÔ·ÂÀåÄ¡ Ç׸ñÀÌ ¹Ù¶÷Á÷ÇÏ´Ù).
    Section "Xinput"
       SubSection "Mouse"
            DeviceName   "USB Mouse"
            Protocol     "IMPS/2"
            Port         "/dev/usbmouse"
            AlwaysCore
       EndSubSection
    EndSection
    
  • X ¼­¹ö¸¦ Àç½ÃÀÛÇÑ´Ù. ¸¶¿ì½º°¡ ÀÛµ¿µÇÁö ¾ÊÀ¸¸é Ctrl-Alt-F1À» ´­·¯ °¡»ó Å͹̳ÎÀ» ¶ç¿î ´ÙÀ½ xserver¸¦ kill ¸í·ÉÀ¸·Î Á¾·á½ÃÅ°°í ¿¡·¯ ¸Þ¼¼Áö¸¦ °¡Áö°í µð¹ö±ëÇ϶ó.

gpm¿¡¼­ ¸¶¿ì½º¸¦ »ç¿ëÇÏ·Á¸é gpm -m /dev/usbmouse -t ps2¿Í °°ÀÌ ½ÇÇàÇ϶ó(½´ÆÛ À¯Àú·Î ½ÇÇàÇØ¾ß ÇÑ´Ù). ºÎÆýà ½ÇÇàµÇ´Â ÆÄÀÏÀ» ¼öÁ¤Çϸé ÀÌ°ÍÀ» ±âº»°ªÀ¸·Î ¼³Á¤ÇÒ ¼ö ÀÖ´Ù. Redhat ¹èÆ÷ÆÇ¿¡´Â ±âº»ÀûÀ¸·Î /etc/rc.d/ µð·ºÅ丮¿¡ ÀÌ·¯ÇÑ ÆÄÀϵéÀÌ ÀÖÀ¸¸ç rc.d¿Í ºñ½ÁÇÑ À̸§À» °®°í ÀÖ´Ù.

3. Å°º¸µå ¼³Á¤

PC¸¦ »ç¿ëÇÏ°í ÀÖ´Ù¸é USB Å°º¸µå¸¦ »ç¿ëÇϱâ À§ÇØ ¿î¿µÃ¼Á¦ Áö¿øÀÌ ÀüÇô ÇÊ¿ä ¾øÀ» ¼öµµ ÀÖ´Ù. ¸¶´õº¸µåÀÇ ·çÆ® Çãºê¿¡ ¿¬°áµÈ USB Å°º¸µå¸¦ Áö¿øÇÏ´Â BIOSµéÀÌ ÀÖ´Ù. ÀÌ°ÍÀº ´Ù¸¥ Çãºê¿¡¼­ ÀÛµ¿ÇÒ ¼öµµ ÀÖ°í ¾ÈÇÒ ¼öµµ ÀÖÀ¸¸ç ³»À庸µå(add-in board)¿¡¼­´Â º¸Åë ÀÛµ¿µÇÁö ¾Ê´Â´Ù. µû¶ó¼­ ¾î¶»µç °£¿¡ Áö¿øÀÌ ÇÊ¿äÇÒ °ÍÀÌ´Ù.

Å°º¸µå°¡ Ä¿³Î¿¡¼­ Á¤È®È÷ ÀνĵǴÂÁö È®ÀÎÇ϶ó. more /proc/interrupts¸¦ ½ÇÇàÇØ º¸¸é USB¿¡ °üÇÑ ³»¿ë(º¸Åë ohci-usb ¶Ç´Â usb)À» º¼ ¼ö ÀÖÀ» °ÍÀÌ´Ù. Å°º¸µå¸¦ ´©¸¥ ´ÙÀ½ /proc/interrupts¸¦ »ìÆ캸¸é Ä«¿îÆ®°¡ Áõ°¡µÈ °ÍÀ» º¼ ¼ö ÀÖ´Ù. ¸¸¾à UHCI¸¦ »ç¿ëÇÏ°í ÀÖ´Ù¸é Áö¿¬µÈ ½Ã°£(ÃÊ)À» »©¾ß ÇÑ´Ù.

ÀÌÁ¦ º¸ÅëÀÇ Å°º¸µåó·³ USB Å°º¸µå¸¦ »ç¿ëÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù. LILO°¡ USB¸¦ ÀνÄÇÏÁö ¸øÇÑ´Ù´Â °ÍÀ» ±â¾ïÇ϶ó. BIOS°¡ USB Å°º¸µå¸¦ Áö¿øÇÏÁö ¾Ê´Â´Ù¸é USB Å°º¸µå¸¦ »ç¿ëÇÏ´Â ±âº» À̹ÌÁö ¿ÜÀÇ ´Ù¸¥ ºÎÆ® À̹ÌÁö¸¦ ¼±ÅÃÇÒ ¼ö ¾øÀ» ¼öµµ ÀÖ´Ù. ³ª´Â °³ÀÎÀûÀ¸·Î USB Å°º¸µå(±×¸®°í USB ¸¶¿ì½º)¸¸À» »ç¿ëÇÏ°í ÀÖÀ¸¸ç ¾Æ¹« ¹®Á¦°¡ ¾ø´Ù.

4. Çãºê Áö¿ø

Çãºê´Â ´Ù¸¥ ¼³Á¤ ¾øÀÌ ÀÛµ¿µÉ °ÍÀÌ´Ù. ·çÆ® Çãºê¿¡ ¿¬°áµÈ °æ¿ì¿¡¸¸ ÀÛµ¿µÇ°í ³»Àå(add-on) Çãºê¿¡ ¿¬°á µÉ ¶§´Â ÀÛµ¿µÇÁö ¾Ê´Â´Ù¸é Çãºê ¸ðµâÀ» ¼³Ä¡Çß´ÂÁö È®ÀÎÇ϶ó(¸ðµâ·Î ¼³Á¤ÇÑ °æ¿ìÀÌ´Ù). ¶ÇÇÑ ¹ö½º¸¦ ÅëÇØ Àü¿øÀÌ °ø±ÞµÇ´Â Çãºê¿¡ Àü·ÂÀ» ¸¹ÀÌ »ç¿ëÇÏ´Â ÀåÄ¡¸¦ ¿¬°áÇÏÁö ¾Êµµ·Ï ÇÑ´Ù.

5. ÇÁ¸°ÅÍ Áö¿ø

ÇÁ¸°ÅÍ¿ë /dev Ç׸ñÀ» ¼³Á¤ÇØ¾ß ÇÑ´Ù. ¾Æ·¡ ¸í·ÉÀ» ½ÇÇàÇ϶ó.

mknod /dev/usblp c 63 0

ÀÌÁ¦ ÀÌ ÀåÄ¡¸¦ /etc/printcap Ç׸ñ¿¡¼­ »ç¿ëÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù. ¾à°£ ´À¸®Áö¸¸ ³ª·Î¼­´Â ÀÌ µå¶óÀ̹ö°¡ ¾ÆÁÖ ÈǸ¢ÇÏ´Ù°í »ý°¢ÇÑ´Ù. Redhat Á¦¾îÆÇÀÇ ÇÁ¸°ÅÍÅø°ú °°Àº ÀÚµ¿ ¼³Á¤ ÅøÀ» »ç¿ëÇؼ­ ÀåÄ¡ ÆÄÀÏÀ» ¸¸µé °ÍÀ» ±ÇÀåÇÑ´Ù.

ÇÁ¸°ÅÍ°¡ ÀÛµ¿µÇÁö ¾ÊÀ¸¸é ÇÁ¸°ÅÍÀÇ ¸ÞÀÌÀú ³Ñ¹ö(major device number)°¡ ¹Ù²î¾ú´ÂÁö¸¦ Á¡°ËÇ϶ó(63Àº ½ÇÇèÀû ¹üÀ§ÀÇ °ªÀÌ´Ù). ¼Ò½ºÄڵ峪 /proc/devices¸¦ »ìÆ캸¸é µÈ´Ù. ½ÇÁ¦·Î ¸ðµâÀÌ ÀûÀçµÇ¾ú´ÂÁö »ìÆ캸°í /etc/printcap Ç׸ñÀ» ´Ù½Ã üũÇ϶ó. ƯÈ÷ ÀåÄ¡ ÆÄÀÏÀÌ ´ç½ÅÀÌ ¸¸µç °Í°ú µ¿ÀÏÇÑÁö È®ÀÎÇ϶ó.

6. Abstract Control Model Áö¿ø

´Ù¾çÇÑ ACM ÀåÄ¡¸¦ »ç¿ëÇϱâ À§ÇØ /dev Ç׸ñÀ» ¼³Á¤ÇØ¾ß ÇÑ´Ù. ¾Æ·¡ÀÇ ¸í·ÉÀ» »ç¿ëÇ϶ó.

mknod /dev/ttyACM0 c 166 0                                              
mknod /dev/ttyACM1 c 166 1                                              
mknod /dev/ttyACM2 c 166 2                                              
mknod /dev/ttyACM3 c 166 3 

ÀÌÁ¦ ÀÌ ÀåÄ¡¸¦ »ç¿ëÇϱâ À§ÇÑ Å͹̳Π¾Ö¹Ä·¹ÀÌÅÍ ÇÁ·Î±×·¥À» »ç¿ëÇÒ ¼ö ÀÖÀ» °ÍÀÌ°í ¸ðµ©À̳ª ´Ù¸¥ Å͹̳ΠÀåÄ¡¸¦ »ç¿ëÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù. ºÐ¸íÈ÷ ÀÌ µå¶óÀ̹ö´Â ´ëºÎºÐ ÀÛµ¿µÇÁö¸¸ ¾ÆÁ÷µµ ¸î °¡Áö ¹®Á¦°¡ ÀÖ´Ù. ³» °³ÀÎÀûÀ¸·Î Å×½ºÆ® Çغ¸Áö´Â ¾Ê¾Ò´Ù.

7. CPiA imager Áö¿ø

ÀÌ µå¶óÀ̹ö´Â Vision»ç¿¡¼­ ¸¸µç ƯÁ¤ÇÑ Ä¨¼ÂÀ» Áö¿øÇϸç USB Ä«¸Þ¶ó(´ëÇ¥ÀûÀ¸·Î Creative WebCamll)¿¡¼­ »ç¿ëµÈ´Ù. ÀÌ µå¶óÀ̹ö¸¦ »ç¿ëÇϱâ À§Çؼ­´Â Video For Linux Ç׸ñÀ» ¼±ÅÃÇØ¾ß ÇÑ´Ù(menuconfig¸¦ »ç¿ëÇÏ°í ÀÖ´Ù¸é Character Devices Ç׸ñ ¾Æ·¡¿¡ ÀÖ´Ù).

CPiA Ä«¸Þ¶ó¸¦ À§ÇØ /dev Ç׸ñÀ» ¼³Á¤ÇØ¾ß ÇÑ´Ù. ¾Æ·¡ ¸í·ÉÀ» ½ÇÇàÇ϶ó.

mknod /dev/video0 c 81 0
ln -s /dev/video0 /dev/video

ÀåÄ¡¸¦ »ç¿ëÇϱâ À§Çؼ­´Â ¸î °¡Áö ºñµð¿À ÅøÀÌ ÇÊ¿äÇÏ´Ù. ¼ö¸¹Àº Á¾·ùÀÇ ÅøµéÀÌ ÀÖ´Ù. http://millenium.diads.com/bdirksÀº º¸Åë ¹èÆ÷ ³¯Â¥¿¡ µû¶ó apps19990527.tgz¿Í °°Àº À̸§À» °¡Áø ÆÐÅ°Áö¸¦ Á¦°øÇÑ´Ù. X À©µµ¿ì ¹× ÅؽºÆ® ¸ðµå ÅøÀ» Æ÷ÇÔÇÏ°í ÀÖ´Ù. ÅؽºÆ® ¸ðµå ÅøÀ» ¾Æ·¡¿Í °°ÀÌ »ç¿ëÇÒ ¼ö ÀÖ´Ù.

./vctrl 320x240x24
./vcat | rawtoppm -bgr 320 240 | xv -

ÀÌ ÅøµéÀº º°´Ù¸¥ ¼³Á¤ÀÌ ¾øÀ¸¸é µðÆúÆ®·Î /dev/video¸¦ »ç¿ëÇϱ⠶§¹®¿¡ ½Éº¼¸¯ ¸µÅ©°¡ ±×Àü¿¡ ¼³Á¤µÇ¾î ÀÖ¾î¾ß ÇÑ´Ù.

ÇöÀç·Î¼­´Â CPiA Ä«¸Þ¶ó´Â Èæ¹éÀ̹ÌÁö¸¸ °¡´ÉÇÏ´Ù. ³ª´Â °³ÀÎÀûÀ¸·Î Å×½ºÆ® ÇÑ ¹Ù ¾ø´Ù. CPiA Ä«¸Þ¶ó¸¦ »ç¿ëÇÏ°íÀÚ ÇÑ´Ù¸é Vision»çÀÇ CPiA À¥»çÀÌÆ® http://home.eunet.no/~jtotland/visionÀ» Âü°íÇ϶ó.

8. ´ë¿ë·® ÀúÀåÀåÄ¡

==Çã°¡ ¾øÀÌ Ãß°¡Çغ¾´Ï´Ù.== ±â¾ïÀ» ´õµë¾î¼­ ¿Ã¸®¹Ç·Î ÀÚ·á°¡ ºÎÁ·Çϰųª Ʋ¸± ¼öµµ ÀÖ½À´Ï´Ù. ·¹µåÇÞ 9.x ¿¡¼­ ¼Ò½º Ä¿³Î ÄÄÆÄÀÏÇؼ­ Çغ¸¾Ò½À´Ï´Ù. 9.0 ±âº» rpm Ä¿³Î·Î´Â Áö¿øÀÌ ¿øÇÑÇÏÁö ¾Ê°í ÀνÄÀÌ µÇÁö ¾ÊÀ» ¼ö ÀÖ½À´Ï´Ù. Å×½ºÆ® Ä¿³Î 2.4.27 / 2.6.X ¿¡¼­´Â Á¤»ó ÀÛµ¿ÇÏÁö ¾Ê°í ÀÖ½À´Ï´Ù. (2004/10¿ù ±âÁØ)

Ä¿³Î¿¡¼­ ¾îµð¸¦ ±¸Ã¼ÀûÀ¸·Î ¿Ã·Á¾ß ÇÏ´ÂÁö ±â¾ïÀÌ Àß ³ªÁø ¾ÊÁö¸¸ scsi ¿É¼Ç¿¡¼­ ¿¡¹Ä·¹ÀÌÅÍ Ã¼Å©ÇÕ´Ï´Ù. usb ¿¡¼­ usb-storage üũÇÕ´Ï´Ù.

¸®ºÎÆà ÇÒ¶§ usb °¡ ¿Ã¶ó ¿ÀÁö ¾ÊÀ¸¸é ¾Æ·¡¿Í °°ÀÌ ½ºÅ©¸³Æ®¸¦ ¸¸µé°í ¿Ã·Áº¸½Ê½Ã¿À. #!/bin/sh insmod /lib/modules/2.4.27/kernel/drivers/usb/usbcore.o insmod /lib/modules/2.4.27/kernel/drivers/usb/host/uhci.o <== usb 1 / 2 ¹öÀü¿¡ µû¶ó ´Ù¸¥°ÍÀ» ¿Ã·Á¾ß ÇÒ ¼öµµ ÀÖ½À´Ï´Ù. insmod /lib/modules/2.4.27/kernel/drivers/usb/storage/usb-storage.o

¸ðµâ ¿Ã¶ó¿Â°Í È®ÀÎ [root@back root]# lsmod Module Size Used by Not tainted usb-storage 126800 4 uhci 30320 0 (unused) <== »ç¿ëÀº ¾ÊÇÏÁö¸¸ ¾øÀ¸¸é ¾È¿Ã¶ó¿À´Â°Í °°¾Æº¸ÀÔ´Ï´Ù. usbcore 81600 0 [usb-storage uhci]

µ¿ÀÛ À¯¹« È®ÀÎ initââ¬âbdflush ââcrond ââkeventd ââkhubd ââ10*[kjournald] ââklogd ââksoftirqd_CPU0 ââkswapd ââkupdated ââlockdââ?pciod ââ6*[mingetty] ââ8*[nfsd] ââportmap âârpc.mountd âârpc.rquotad ââscsi_eh_1 <== ¿¡¹Ä·¹ÀÌÅÍ ââscsi_eh_2 <== ¿¡¹Ä·¹ÀÌÅÍ ââ2*[sendmail] ââsshdââ?shdââ?ashââ?stree ââsyslogd ââusb-storage-0 ââusb-storage-1 ââxinetd df /dev/hda8 1004024 91960 861060 10% / /dev/hda1 101089 11110 84760 12% /boot /dev/hda5 4032092 32828 3794440 1% /data /dev/hda2 5036316 32848 4747636 1% /home none 257116 0 257116 0% /dev/shm /dev/hda3 4032124 1152688 2674608 31% /usr /dev/hda6 3020140 135052 2731672 5% /var /dev/sda1 192292124 59488 182464716 1% /mnt/a <== ½ºÄ«½Ã°¡ ¿¡¹Ä·¹ÀÌÅÍ ÇØÁÖ´Â°Í °°½À´Ï´Ù. /dev/sdb1 192292124 29539712 152984492 17% /mnt/b <== /dev/sdc1 192292124 14673608 167850596 9% /mnt/c <== /dev/sdd1 192292124 41752148 140772056 23% /mnt/d <==

ÀÌ»óÀÔ´Ï´Ù.

9. EZUSB µå¶óÀ̹ö

Ãß°¡ ¿¹Á¤

10. USS720 µå¶óÀ̹ö

USS720Àº º´·Ä Æ÷Æ®¿ë USBĨÀ¸·Î Lucent»ç¿¡¼­ ¸¸µé¾ú´Ù. USS720ĨÀº USB Printer Class Àåġó·³ ÀÛµ¿ÇÑ´Ù. »ç½Ç USS720À¸·Î ¸¸µç ºê¸´Áö¸¦ »ç¿ëÇÏ¸é º´·Ä Æ÷Æ® ÇÁ¸°Å͸¦ ¾Õ¿¡¼­ º» USB ÇÁ¸°ÅÍ µå¶óÀ̹ö·Î »ç¿ëÇÒ ¼ö ÀÖ´Ù. ¶ÇÇÑ USS720À» º¸ÅëÀÇ º´·ÄÆ÷Æ® Çϵå¿þ¾î·Î ÀνÄÇÏ´Â ¸ðµå°¡ ÀÖ´Ù(·¹Áö½ºÅÍ ¸ðµå·Î ¾Ë·ÁÁ® ÀÖ´Ù). ÀÌ µå¶óÀ̹ö´Â ·¹Áö½ºÅÍ ¸ðµå¸¦ »ç¿ëÇÑ´Ù.

¸ðµâÀ» ÀûÀçÇϰųª USS720 Áö¿ø Ä¿³Î·Î ÀçºÎÆà Çϱâ Àü¿¡ /proc/sys/dev/parport¸¦ »ìÆ캸¶ó. ´ç½ÅÀÇ ½Ã½ºÅÛÀÌ °¡Áø º´·ÄÆ÷Æ® ¼ö¸¦ ÁÖ¸ñÇ϶ó(º¸Åë /proc/sys/dev/parport/parport0 ÇϳªÀÌ´Ù). USS720 Áö¿øÇ׸ñÀ» Ä¿³Î¿¡ Æ÷ÇÔ½ÃŲ ÈÄ¿¡´Â ¶ÇÇϳªÀÇ Æ÷Æ®(º¸Åë /proc/sys/dev/parport1)°¡ ÀÖÀ» °ÍÀÌ´Ù. ÇØ´ç Çϵå¿þ¾î Ç׸ñÀ» º¸¸é ¾Æ·¡¿Í °°Àº ³»¿ëÀ» º¼ ¼ö ÀÖÀ» °ÍÀÌ´Ù.

[bradh@rachel bradh]$ more /proc/sys/dev/parport/parport1/hardware
base:   0x0
irq:    none
dma:    none
modes:  PCSPP,TRISTATE,COMPAT,EPP,ECP

¸ðµç ¹èÆ÷ÆÇÀº º´·Ä Æ÷Æ®¿ë /dev Ç׸ñÀ» Æ÷ÇÔÇÏ°í ÀÖ´Ù(º¸Åë /dev/lpx ¶Ç´Â /dev/parx À̸ç x´Â ÀÓÀÇÀÇ ¼öÀÚÀÌ´Ù). È®½ÅÀÌ ¼­Áö ¾Ê´Â´Ù¸é º´·ÄÆ÷Æ®´Â ij¸¯ÅÍ ¸ÞÀÌÀú ³Ñ¹ö(character major number) 6À» »ç¿ëÇÑ´Ù´Â °ÍÀ» ±â¾ïÇ϶ó.

USS720À» º´·ÄÆ÷Æ®¿ëÀ¸·Î Àß ¾µ ¼ö ÀÖÀ» °ÍÀÌ´Ù. ÁøÂ¥ USB ÇÁ¸°ÅÍó·³ ÇÁ¸°ÅÍ ¿¬°á¿¡ »ç¿ëÇÒ /etc/printcap ÆÄÀÏÀ» ÀÚµ¿¼³Á¤ÆÄÀÏ·Î ÀÛ¼ºÇϱ⸦ ±ÇÇÑ´Ù.

¼³Á¤Ç׸ñ¿¡¼­ USS720 Áö¿øÀ» ¼±ÅÃÇÒ ¼ö ¾ø´Ù¸é Parallel port support Ç׸ñÀ» ¼±ÅÃÇØ¾ß ÇÑ´Ù(¸¸¾à menuconfig¸¦ »ç¿ëÇÑ´Ù¸é General setup Ç׸ñ ¾Æ·¡¿¡ ÀÖ´Ù).

11. USB /proc µå¶óÀ̹ö

/procÀÇ USB Áö¿øÀ» À§Çؼ­´Â Preliminary /proc/bus/usb support¸¦ ¼±ÅÃÇØ¾ß ÇÑ´Ù. ±×¸®°í À§¿¡¼­ ¼³¸íÇÑ´ë·Î ÀçÄÄÆÄÀÏÇÏ°í À缳ġÇ϶ó.

USBÀÇ /proc Áö¿ø Ç׸ñÀº ÇöÀç 2°¡ÁöÀÇ ÀÎÅÍÆäÀ̽º¸¦ °®°í Àִµ¥, /proc/bus/usb/drivers¿Í /proc/bus/usb/devicesÀÌ´Ù.

/proc/bus/usb/drivers´Â ÇöÀç µî·ÏµÈ µå¶óÀ̹ö ¸®½ºÆ®¸¦ º¸¿©ÁØ´Ù(µå¶óÀ̹ö°¡ ÀåÄ¡¿¡¼­ »ç¿ëµÇÁö ¾Ê°í ÀÖ´õ¶óµµ). ¸ðµâ ¼³Ä¡ Å×½ºÆ®³ª ƯÁ¤(unknown) Ä¿³Î¿¡¼­ USB Áö¿ø ¿©ºÎ¸¦ »ìÆ캼 ¶§ À¯¿ëÇÏ´Ù. ¾Æ·¡ÀÇ ¿¹¸¦ º¸¶ó.

[bradh@rachel bradh]$ more /proc/bus/usb/drivers
 hub
 printer
 keyboard
 mouse

/proc/bus/usb/devices´Â ÇöÀç USB ¹ö½º¿¡ ¿¬°áµÈ ÀåÄ¡¿¡ ´ëÇÑ Á¤º¸¸¦ Ç¥½ÃÇÑ´Ù. °¢ ÀåÄ¡°¡ Á¦´ë·Î ¼³Á¤µÇ¾ú´ÂÁö¸¦ ÆľÇÇϴµ¥ À¯¿ëÇÏ´Ù. ¾Æ·¡ÀÇ ¿¹´Â ·çÆ®Çãºê, Çãºê, Å°º¸µå, ¸¶¿ì½º, ÇÁ¸°ÅÍ ¾î´ðÅÍ »ç¿ëÇÏ´Â °æ¿ìÀÌ´Ù.

 T:  Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= -1 Spd=12  If#=  0 MxCh= 2 Driver=(root hub)
 T:  Lev=01 Prnt=00 Port=00 Cnt=01 Dev#=  1 Spd=12  If#=  0 MxCh= 4 Driver=hub
 D:  Ver= 1.00 Cls=09(hub  ) Sub=00 Prot=00 MxPS= 8 #Cfgs=  1
 P:  Vendor=0451 ProdID=1446 Rev= 1.00
 C:* #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=100mA
 I:  If#= 0 Alt= 0 #EPs= 1 Cls=09(hub  ) Sub=00 Prot=00
 E:  Ad=81(I) Atr=03(Int.) MxPS=   1 Ivl=255ms
 T:  Lev=02 Prnt=01 Port=00 Cnt=01 Dev#=  2 Spd=12  If#=  0 MxCh= 0 Driver=printer
 D:  Ver= 1.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs=  1
 P:  Vendor=0729 ProdID=1284 Rev= 1.04
 C:* #Ifs= 1 Cfg#= 1 Atr=80 MxPwr= 98mA
 I:  If#= 0 Alt= 0 #EPs= 1 Cls=07(print) Sub=01 Prot=01
 E:  Ad=01(O) Atr=02(Bulk) MxPS=  64 Ivl=  0ms
 I:  If#= 0 Alt= 1 #EPs= 2 Cls=07(print) Sub=01 Prot=02
 E:  Ad=01(O) Atr=02(Bulk) MxPS=  64 Ivl=  0ms
 E:  Ad=82(I) Atr=02(Bulk) MxPS=  64 Ivl=  0ms
 I:  If#= 0 Alt= 2 #EPs= 3 Cls=ff(vend.) Sub=00 Prot=ff
 E:  Ad=01(O) Atr=02(Bulk) MxPS=  64 Ivl=  0ms
 E:  Ad=82(I) Atr=02(Bulk) MxPS=  64 Ivl=  0ms
 E:  Ad=83(I) Atr=03(Int.) MxPS=   4 Ivl=  1ms
 T:  Lev=02 Prnt=01 Port=01 Cnt=02 Dev#=  3 Spd=1.5 If#=  0 MxCh= 0 Driver=keyboard
 D:  Ver= 1.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs=  1
 P:  Vendor=045e ProdID=000b Rev= 0.82
 C:* #Ifs= 1 Cfg#= 1 Atr=a0 MxPwr=100mA
 I:  If#= 0 Alt= 0 #EPs= 1 Cls=03(HID  ) Sub=01 Prot=01
 E:  Ad=81(I) Atr=03(Int.) MxPS=   8 Ivl= 10ms
 T:  Lev=02 Prnt=01 Port=02 Cnt=03 Dev#=  4 Spd=1.5 If#=  0 MxCh= 0 Driver=mouse
 D:  Ver= 1.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs=  1
 P:  Vendor=046d ProdID=c001 Rev= 1.10
 C:* #Ifs= 1 Cfg#= 1 Atr=a0 MxPwr= 50mA
 I:  If#= 0 Alt= 0 #EPs= 1 Cls=03(HID  ) Sub=01 Prot=02
 E:  Ad=81(I) Atr=03(Int.) MxPS=   8 Ivl= 10ms

/proc/bus/usb/devices °á°ú´Â ¸î °¡Áö ±×·ìÀ¸·Î ³ª´©¾îÁø´Ù.

  • T:·Î ½ÃÀÛÇÏ´Â ÇàÀº ÅäÆú·ÎÁö(topology)ÀÌ´Ù. Lev´Â ÀåÄ¡ÀÇ ·¹º§À» Ç¥½ÃÇÑ´Ù. ·¹º§ 00Àº ·çÆ®ÇãºêÀÌ°í ·¹º§ 01Àº ·çÆ®Çãºê¿¡ ¿¬°áµÈ ÀåÄ¡, ·¹º§ 02´Â ·¹º§01ÀÎ Çãºê¿¡ ¿¬°áµÈ ÀåÄ¡ µîÀÌ´Ù. Prnt´Â ÀÌ ÀåÄ¡ÀÇ »óÀ§ ÀåÄ¡ÀÌ´Ù(00Àº ·çÆ®Çãºê¿Í ·çÆ®Çãºê¿¡ ¿¬°áµÈ ÀåÄ¡¸¦ ÀǹÌÇÑ´Ù). Port´Â »óÀ§ ÀåÄ¡ÀÇ Æ÷Æ®ÀÌ´Ù. 00Àº °¢ ÀåÄ¡ÀÇ Ã¹Â° Æ÷Æ®ÀÌ´Ù. Prnt/Port´Â °¢ ¹ö½º¿¡¼­ À¯ÀÏÇÑ °ªÀ» °®´Â´Ù. ÅäÆú·ÎÁö ·¹º§ ¾È¿¡¼­ ¹è¿­ ¼ø¼­¿¡ µû¶ó Cnt´Â ÇØ´ç ·¹º§¿¡¼­ ÀÌ ÀåÄ¡ÀÇ ¹øÈ£¸¦ Ç¥½ÃÇÑ´Ù. ù ¹ø° ÀåÄ¡ÀÎ 01ºÎÅÍ ½ÃÀÛÇÑ´Ù. Dev#´Â ¹ö½º ¹è¿­ ¼ø¼­¿¡ µû¶ó ·¹º§¿¡ °ü°è¾ø´Â ÀåÄ¡ ¹øÈ£ÀÌ´Ù. Spd´Â ÀåÄ¡°¡ ÀÛµ¿µÇ´Â ¼Óµµ¸¦ Mbps·Î Ç¥½ÃÇÑ´Ù(ÇöÀç ¹öÀü¿¡¼­´Â 1.5³ª 1.2ÀÌ´Ù). If#´Â ÇöÀç »ç¿ëµÇ´Â ÀÎÅÍÆäÀ̽º ¹øÈ£ÀÌ´Ù. MxCh´Â ÀÌ ÀåÄ¡¿¡ ¿¬°áµÉ ¼ö ÀÖ´Â ÃÖ´ë ÀåÄ¡ ¼öÀÌ´Ù. Çãºê ¿Ü¿¡´Â ¸ðµÎ 00ÀÌ´Ù. Driver´Â ÀÌ ÀåÄ¡¿¡ »ç¿ëµÇ°í ÀÖ´Â ÀåÄ¡ µå¶óÀ̹ö¸¦ Ç¥½ÃÇÑ´Ù('none' Ç׸ñÀº ¾Æ¹«·± µå¶óÀ̹öµµ »ç¿ëµÇÁö ¾ÊÀ½À» ÀǹÌÇÑ´Ù).
  • D:·Î ½ÃÀ۵Ǵ ÇàÀº ÀåÄ¡ µð½ºÅ©¸³ÅÍ(descriptor) Á¤º¸ÀÌ´Ù. Ver´Â ÀåÄ¡°¡ ¿ä±¸ÇÏ´Â USB »ç¾ç ¹öÀüÀ» Ç¥½ÃÇÑ´Ù. Cls´Â ÀåÄ¡°¡ ¿äûÇÏ´Â ÀåÄ¡ Ŭ·¡½º¸¦ Ç¥½ÃÇϸç 16Áø¼ö¿Í ¹®ÀÚ¿­·Î Ç¥½ÃÇÑ´Ù. Cls Ç׸ñ Áß 00(>ifc)Àº ÀåÄ¡ Ŭ·¡½º »ç¾ç ¿ä±¸°¡ ÀÎÅÍÆäÀ̽º¿Í µ¶¸³ÀûÀÓÀ» ÀǹÌÇϸç ÀÎÅÍÆäÀ̽º µð½ºÅ©¸³ÅÍ´Â ÀåÄ¡ Ŭ·¡½º Á¤º¸¸¦ Æ÷ÇÔÇÏ°í ÀÖ¾î¾ß ÇÑ´Ù. Sub´Â ÀåÄ¡°¡ ¼ö¿ëÇÏ´Â ¼­ºê Ŭ·¡½º(Cls Ç׸ñ ¾È¿¡¼­)¸¦ Ç¥½ÃÇÑ´Ù. MxPS´Â ¿£µåÆ÷ÀÎÆ®(Endpoint) 0À¸·ÎºÎÅÍÀÇ ÆÐŶÀÇ ÃÖ´ë Å©±â¸¦ Ç¥½ÃÇÑ´Ù. Cfgs´Â ÀåÄ¡ÀÇ ¼³Á¤ °³¼ö¸¦ Ç¥½ÃÇÑ´Ù.
  • D:¿Í À¯»çÇÏ°Ô P:·Î ½ÃÀÛÇÏ´Â ÇàÀº ÀåÄ¡ µð½ºÅ©¸³ÅÍÀÇ Á¤º¸¸¦ Ç¥½ÃÇÏÁö¸¸ ÇÑ ÁÙ¿¡ Ç¥½ÃÇÒ ¼ö ¾ø±â ¶§¹®¿¡ ºÐ¸®µÇ¾î ÀÖ´Ù. Vendor´Â ÀåÄ¡ÀÇ ÆǸÅÀÚ °íÀ¯ Äڵ带 Ç¥½ÃÇϸç ProdID´Â Á¦Ç° °íÀ¯ Äڵ带 Ç¥½ÃÇÑ´Ù. Rev´Â Á¦Ç° °³·® ¹øÈ£ÀÌ´Ù.
  • USB »ç¾ç¼­ 9.7.1ÀýÀ» Âü°íÇϸé ÀåÄ¡ µð½ºÅ©¸³ÅÍ¿¡ ´ëÇÑ ´õ ¸¹Àº Á¤º¸¸¦ ¾òÀ» ¼ö ÀÖ´Ù.
  • C:·Î ½ÃÀÛÇÏ´Â ÇàÀº ¼³Á¤ µð½ºÅ©¸³ÅÍÀÇ Á¤º¸ÀÌ´Ù. °¢ ÀåÄ¡ÀÇ C:ÇàÀÇ ¹øÈ£´Â #Cfgs¿¡ ÀÇÇØ ÇÒ´çµÈ´Ù. ¾Æ½ºÅ׸®Å© ¹®ÀÚ°¡ ºÙÀº Ç׸ñÀº ÇöÀç ¼³Á¤À» ÀǹÌÇÑ´Ù. #If´Â ÀåÄ¡ ÀÎÅÍÆäÀ̽º ¼ö¸¦ Ç¥½ÃÇÑ´Ù. Cfg#´Â ¾î¶² ¼³Á¤ÀÌ ÇöÀç »ç¿ëµÇ´ÂÁö¸¦ º¸¿©ÁØ´Ù. AtrÀº ÀåÄ¡ ¼Ó¼ºÀ» 16Áø¼ö·Î Ç¥½ÃÇÑ °ÍÀÌ´Ù(0x80Àº Àü·ÂÁö¿ø ¹ö½º, 0x40Àº ÀÚü Àü¿ø, 0x20Àº ¿ø°Ý ½Ãµ¿ °¡´É). MPwrÀº ÇöÀç ÀåÄ¡ ¼³Á¤¿¡¼­ÀÇ ÃÖ´ë Àü·Â »ç¿ë °ªÀÌ¸ç ¹Ð¸®¾ÏÆä¾î·Î Ç¥½ÃÇÑ´Ù. USB »ç¾ç¼­ 9.7.2ÀýÀ» Âü°íÇÏ¸é ¼³Á¤ µð½ºÅ©¸³ÅÍÀÇ Ãß°¡ Á¤º¸¸¦ ¾òÀ» ¼ö ÀÖ´Ù.
  • I:·Î ½ÃÀÛÇÏ´Â ÇàÀº ÀÎÅÍÆäÀ̽º µð½ºÅ©¸³ÅÍÀÇ Á¤º¸ÀÌ´Ù. °¢ C:ÇàÀÇ I:Çà ¹øÈ£´Â #Ifs Ç׸ñ¿¡ ÀÇÇØ ÇÒ´çµÈ´Ù. If#´Â ÇØ´ç ÀåÄ¡ ¼³Á¤¿¡¼­ ¾î´À ÀÎÅÍÆäÀ̽º°¡ »ç¿ëµÇ´ÂÁö¸¦ Ç¥½ÃÇÑ´Ù. Alt´Â ÇØ´ç ÀÎÅÍÆäÀ̽º¿¡ ¾î¶² ´ëü ¼³Á¤ÀÌ ¼³Á¤µÇ¾î ÀÖ´ÂÁö¸¦ º¸¿©ÁØ´Ù. #EPs´Â ÇØ´ç ¿£µåÆ÷ÀÎÆ®ÀÇ ´ëü ¼³Á¤ °¡¿îµ¥ ¾ó¸¶³ª ¸¹Àº ¿£µåÆ÷ÀÎÆ®°¡ ÀÖ´ÂÁö¸¦ º¸¿©ÁØ´Ù. Cls´Â ´ëü ÀÎÅÍÆäÀ̽º ¼³Á¤ÀÌ ¾î´À Ŭ·¡½º¿¡ ÇØ´çµÇ´ÂÁö¸¦ 16Áø¼ö¿Í ¹®ÀÚ¿­·Î ³ªÅ¸³½´Ù. Sub´Â ÀÎÅÍÆäÀ̽ºÀÇ ´ëü ¼³Á¤ÀÌ ¾î´À ÇÏÀ§ Ŭ·¡½º¿¡ ÇØ´çµÇ´ÂÁö¸¦ ³ªÅ¸³½´Ù. Prot´Â ´ëü ÀÎÅÍÆäÀ̽º°¡ ¾î¶² ÀÎÅÍÆäÀ̽º ÇÁ·ÎÅäÄÝ(Ŭ·¡½º¿Í ÇÏÀ§Å¬·¡½º ÁýÇÕ °¡¿îµ¥¿¡¼­)¿¡ ÀûÇÕÇÑÁö¸¦ º¸¿©ÁØ´Ù. USB »ç¾ç¼­ 9.7.3ÀýÀ» Âü°íÇ϶ó.
  • F:·Î ½ÃÀÛÇÏ´Â ÇàÀº ÀÎÅÍÆäÀ̽º µð½ºÅ©¸³ÅÍÀÇ Á¤º¸ÀÌ´Ù. °¢°¢ÀÇ I: Çà¿¡¼­ÀÇ E:Çà ¹øÈ£´Â #EPs Ç׸ñ¿¡¼­ ÁÖ¾îÁø´Ù. ¿£µåÆ÷ÀÎÆ® 0Àº Ç¥½ÃµÇÁö ¾Ê´Â´Ù. Ad´Â ¿£µåÆ÷ÀÎÆ® ÁÖ¼Ò¸¦ ³ªÅ¸³»¸ç ¿£µåÆ÷ÀÎÆ®°¡ ÀÔ·Â/Ãâ·Â °¡¿îµ¥ ¾î´À °ÍÀÎÁö¸¦ ³ªÅ¸³»´Â ¹®ÀÚ¸¦ Æ÷ÇÔÇÏ°í ÀÖ´Ù. AtrÀº ¿£µåÆ÷ÀÎÆ®¿¡ »ç¿ëµÇ´Â ¼Ó¼º(Àü¼Û ŸÀÔ)À» ³ªÅ¸³»¸ç Àü¼ÛŸÀÔÀ» ¼³¸íÇÏ´Â ¹®ÀÚ¿­ÀÌ µÚ¿¡ ³ª¿Â´Ù. MxPS´Â ÇØ´ç ¿£µåÆ÷ÀÎÆ®°¡ ÀûÀýÈ÷ ¼Û¼ö½ÅÇÒ ¼ö ÀÖ´Â ÃÖ´ë ÆÐŶÀÇ Å©±â¸¦ ³ªÅ¸³½´Ù. µî½Ã Àü¼Û(isochronous transfer)ÀÇ °æ¿ì MxPS´Â ¿ä±¸µÇ´Â ´ë¿ªÆøÀÇ Å©±â¸¦ ³ªÅ¸³½´Ù. IvlÀº ¿£µåÆ÷ÀÎÆ® ÀÎÅÍ·´Æ® È£ÃâÀÇ °£°ÝÀ» ¹Ð¸®ÃÊ ´ÜÀ§·Î ³ªÅ¸³½´Ù. IvlÀº ¹úÅ©¿Í Á¦¾î Àü¼Û(bulk and control transfers)¿¡¼­´Â ¹«½ÃµÇ¸ç µî½ÃÀü¼Û¿¡¼­´Â 1·Î ¼³Á¤µÈ´Ù. ¿£µåÆ÷ÀÎÆ® µð½ºÅ©¸³ÅÍ¿¡ °üÇÑ ÀÚ¼¼ÇÑ °ÍÀº USB »ç¾ç¼­ 9.7.4ÀýÀ» º¸¶ó.

/proc/bus/usb¿¡ °üÇÑ ´õ ÀÚ¼¼ÇÑ ³»¿ëÀº linux/Documentation/proc_usb_format.txt¸¦ Âü°íÇ϶ó.

12. ÀÚÁÖ Áú¹® ¹Þ´Â °Íµé(FAQs)

ÀÌÀåÀº ¹Ýº¹µÇ´Â Áú¹®µé¿¡ ´ëÇÑ ´äº¯ÀÌ´Ù.

µå¶óÀ̹ö¸¦ ¸¸µé·Á¸é ¾î¶»°Ô ÇؾßÇϳª¿ä

Ä¿³Î¼Ò½º¸¦ °øºÎÇ϶ó. ´ç½ÅÀÌ ¿øÇÏ´Â °Í°ú À¯»çÇÑ µå¶óÀ̹ö°¡ ÀÖÀ¸¸é ÀÛµ¿µÉ ¶§±îÁö °³Á¶Ç϶ó. ¿©±â¼­ À¯»çÇÏ´Ù´Â °ÍÀº ´ç½ÅÀÌ Àü¼ÛÇÏ°íÀÚ ÇÏ´Â °Í¿¡ °üÇÑ °ÍÀÌÁö ÀåÄ¡°¡ ¾î¶»°Ô »ý°å´ÂÁö¸¦ ¸»ÇÏ´Â °ÍÀÌ ¾Æ´Ï´Ù.

USB¿¡ °üÇÑ ÁÁÀº Ã¥ÀÌ ÀÖ´Ù¸é

³ª´Â ´ÜÁö ÇÑ ±ÇÀ» Àоú´Âµ¥ ¸Å¿ì ºÎ½ÇÇÏ´Ù°í »ý°¢Çß´Ù. http://www.usb.org¿¡¼­ »ç¾ç¼­¸¦ ±¸Çغ¸±â¸¦ ±ÇÇÑ´Ù. ±×°ÍÀº ¹«·áÀ̸ç Àб⠽±°í ÃֽŠ³»¿ëµéÀÌ´Ù.

ƯÁ¤ ¾÷ü°¡ µ¶ÀÚÀûÀ¸·Î ¸¸µç(vendor specific) ÀåÄ¡¸¦ °®°í ÀÖ¾î¿ä. µð½ºÅ©¸³ÅÍ´Â ÀÌ·¸°Ô µÇ¾î ÀÖ±¸¿ä

µð½ºÅ©¸³ÅÍ´Â µå¶óÀ̹ö¸¦ ¸¸µå´Â µ¥¿¡ ÇʼöÀûÀ̳ª ±×°Í¸¸À¸·Î ÃæºÐÇÏÁö´Â ¾Ê´Ù. ¾÷ü·ÎºÎÅÍ Àú¼öÁØ ¼³°è ¼¼ºÎ³»¿ëÀ» ¾Ë¾Æ¾ß ÇÑ´Ù. °Ô´Ù°¡ µð½ºÅ©¸³ÅÍ°¡ »ç¾çÀ» ÁؼöÇÏÁö ¾Ê´Â´Ù ÇÏ¿© ³î¶óÁö ¸¶¶ó - ³»°¡ ÇØ ÁÙ ¼ö ÀÖ´Â ¸»Àº ±× ¾÷üÀÇ ÀåÄ¡¸¦ »ç¿ëÇÏÁö ¸»¶ó´Â°Ô ÀüºÎ´Ù. µð½ºÅ©¸³ÅÍ´Â ´Ü¼øÇÑ ÀåÄ¡¿ë µ¥ÀÌÅÍ ¹ÙÀÌÆ®À̸ç, ÀåÄ¡¸¦ ÀçÇÁ·Î±×·¡¹ÖÇϸé ÀåÄ¡ÀÇ ¿ëµµ¿¡ °ü°è¾øÀÌ ¾î¶² ¹®ÀÚ¸¦ Ç¥½ÃµÇ°Ô ÇÒ ¼ö ÀÖ´Ù.

µå¶óÀ̹ö¿¡ ¾î¶² ¸ÞÀÌÀú ³Ñ¹ö¿Í ¸¶ÀÌ³Ê ³Ñ¹ö¸¦ »ç¿ëÇØ¾ß Çϳª¿ä

½ÇÇèÀû ¶Ç´Â ½ÃÇè¿ë ¹üÀ§ÀÇ ¹øÈ£¸¦ »ç¿ëÇ϶ó. ÇöÀç·Î¼­´Â USB¿¡ ÇÒ´çµÈ °ø½Ä ¸ÞÀÌÀú ³Ñ¹ö´Â ¾ø´Ù. ¸¶À̳ʴ ¾Æ¹«°Å³ª »ç¿ëÇ϶ó.

Sony Vaio laptop¿¡¼­ USB¸¦ »ç¿ëÇÏ°í ½ÍÀºµ¥¿ä

BIOS¿¡¼­ Plug-n-Pray ¿î¿µÃ¼Á¦ Áö¿ø Ç׸ñÀ» ¼±ÅÃÇÏÁö ¾ÊÀ¸¸é Àß ÀÛµ¿ÇÒ °ÍÀÌ´Ù.

USB-HOWTO ¹®¼­ÀÇ ÃÖ½ÅÆÇÀº ¾îµð¼­ ±¸Çϳª¿ä

¿©±é´Ï´Ù http://www.dynamine.net/linux-usb/HOWTO.

13. Á¤Á¤

ÀÌ ¹®¼­¿¡ °üÇؼ­ ¾ê±âÇÒ °ÍÀÌ ÀÖÀ¸¸é µÇµµ·ÏÀ̸é brad.hards@dao.defence.gov.au·Î ¸ÞÀÏÀ» º¸³»´Â °ÍÀÌ ÁÁ´Ù. º¸³¾ ¶§´Â ¹öÀü ¹øÈ£ ($Revision: 1.2 $)¸¦ ¸í½ÃÇϵµ·Ï ÇÑ´Ù.


ID
Password
Join
Nobody expects the Spanish Inquisition!


sponsored by andamiro
sponsored by cdnetworks
sponsored by HP

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2004-11-12 09:36:17
Processing time 0.0014 sec