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. ¸¶¿ì½º ¼³Á¤ 3. Å°º¸µå ¼³Á¤ 4. Çãºê Áö¿ø 5. ÇÁ¸°ÅÍ Áö¿ø 6. Abstract Control Model Áö¿ø 7. CPiA imager Áö¿ø 8. ´ë¿ë·® ÀúÀåÀåÄ¡ 9. EZUSB µå¶óÀ̹ö 10. USS720 µå¶óÀ̹ö 11. USB /proc µå¶óÀ̹ö 12. ÀÚÁÖ Áú¹® ¹Þ´Â °Íµé(FAQs) 13. Á¤Á¤ ______________________________________________________________________ 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 À©µµ¿ì¿¡¼­ ¸¶¿ì½º¸¦ »ç¿ëÇÏ·Á¸é ¾Æ·¡¿Í °°ÀÌ ¼³Á¤ÇØ¾ß ÇÑ´Ù. o XF86Config ÆÄÀÏ(º¸Åë /usr/X11R6/lib/X11/XF86Config)À» ¼öÁ¤ÇÑ´Ù. ¾Æ·¡ÀÇ ³»¿ëÀ» Ãß°¡Ç϶ó(ÀÎ½Ä °¡´ÉÇÑ °÷ ¾îµðµç »ó°ü¾øÁö¸¸ ÀÔ·ÂÀåÄ¡ Ç׸ñÀÌ ¹Ù¶÷Á÷ÇÏ´Ù). Section "Xinput" SubSection "Mouse" DeviceName "USB Mouse" Protocol "IMPS/2" Port "/dev/usbmouse" AlwaysCore EndSubSection EndSection o 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. 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 °á°ú´Â ¸î °¡Áö ±×·ìÀ¸·Î ³ª´©¾îÁø´Ù. o 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' Ç׸ñÀº ¾Æ¹«·± µå¶óÀ̹öµµ »ç¿ëµÇÁö ¾ÊÀ½À» ÀǹÌÇÑ´Ù). o D:·Î ½ÃÀ۵Ǵ ÇàÀº ÀåÄ¡ µð½ºÅ©¸³ÅÍ(descriptor) Á¤º¸ÀÌ´Ù. Ver´Â ÀåÄ¡°¡ ¿ä±¸ÇÏ´Â USB »ç¾ç ¹öÀüÀ» Ç¥½ÃÇÑ´Ù. Cls´Â ÀåÄ¡°¡ ¿äûÇÏ´Â ÀåÄ¡ Ŭ·¡½º¸¦ Ç¥½ÃÇϸç 16Áø¼ö¿Í ¹®ÀÚ¿­·Î Ç¥½ÃÇÑ´Ù. Cls Ç׸ñ Áß 00(>ifc)Àº ÀåÄ¡ Ŭ·¡½º »ç¾ç ¿ä±¸°¡ ÀÎÅÍÆäÀ̽º¿Í µ¶¸³ÀûÀÓÀ» ÀǹÌÇϸç ÀÎÅÍÆäÀ̽º µð½ºÅ©¸³ÅÍ´Â ÀåÄ¡ Ŭ·¡½º Á¤º¸¸¦ Æ÷ÇÔÇÏ°í ÀÖ¾î¾ß ÇÑ´Ù. Sub´Â ÀåÄ¡°¡ ¼ö¿ëÇÏ´Â ¼­ºê Ŭ·¡½º(Cls Ç׸ñ ¾È¿¡¼­)¸¦ Ç¥½ÃÇÑ´Ù. MxPS´Â ¿£µåÆ÷ÀÎÆ®(Endpoint) 0À¸·ÎºÎÅÍÀÇ ÆÐŶÀÇ ÃÖ´ë Å©±â¸¦ Ç¥½ÃÇÑ´Ù. Cfgs´Â ÀåÄ¡ÀÇ ¼³Á¤ °³¼ö¸¦ Ç¥½ÃÇÑ´Ù. o D:¿Í À¯»çÇÏ°Ô P:·Î ½ÃÀÛÇÏ´Â ÇàÀº ÀåÄ¡ µð½ºÅ©¸³ÅÍÀÇ Á¤º¸¸¦ Ç¥½ÃÇÏÁö¸¸ ÇÑ ÁÙ¿¡ Ç¥½ÃÇÒ ¼ö ¾ø±â ¶§¹®¿¡ ºÐ¸®µÇ¾î ÀÖ´Ù. Vendor´Â ÀåÄ¡ÀÇ ÆǸÅÀÚ °íÀ¯ Äڵ带 Ç¥½ÃÇϸç ProdID´Â Á¦Ç° °íÀ¯ Äڵ带 Ç¥½ÃÇÑ´Ù. Rev´Â Á¦Ç° °³·® ¹øÈ£ÀÌ´Ù. o USB »ç¾ç¼­ 9.7.1ÀýÀ» Âü°íÇϸé ÀåÄ¡ µð½ºÅ©¸³ÅÍ¿¡ ´ëÇÑ ´õ ¸¹Àº Á¤º¸¸¦ ¾òÀ» ¼ö ÀÖ´Ù. o C:·Î ½ÃÀÛÇÏ´Â ÇàÀº ¼³Á¤ µð½ºÅ©¸³ÅÍÀÇ Á¤º¸ÀÌ´Ù. °¢ ÀåÄ¡ÀÇ C:ÇàÀÇ ¹øÈ£´Â #Cfgs¿¡ ÀÇÇØ ÇÒ´çµÈ´Ù. ¾Æ½ºÅ׸®Å© ¹®ÀÚ°¡ ºÙÀº Ç׸ñÀº ÇöÀç ¼³Á¤À» ÀǹÌÇÑ´Ù. #If´Â ÀåÄ¡ ÀÎÅÍÆäÀ̽º ¼ö¸¦ Ç¥½ÃÇÑ´Ù. Cfg#´Â ¾î¶² ¼³Á¤ÀÌ ÇöÀç »ç¿ëµÇ´ÂÁö¸¦ º¸¿©ÁØ´Ù. AtrÀº ÀåÄ¡ ¼Ó¼ºÀ» 16Áø¼ö·Î Ç¥½ÃÇÑ °ÍÀÌ´Ù(0x80Àº Àü·ÂÁö¿ø ¹ö½º, 0x40Àº ÀÚü Àü¿ø, 0x20Àº ¿ø°Ý ½Ãµ¿ °¡´É). MPwrÀº ÇöÀç ÀåÄ¡ ¼³Á¤¿¡¼­ÀÇ ÃÖ´ë Àü·Â »ç¿ë °ªÀÌ¸ç ¹Ð¸®¾ÏÆä¾î·Î Ç¥½ÃÇÑ´Ù. USB »ç¾ç¼­ 9.7.2ÀýÀ» Âü°íÇÏ¸é ¼³Á¤ µð½ºÅ©¸³ÅÍÀÇ Ãß°¡ Á¤º¸¸¦ ¾òÀ» ¼ö ÀÖ´Ù. o I:·Î ½ÃÀÛÇÏ´Â ÇàÀº ÀÎÅÍÆäÀ̽º µð½ºÅ©¸³ÅÍÀÇ Á¤º¸ÀÌ´Ù. °¢ C:ÇàÀÇ I:Çà ¹øÈ£´Â #Ifs Ç׸ñ¿¡ ÀÇÇØ ÇÒ´çµÈ´Ù. If#´Â ÇØ´ç ÀåÄ¡ ¼³Á¤¿¡¼­ ¾î´À ÀÎÅÍÆäÀ̽º°¡ »ç¿ëµÇ´ÂÁö¸¦ Ç¥½ÃÇÑ´Ù. Alt´Â ÇØ´ç ÀÎÅÍÆäÀ̽º¿¡ ¾î¶² ´ëü ¼³Á¤ÀÌ ¼³Á¤µÇ¾î ÀÖ´ÂÁö¸¦ º¸¿©ÁØ´Ù. #EPs´Â ÇØ´ç ¿£µåÆ÷ÀÎÆ®ÀÇ ´ëü ¼³Á¤ °¡¿îµ¥ ¾ó¸¶³ª ¸¹Àº ¿£µåÆ÷ÀÎÆ®°¡ ÀÖ´ÂÁö¸¦ º¸¿©ÁØ´Ù. Cls´Â ´ëü ÀÎÅÍÆäÀ̽º ¼³Á¤ÀÌ ¾î´À Ŭ·¡½º¿¡ ÇØ´çµÇ´ÂÁö¸¦ 16Áø¼ö¿Í ¹®ÀÚ¿­·Î ³ªÅ¸³½´Ù. Sub´Â ÀÎÅÍÆäÀ̽ºÀÇ ´ëü ¼³Á¤ÀÌ ¾î´À ÇÏÀ§ Ŭ·¡½º¿¡ ÇØ´çµÇ´ÂÁö¸¦ ³ªÅ¸³½´Ù. Prot´Â ´ëü ÀÎÅÍÆäÀ̽º°¡ ¾î¶² ÀÎÅÍÆäÀ̽º ÇÁ·ÎÅäÄÝ(Ŭ·¡½º¿Í ÇÏÀ§Å¬·¡½º ÁýÇÕ °¡¿îµ¥¿¡¼­)¿¡ ÀûÇÕÇÑÁö¸¦ º¸¿©ÁØ´Ù. USB »ç¾ç¼­ 9.7.3ÀýÀ» Âü°íÇ϶ó. o 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: 0.7 $)¸¦ ¸í½ÃÇϵµ·Ï ÇÑ´Ù.