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

<!-- How to get USB devices working under LinuxÀÇ sgml ¼Ò½º
 ¹ø¿ª/º¯È¯ ±è±âÇö arbeit95@chollian.net
-->

<!doctype linuxdoc system>
<article>
<title>How to get USB devices working under Linux
<subtitle>¸®´ª½º¿¡¼­ USB ÀåÄ¡ µ¹¸®±â
<author>Brad Hards
, <htmlurl url="mailto:brad.hards@dao.defence.gov.au" name="brad.hards@dao.defence.gov.au">
<date>Revision: 0.7
<trans>±è±âÇö, <htmlurl url="mailto:arbeit95@chollian.net" name="arbeit95@chollian.net">
<tdate>Revision: 0.7  1999³â 10¿ù 9ÀÏ 

<abstract>
ÀÌ ¹®¼­´Â USB ÀåÄ¡µéÀ» ¸®´ª½º ½Ã½ºÅÛ¿¡¼­ »ç¿ëÇϱâ À§ÇÑ ´Ü°èÀû ¾È³»¼­ÀÇ ÃʾÈÀÌ´Ù.

</abstract>

<!-- Â÷·Ê -->
<toc>

<!-- º»¹®ÀÇ ½ÃÀÛ -->

<sect>±âº»ÀûÀÎ USB ¼³Á¤
<p>
ÃֽйöÀüÀÇ Ä¿³ÎÀÌ ÀÖ¾î¾ß ÇÑ´Ù. ¹öÀü <tt>2.2.7</tt> À̳ª ÀÌ ÀÌÈĹöÀüÀÇ Ä¿³ÎÀº USB Äڵ带 Æ÷ÇÔÇϰí ÀÖ´Ù. ÀÌ»óÀûÀ¸·Î´Â ´ÙÀ½¹öÀüÀÇ ¸ðµç pre-patches¸¦ Æ÷ÇÔÇÑ ÃֽŠ<tt>2.3.x</tt> Ä¿³ÎÀ» »ç¿ëÇϰí ÀÖÀ¸¸é ÁÁ´Ù. <tt>2.2.x</tt> Ä¿³Î¿¡¼­ <tt>2.3.x</tt> USB Äڵ带 »ç¿ëÇÏ´Â °ÍÀÌ °¡´ÉÇÏ´Ù - ÀÚ¼¼ÇÑ °ÍÀº ÀÌ ÀåÀÇ µÞºÎºÐÀ» »ìÆì º¸¶ó. USB ÄÚµå´Â »ç½Ç Ãʱ⠰³¹ß´Ü°è¿¡ Àֱ⠶§¹®¿¡ °¢ ¹öÀü¸¶´ÙÀÇ º¯°æ( ¹× ¹ö±×µé)Àº ¸Å¿ì »¡¸® º¯ÇÏ´Â °æÇâÀÌ ÀÖ´Ù. ÃֽйöÀü¿¡ °üÇÑ °ÍÀº µå¹°Áö¸¸ ¸ÞÀϸµ¸®½ºÆ®´Â °ÅÀÇ ´ëºÎºÐ¿¡ °üÇÑ ³»¿ëÀ» ´Ù·ç°í ÀÖ´Ù.
<p>
¸ÞÀϸµ¸®½ºÆ®´Â <htmlurl url="mailto:linux-usb@suse.com" name="linux-usb@suse.com">ÀÌ´Ù. °¡ÀÔÇÏ·Á¸é <htmlurl url="mailto:majordomo@suse.com" name="majordomo@suse.com">¿¡°Ô <bf>subscribe linux-usb</bf> ¶ó°í ¾´ ¸ÞÀÏÀ» º¸³»¶ó. ¸ÞÀϸµ¸®½ºÆ®ÀÇ ±ÛµéÀ» ±×¸¸ º¸°í ½ÍÀ¸¸é  <htmlurl url="mailto:majordomo@suse.com" name="majordomo@suse.com">¿¡°Ô <bf>unsubscribe linux-usb</bf> ¶ó°í ½á¼­ º¸³»¶ó.
<p>
Ä¿³Î¿¡ USB ¼³Á¤À» ÇØ¾ß ÇÑ´Ù. <bf>make menuconfig</bf>°¡ ÁÁÀ» °ÍÀÌ´Ù. <bf>USB drivers - not for the faint of heart</bf> Ç׸ñ¿¡¼­ <bf>Support for USB(EXPERIMENTAL!)</bf>¸¦ ¼±ÅÃÇØ¾ß ÇÑ´Ù. ¶ÇÇÑ <bf>UHCI (intel PIIX4 and others) support, OHCI (compaq and some others) support,</bf>¶Ç´Â <bf>OHCI-HCD (other OHCI opt. Virt. Root Hub) support</bf> °¡¿îµ¥ Çϳª¸¦ ¼±ÅÃÇÑ´Ù. UHCI, OHCI ¹× OHCI-HCD¸¦ µ¿½Ã¿¡ °°ÀÌ »ç¿ëÇϸé Á¦´ë·Î ÀÛµ¿ÇÏÁö ¾ÊÀ» ¼ö ÀÖ´Ù(UHCI´Â ÀÛµ¿ÇÒ °ÍÀÌ´Ù). ¾î´À °ÍÀ» °í¸¦ °ÍÀ̳Ĵ ´ç½ÅÀÌ ¾î¶² ¸¶´õº¸µå³ª ¾î´ðÅ͸¦ °®°í ÀÖ´À³Ä¿¡ ´Þ·Á ÀÖ´Ù. Intel°ú Via ¸¶´õº¸µå´Â UHCIÀÌ´Ù. ÄÄÆÑ°ú NEC ¸¶´õº¸µå, iMac°ú Opti Ĩ(¸ðµç Ĩ Á¾·ù¸¦ Æ÷ÇÔ)À» ¾²´Â ¸ðµç ¾î´ðÅÍ´Â OHCIÀ̸ç OHCI³ª OHCI-HCD °¡¿îµ¥ Çϳª¸¦ ¼±ÅÃÇÒ ¼ö ÀÖ´Ù. ¾î¶² ÄÁÆ®·Ñ·¯¸¦ ¼±ÅÃÇØ¾ßÇÒÁö ¸ð¸£°Ú´Ù¸é ¸¶´õº¸µå ¹®¼­¸¦ º¸¶ó. ¶ÇÇÑ /proc/pci¿¡¼­ ÈùÆ®¸¦ ¾òÀ» ¼ö ÀÖ´Ù. USB Ç׸ñÀÌ 0xHHHHÇü½ÄÀ¸·Î µÇ¾î ÀÖÀ» ¶§´Â(HHHH´Â 16Áø¼öÀÌ´Ù - ¿¹¸¦ µé¾î <bf>I/O at 0xe400</bf>) UHCIÀÌ´Ù. <bf>32 bit memory at 0xHH000000</bf> ÀÏ ¶§´Â(HH´Â 16Áø¼öÀÌ´Ù - ¿¹¸¦ µé¾î <bf>32 bit memory at 0xee000000</bf>) OHCIÀÌ´Ù. À̰͵µ ºÒ°¡´ÉÇÏ¸é ¾Æ¹«°Å³ª Çϳª ½ÃµµÇغ¸¶ó.
<p>
´ÙÀ½À¸·Î ¾î¶² ÀåÄ¡¸¦ »ç¿ëÇÒ °ÍÀÎÁö¸¦ ¼±ÅÃÇØ¾ß ÇÑ´Ù. ¿¹¸¦ µé¾î <bf>xUSB mouse support</bf>´Â USB ¸¶¿ì½º, <bf>USB keyboard support</bf>´Â USB Űº¸µå, <bf>USB hub support</bf>´Â Çãºê, <bf>USB communications Devices Class (ACM) support</bf>´Â POTS ¶Ç´Â ISDN¸ðµ©, <bf>USB Printer support</bf>´Â USB ÇÁ¸°ÅÍ, <bf>USB SCSI Support</bf>´Â ´ë¿ë·® ÀúÀåÀåÄ¡¿ë, <bf>USB CPiA Camera support</bf>´Â Vision CPiA Ĩ¼ÂÀ» »ç¿ëÇÑ Ä«¸Þ¶ó, <bf>EZUSB Firmware downloader</bf>´Â Anchor ChipsUSB ¸¶ÀÌÅ©·ÎÄÜÆ®·Ñ·¯Å¶¿¡ ´ëÇÑ ´Ù¿î·Îµå, <bf>USS7270 parport driver</bf>´Â º´·Ä Æ÷Æ® ¾î´ðÅÍ¿ë µîÀÌ´Ù. ¸ðµâ°ú Ä¿³Î Á÷Á¢ Áö¿ø(kernel only), º°µµÀÇ(split) ¸ðµâ, Ä¿³ÎÄÚµå µîÀ» »ç¿ëÇÒ ¼ö ÀÖ¾î¾ß ÇÑ´Ù. ÀåÄ¡µéÀ» ·çÆ® Çãºê¿¡ ²È¾Æ »ç¿ëÇØ¼­ Çãºê°¡ ²À ÇÊ¿äÇÏÁö ¾Ê´Ù ÇÏ´õ¶óµµ Çãºê Áö¿øÀ» ¼±ÅÃÇÏ´Â °ÍÀÌ ÁÁ´Ù.
<p>
<bf>USB audio parsing support</bf>´Â ÇöÀç±îÁö´Â Áö¿øµÇÁö ¾Ê´Â´Ù. ÀÌ ¹®¼­¿¡ ¿­°ÅµÇÁö ¾ÊÀº ÀåÄ¡´Â ÀÌ ±ÛÀ» ¾²´Â ½ÃÁ¡¿¡¼­´Â Áö¿øµÇÁö ¾Ê´Â °ÍµéÀÌ´Ù. ±×·¯³ª °³¹ßÀÚµéÀº ÇöÀç Äڵ忡 µµ¿òÀ» ÁÖ´Â °Í(contribute)Àº ¾ðÁ¦µçÁö ȯ¿µÇÑ´Ù.
<p>
¾ÈÁ¤ Ä¿³Î(<bf>2.2.x</bf>)À» ¾²°íÀÚ ÇÑ´Ù¸é °³¹ßÄ¿³Î(<bf>2.3.x</bf>)ÀÇ Äڵ带 <tt>drivers/usb</tt> µð·ºÅ丮¿¡ º¹»çÇØ ³ÖÀ¸¸é µÈ´Ù. <tt>arch/i386/config.in</tt>¿¡¼­ ¾Æ·¡¿Í °°Àº ÇàÀÇ ÁÖ¼®À» ¾ø¾Ö¾ß ÇÑ´Ù.
<verb>
# source drivers/usb/Config.in

</verb>
<p>
´Ù¸¥ ¾ÆÅ°ÅØÃ³µµ ºñ½ÁÇÒ °ÍÀÌ´Ù. <tt>drivers/usb/usb.h</tt>ÀÇ Ã¹ºÎºÐ¿¡ ¾Æ·¡¿Í °°Àº ¸î ÁÙÀÇ Á¤ÀÇ(definition)¸¦ Ãß°¡ÇØ¾ß ÇÑ´Ù.
<verb>
#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

</verb>
<p>
Ä¿³ÎÀ» ÀçÄÄÆÄÀÏÇϰí (¸ðµâ·Î ¼³Á¤Çß´Ù¸é) ¸ðµâµµ ÄÄÆÄÀÏ ÇÑ ´ÙÀ½ »õ·Î¿î Ä¿³Î°ú ¸ðµâÀ» ¼³Ä¡Ç϶ó. ½Ã½ºÅÛÀ» ÀçºÎÆÃÇÑ´Ù.
<p>
¸ðµâÀ» »ç¿ëÇϰí ÀÖ´Ù¸é ¸ðµâÀ» Á¤ÇØÁø ¼ø¼­¿¡ µû¶ó ÀûÀç(load) ÇØ¾ß ÇÑ´Ù. <tt>usbcore.o</tt>¸¦ ¸ÕÀú ÀûÀçÇϰí <tt>mouse.o, keyboard.o, hub.o</tt> µîÀÇ µå¶óÀ̹öµéÀ» ÀûÀçÇÑ ´ÙÀ½ ¸¶Áö¸·À¸·Î È£½ºÆ® ÄÁÆ®·Ñ·¯(¿¹¸¦ µé¾î <tt>usb-uhci.o</tt> ¶Ç´Â <tt>usb-ohci.o</tt>)¸¦ ÀûÀçÇÑ´Ù.
<p>
Ä¿³Î ·Î±×¸¦ »ìÆìº¸¶ó. ¾Æ·¡¿Í °°Àº ³»¿ëµéÀ» º¼ ¼ö ÀÖÀ» °ÍÀÌ´Ù(UHCI¿Í ¿ÜºÎ Çãºê¸¦ »ç¿ëÇÏ´Â °æ¿ìÀÌ´Ù).
<verb>
.......
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
.......

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

<sect>¸¶¿ì½º ¼³Á¤
<p>
¿ì¼± ¸¶¿ì½º°¡ Ä¿³Î¿¡ ÀÇÇØ Á¦´ë·Î ÀνĵǴÂÁö È®ÀÎÇ϶ó. <bf>more /proc/interrupts</bf>¸¦ ½ÇÇàÇØ º¸¸é USB¿¡ °üÇÑ ³»¿ë(º¸Åë <bf>ohci-usb</bf> ³ª <bf>usb</bf>)À» º¼ ¼ö ÀÖÀ» °ÍÀÌ´Ù. ¸¶¿ì½º¸¦ ¸î ¹ø Ŭ¸¯ÇÑ ´ÙÀ½ <bf>/proc/interrupts</bf>¸¦ »ìÆìº¸¸é ÇØ´ç Ä«¿îÆ®°¡ Áõ°¡µÈ °ÍÀ» º¼ ¼ö ÀÖÀ» °ÍÀÌ´Ù(Ŭ¸¯ ÇÑ ¹ø¿¡ 2¾¿ Áõ°¡Çϴµ¥ down,up °¢ 1¾¿ Áõ°¡ÇÑ´Ù). UHCI¿¡¼­´Â Ä«¿îÆ®°¡ Á» ¾î·Á¿îµ¥ <bf>/proc/interrupts</bf> ¸¦ »ìÆìº¸´Â µ¿¾È Áö¿¬µÈ ½Ã°£(ÃÊ)À» »©¾ß ÇÑ´Ù. USB Űº¸µå¸¦ »ç¿ëÇϰí ÀÖ´Ù¸é Ű´­¸² ¶ÇÇÑ °¨¾ÈÇØ¾ß ÇÑ´Ù.
<p>
<tt>/proc/misc</tt>¸¦ »ìÆìº¸¸é ¾Æ·¡¿Í ºñ½ÁÇÑ ³»¿ëÀ» º¼ ¼ö ÀÖÀ» °ÍÀÌ´Ù.
<verb>
[bradh@rachel bradh]$ more /proc/misc
 32 USB Mouse
  1 psaux
</verb>

<p>
¸¶¿ì½º°¡ »ç¿ëÇÒ /dev Ç׸ñÀ» ¼³Á¤ÇØ¾ß ÇÑ´Ù. ¾Æ·¡ÀÇ ¸í·ÉÀ» »ç¿ëÇ϶ó.
<verb>
mknod /dev/usbmouse c 10 32 
</verb>

<p>
X À©µµ¿ì¿¡¼­ ¸¶¿ì½º¸¦ »ç¿ëÇÏ·Á¸é ¾Æ·¡¿Í °°ÀÌ ¼³Á¤ÇØ¾ß ÇÑ´Ù.
<itemize>
<item><tt>XF86Config</tt> ÆÄÀÏ(º¸Åë <tt>/usr/X11R6/lib/X11/XF86Config</tt>)À» ¼öÁ¤ÇÑ´Ù. ¾Æ·¡ÀÇ ³»¿ëÀ» Ãß°¡Ç϶ó(ÀÎ½Ä °¡´ÉÇÑ °÷ ¾îµðµç »ó°ü¾øÁö¸¸ ÀÔ·ÂÀåÄ¡ Ç׸ñÀÌ ¹Ù¶÷Á÷ÇÏ´Ù).
<verb>
Section "Xinput"
   SubSection "Mouse"
        DeviceName   "USB Mouse"
        Protocol     "IMPS/2"
        Port         "/dev/usbmouse"
        AlwaysCore
   EndSubSection
EndSection
</verb>
<item>X ¼­¹ö¸¦ Àç½ÃÀÛÇÑ´Ù. ¸¶¿ì½º°¡ ÀÛµ¿µÇÁö ¾ÊÀ¸¸é Ctrl-Alt-F1À» ´­·¯ °¡»ó Å͹̳ÎÀ» ¶ç¿î ´ÙÀ½ xserver¸¦ kill ¸í·ÉÀ¸·Î Á¾·á½ÃŰ°í ¿¡·¯ ¸Þ¼¼Áö¸¦ °¡Áö°í µð¹ö±ëÇ϶ó.
</itemize>
<p>
gpm¿¡¼­ ¸¶¿ì½º¸¦ »ç¿ëÇÏ·Á¸é <bf>gpm -m /dev/usbmouse -t ps2</bf>¿Í °°ÀÌ ½ÇÇàÇ϶ó(½´ÆÛ À¯Àú·Î ½ÇÇàÇØ¾ß ÇÑ´Ù). ºÎÆÃ½Ã ½ÇÇàµÇ´Â ÆÄÀÏÀ» ¼öÁ¤Çϸé À̰ÍÀ» ±âº»°ªÀ¸·Î ¼³Á¤ÇÒ ¼ö ÀÖ´Ù. Redhat ¹èÆ÷ÆÇ¿¡´Â ±âº»ÀûÀ¸·Î <tt>/etc/rc.d/</tt> µð·ºÅ丮¿¡ ÀÌ·¯ÇÑ ÆÄÀϵéÀÌ ÀÖÀ¸¸ç <tt>rc.d</tt>¿Í ºñ½ÁÇÑ À̸§À» °®°í ÀÖ´Ù.

<sect>Űº¸µå ¼³Á¤
<p>
PC¸¦ »ç¿ëÇϰí ÀÖ´Ù¸é USB Űº¸µå¸¦ »ç¿ëÇϱâ À§ÇØ ¿î¿µÃ¼Á¦ Áö¿øÀÌ ÀüÇô ÇÊ¿ä ¾øÀ» ¼öµµ ÀÖ´Ù. ¸¶´õº¸µåÀÇ ·çÆ® Çãºê¿¡ ¿¬°áµÈ USB Űº¸µå¸¦ Áö¿øÇÏ´Â BIOSµéÀÌ ÀÖ´Ù. À̰ÍÀº ´Ù¸¥ Çãºê¿¡¼­ ÀÛµ¿ÇÒ ¼öµµ ÀÖ°í ¾ÈÇÒ ¼öµµ ÀÖÀ¸¸ç ³»À庸µå(add-in board)¿¡¼­´Â º¸Åë ÀÛµ¿µÇÁö ¾Ê´Â´Ù. µû¶ó¼­ ¾î¶»µç °£¿¡ Áö¿øÀÌ ÇÊ¿äÇÒ °ÍÀÌ´Ù.
<p>
Űº¸µå°¡ Ä¿³Î¿¡¼­ Á¤È®È÷ ÀνĵǴÂÁö È®ÀÎÇ϶ó. <bf>more /proc/interrupts</bf>¸¦ ½ÇÇàÇØ º¸¸é USB¿¡ °üÇÑ ³»¿ë(º¸Åë <bf>ohci-usb</bf> ¶Ç´Â <bf>usb</bf>)À» º¼ ¼ö ÀÖÀ» °ÍÀÌ´Ù. Űº¸µå¸¦ ´©¸¥ ´ÙÀ½ <bf>/proc/interrupts</bf>¸¦ »ìÆìº¸¸é Ä«¿îÆ®°¡ Áõ°¡µÈ °ÍÀ» º¼ ¼ö ÀÖ´Ù. ¸¸¾à UHCI¸¦ »ç¿ëÇϰí ÀÖ´Ù¸é Áö¿¬µÈ ½Ã°£(ÃÊ)À» »©¾ß ÇÑ´Ù.
<p>
ÀÌÁ¦ º¸ÅëÀÇ Å°º¸µåó·³ USB Űº¸µå¸¦ »ç¿ëÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù. LILO°¡ USB¸¦ ÀνÄÇÏÁö ¸øÇÑ´Ù´Â °ÍÀ» ±â¾ïÇ϶ó. BIOS°¡ USB Űº¸µå¸¦ Áö¿øÇÏÁö ¾Ê´Â´Ù¸é USB Űº¸µå¸¦ »ç¿ëÇÏ´Â ±âº» À̹ÌÁö ¿ÜÀÇ ´Ù¸¥ ºÎÆ® À̹ÌÁö¸¦ ¼±ÅÃÇÒ ¼ö ¾øÀ» ¼öµµ ÀÖ´Ù. ³ª´Â °³ÀÎÀûÀ¸·Î USB Űº¸µå(±×¸®°í  USB ¸¶¿ì½º)¸¸À» »ç¿ëÇϰí ÀÖÀ¸¸ç ¾Æ¹« ¹®Á¦°¡ ¾ø´Ù.

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

<sect>ÇÁ¸°ÅÍ Áö¿ø
<p>
ÇÁ¸°ÅÍ¿ë <tt>/dev</tt> Ç׸ñÀ» ¼³Á¤ÇØ¾ß ÇÑ´Ù. ¾Æ·¡ ¸í·ÉÀ» ½ÇÇàÇ϶ó.
<verb>
mknod /dev/usblp c 63 0
</verb>
<p>
ÀÌÁ¦ ÀÌ ÀåÄ¡¸¦ <tt>/etc/printcap</tt> Ç׸ñ¿¡¼­ »ç¿ëÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù. ¾à°£ ´À¸®Áö¸¸ ³ª·Î¼­´Â ÀÌ µå¶óÀ̹ö°¡ ¾ÆÁÖ ÈǸ¢ÇÏ´Ù°í »ý°¢ÇÑ´Ù. Redhat Á¦¾îÆÇÀÇ ÇÁ¸°ÅÍÅø°ú °°Àº ÀÚµ¿ ¼³Á¤ ÅøÀ» »ç¿ëÇØ¼­ ÀåÄ¡ ÆÄÀÏÀ» ¸¸µé °ÍÀ» ±ÇÀåÇÑ´Ù.
<p>
ÇÁ¸°ÅͰ¡ ÀÛµ¿µÇÁö ¾ÊÀ¸¸é ÇÁ¸°ÅÍÀÇ ¸ÞÀÌÀú ³Ñ¹ö(major device number)°¡ ¹Ù²î¾ú´ÂÁö¸¦ Á¡°ËÇ϶ó(63Àº ½ÇÇèÀû ¹üÀ§ÀÇ °ªÀÌ´Ù). ¼Ò½ºÄڵ峪 <tt>/proc/devices</tt>¸¦ »ìÆìº¸¸é µÈ´Ù. ½ÇÁ¦·Î ¸ðµâÀÌ ÀûÀçµÇ¾ú´ÂÁö »ìÆìº¸°í <tt>/etc/printcap</tt> Ç׸ñÀ» ´Ù½Ã üũÇ϶ó. ƯÈ÷ ÀåÄ¡ ÆÄÀÏÀÌ ´ç½ÅÀÌ ¸¸µç °Í°ú µ¿ÀÏÇÑÁö È®ÀÎÇ϶ó.

<sect>Abstract Control Model Áö¿ø
<p>
´Ù¾çÇÑ ACM ÀåÄ¡¸¦ »ç¿ëÇϱâ À§ÇØ <tt>/dev</tt> Ç׸ñÀ» ¼³Á¤ÇØ¾ß ÇÑ´Ù. ¾Æ·¡ÀÇ ¸í·ÉÀ» »ç¿ëÇ϶ó.
<verb>
mknod /dev/ttyACM0 c 166 0                                              
mknod /dev/ttyACM1 c 166 1                                              
mknod /dev/ttyACM2 c 166 2                                              
mknod /dev/ttyACM3 c 166 3 
</verb>
<p>
ÀÌÁ¦ ÀÌ ÀåÄ¡¸¦ »ç¿ëÇϱâ À§ÇÑ Å͹̳Π¾Ö¹Ä·¹ÀÌÅÍ ÇÁ·Î±×·¥À» »ç¿ëÇÒ ¼ö ÀÖÀ» °ÍÀÌ°í ¸ðµ©À̳ª ´Ù¸¥ Å͹̳ΠÀåÄ¡¸¦ »ç¿ëÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù. ºÐ¸íÈ÷ ÀÌ µå¶óÀ̹ö´Â ´ëºÎºÐ ÀÛµ¿µÇÁö¸¸ ¾ÆÁ÷µµ ¸î °¡Áö ¹®Á¦°¡ ÀÖ´Ù. ³» °³ÀÎÀûÀ¸·Î Å×½ºÆ® ÇØº¸Áö´Â ¾Ê¾Ò´Ù.

<sect>CPiA imager Áö¿ø
<p>
ÀÌ µå¶óÀ̹ö´Â Vision»ç¿¡¼­ ¸¸µç ƯÁ¤ÇÑ Ä¨¼ÂÀ» Áö¿øÇϸç USB Ä«¸Þ¶ó(´ëÇ¥ÀûÀ¸·Î Creative WebCamll)¿¡¼­ »ç¿ëµÈ´Ù. ÀÌ µå¶óÀ̹ö¸¦ »ç¿ëÇϱâ À§Çؼ­´Â <bf>Video For Linux</bf> Ç׸ñÀ» ¼±ÅÃÇØ¾ß ÇÑ´Ù(<bf>menuconfig</bf>¸¦ »ç¿ëÇϰí ÀÖ´Ù¸é <bf>Character Devices</bf> Ç׸ñ ¾Æ·¡¿¡ ÀÖ´Ù).
<p>
CPiA Ä«¸Þ¶ó¸¦ À§ÇØ <tt>/dev</tt> Ç׸ñÀ» ¼³Á¤ÇØ¾ß ÇÑ´Ù. ¾Æ·¡ ¸í·ÉÀ» ½ÇÇàÇ϶ó.
<verb>
mknod /dev/video0 c 81 0
ln -s /dev/video0 /dev/video
</verb>
<p>
ÀåÄ¡¸¦ »ç¿ëÇϱâ À§Çؼ­´Â ¸î °¡Áö ºñµð¿À ÅøÀÌ ÇÊ¿äÇÏ´Ù. ¼ö¸¹Àº Á¾·ùÀÇ ÅøµéÀÌ ÀÖ´Ù. <url url="http://millenium.diads.com/bdirks" name="http://millenium.diads.com/bdirks">Àº º¸Åë ¹èÆ÷ ³¯Â¥¿¡ µû¶ó <tt>apps19990527.tgz</tt>¿Í °°Àº À̸§À» °¡Áø ÆÐŰÁö¸¦ Á¦°øÇÑ´Ù. X À©µµ¿ì ¹× ÅØ½ºÆ® ¸ðµå ÅøÀ» Æ÷ÇÔÇϰí ÀÖ´Ù. ÅØ½ºÆ® ¸ðµå ÅøÀ» ¾Æ·¡¿Í °°ÀÌ »ç¿ëÇÒ ¼ö ÀÖ´Ù.
<verb>
./vctrl 320x240x24
./vcat | rawtoppm -bgr 320 240 | xv -
</verb>

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

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

<sect>´ë¿ë·® ÀúÀåÀåÄ¡
<p>
==Çã°¡ ¾øÀÌ Ãß°¡Çغ¾´Ï´Ù.== ±â¾ïÀ» ´õµë¾î¼­ ¿Ã¸®¹Ç·Î ÀÚ·á°¡ ºÎÁ·Çϰųª Ʋ¸± ¼öµµ ÀÖ½À´Ï´Ù.
·¹µåÇÞ 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 <==



ÀÌ»óÀÔ´Ï´Ù. 

<sect>EZUSB µå¶óÀ̹ö
<p>
Ãß°¡ ¿¹Á¤

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

<p>
¸ðµâÀ» ÀûÀçÇϰųª USS720 Áö¿ø Ä¿³Î·Î ÀçºÎÆÃ Çϱâ Àü¿¡ <bf>/proc/sys/dev/parport</bf>¸¦ »ìÆìº¸¶ó. ´ç½ÅÀÇ ½Ã½ºÅÛÀÌ °¡Áø º´·ÄÆ÷Æ® ¼ö¸¦ ÁÖ¸ñÇ϶ó(º¸Åë <bf>/proc/sys/dev/parport/parport0</bf> ÇϳªÀÌ´Ù). USS720 Áö¿øÇ׸ñÀ» Ä¿³Î¿¡ Æ÷ÇÔ½ÃŲ ÈÄ¿¡´Â ¶ÇÇϳªÀÇ Æ÷Æ®(º¸Åë <bf>/proc/sys/dev/parport1</bf>)°¡ ÀÖÀ» °ÍÀÌ´Ù. ÇØ´ç <bf>Çϵå¿þ¾î</bf> Ç׸ñÀ» º¸¸é ¾Æ·¡¿Í °°Àº ³»¿ëÀ» º¼ ¼ö ÀÖÀ» °ÍÀÌ´Ù.
<verb>
[bradh@rachel bradh]$ more /proc/sys/dev/parport/parport1/hardware
base:   0x0
irq:    none
dma:    none
modes:  PCSPP,TRISTATE,COMPAT,EPP,ECP
</verb>

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

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

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

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

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

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

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

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

<verb>
 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
</verb>

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

<p>
<itemize>
<item><bf>T:</bf>·Î ½ÃÀÛÇÏ´Â ÇàÀº ÅäÆú·ÎÁö(topology)ÀÌ´Ù. <bf>Lev</bf>´Â ÀåÄ¡ÀÇ ·¹º§À» Ç¥½ÃÇÑ´Ù. ·¹º§ 00Àº ·çÆ®ÇãºêÀÌ°í ·¹º§ 01Àº ·çÆ®Çãºê¿¡ ¿¬°áµÈ ÀåÄ¡, ·¹º§ 02´Â ·¹º§01ÀÎ Çãºê¿¡ ¿¬°áµÈ ÀåÄ¡ µîÀÌ´Ù. <bf>Prnt</bf>´Â ÀÌ ÀåÄ¡ÀÇ »óÀ§ ÀåÄ¡ÀÌ´Ù(00Àº ·çÆ®Çãºê¿Í ·çÆ®Çãºê¿¡ ¿¬°áµÈ ÀåÄ¡¸¦ ÀǹÌÇÑ´Ù). <bf>Port</bf>´Â »óÀ§ ÀåÄ¡ÀÇ Æ÷Æ®ÀÌ´Ù. 00Àº °¢ ÀåÄ¡ÀÇ Ã¹Â° Æ÷Æ®ÀÌ´Ù. <bf>Prnt/Port</bf>´Â °¢ ¹ö½º¿¡¼­ À¯ÀÏÇÑ °ªÀ» °®´Â´Ù. ÅäÆú·ÎÁö ·¹º§ ¾È¿¡¼­ ¹è¿­ ¼ø¼­¿¡ µû¶ó <bf>Cnt</bf>´Â ÇØ´ç ·¹º§¿¡¼­ ÀÌ ÀåÄ¡ÀÇ ¹øÈ£¸¦ Ç¥½ÃÇÑ´Ù. ù ¹øÂ° ÀåÄ¡ÀÎ 01ºÎÅÍ ½ÃÀÛÇÑ´Ù. <bf>Dev#</bf>´Â ¹ö½º ¹è¿­ ¼ø¼­¿¡ µû¶ó ·¹º§¿¡ °ü°è¾ø´Â ÀåÄ¡ ¹øÈ£ÀÌ´Ù. <bf>Spd</bf>´Â ÀåÄ¡°¡ ÀÛµ¿µÇ´Â ¼Óµµ¸¦ Mbps·Î Ç¥½ÃÇÑ´Ù(ÇöÀç ¹öÀü¿¡¼­´Â 1.5³ª 1.2ÀÌ´Ù). <bf>If#</bf>´Â ÇöÀç »ç¿ëµÇ´Â ÀÎÅÍÆäÀ̽º ¹øÈ£ÀÌ´Ù. <bf>MxCh</bf>´Â ÀÌ ÀåÄ¡¿¡ ¿¬°áµÉ ¼ö ÀÖ´Â ÃÖ´ë ÀåÄ¡ ¼öÀÌ´Ù. Çãºê ¿Ü¿¡´Â ¸ðµÎ 00ÀÌ´Ù. <bf>Driver</bf>´Â ÀÌ ÀåÄ¡¿¡ »ç¿ëµÇ°í ÀÖ´Â ÀåÄ¡ µå¶óÀ̹ö¸¦ Ç¥½ÃÇÑ´Ù('none' Ç׸ñÀº ¾Æ¹«·± µå¶óÀ̹öµµ »ç¿ëµÇÁö ¾ÊÀ½À» ÀǹÌÇÑ´Ù).

<p>
<item><bf>D:</bf>·Î ½ÃÀ۵Ǵ ÇàÀº ÀåÄ¡ µð½ºÅ©¸³ÅÍ(descriptor) Á¤º¸ÀÌ´Ù. <bf>Ver</bf>´Â ÀåÄ¡°¡ ¿ä±¸ÇÏ´Â USB »ç¾ç ¹öÀüÀ» Ç¥½ÃÇÑ´Ù. <bf>Cls</bf>´Â ÀåÄ¡°¡ ¿äûÇÏ´Â ÀåÄ¡ Ŭ·¡½º¸¦ Ç¥½ÃÇϸç 16Áø¼ö¿Í ¹®ÀÚ¿­·Î Ç¥½ÃÇÑ´Ù. <bf>Cls</bf> Ç׸ñ Áß <bf>00(>ifc)</bf>Àº ÀåÄ¡ Ŭ·¡½º »ç¾ç ¿ä±¸°¡ ÀÎÅÍÆäÀ̽º¿Í µ¶¸³ÀûÀÓÀ» ÀǹÌÇϸç ÀÎÅÍÆäÀ̽º µð½ºÅ©¸³ÅÍ´Â ÀåÄ¡ Ŭ·¡½º Á¤º¸¸¦ Æ÷ÇÔÇϰí ÀÖ¾î¾ß ÇÑ´Ù. <bf>Sub</bf>´Â ÀåÄ¡°¡ ¼ö¿ëÇÏ´Â ¼­ºê Ŭ·¡½º(<bf>Cls</bf> Ç׸ñ ¾È¿¡¼­)¸¦ Ç¥½ÃÇÑ´Ù. <bf>MxPS</bf>´Â ¿£µåÆ÷ÀÎÆ®(Endpoint) 0À¸·ÎºÎÅÍÀÇ ÆÐŶÀÇ ÃÖ´ë Å©±â¸¦ Ç¥½ÃÇÑ´Ù. <bf>Cfgs</bf>´Â ÀåÄ¡ÀÇ ¼³Á¤ °³¼ö¸¦ Ç¥½ÃÇÑ´Ù.

<p>
<item><bf>D:</bf>¿Í À¯»çÇÏ°Ô <bf>P:</bf>·Î ½ÃÀÛÇÏ´Â ÇàÀº ÀåÄ¡ µð½ºÅ©¸³ÅÍÀÇ Á¤º¸¸¦ Ç¥½ÃÇÏÁö¸¸ ÇÑ ÁÙ¿¡ Ç¥½ÃÇÒ ¼ö ¾ø±â ¶§¹®¿¡ ºÐ¸®µÇ¾î ÀÖ´Ù. <bf>Vendor</bf>´Â ÀåÄ¡ÀÇ ÆÇ¸ÅÀÚ °íÀ¯ Äڵ带 Ç¥½ÃÇϸç <bf>ProdID</bf>´Â Á¦Ç° °íÀ¯ Äڵ带 Ç¥½ÃÇÑ´Ù. <bf>Rev</bf>´Â Á¦Ç° °³·® ¹øÈ£ÀÌ´Ù.

<p>
<item>USB »ç¾ç¼­ 9.7.1ÀýÀ» Âü°íÇϸé ÀåÄ¡ µð½ºÅ©¸³ÅÍ¿¡ ´ëÇÑ ´õ ¸¹Àº Á¤º¸¸¦ ¾òÀ» ¼ö ÀÖ´Ù.

<p>
<item><bf>C:</bf>·Î ½ÃÀÛÇÏ´Â ÇàÀº ¼³Á¤ µð½ºÅ©¸³ÅÍÀÇ Á¤º¸ÀÌ´Ù. °¢ ÀåÄ¡ÀÇ <bf>C:</bf>ÇàÀÇ ¹øÈ£´Â <bf>#Cfgs</bf>¿¡ ÀÇÇØ ÇÒ´çµÈ´Ù. ¾Æ½ºÅ׸®Å© ¹®ÀÚ°¡ ºÙÀº Ç׸ñÀº ÇöÀç ¼³Á¤À» ÀǹÌÇÑ´Ù. <bf>#If</bf>´Â ÀåÄ¡ ÀÎÅÍÆäÀ̽º ¼ö¸¦ Ç¥½ÃÇÑ´Ù. <bf>Cfg#</bf>´Â ¾î¶² ¼³Á¤ÀÌ ÇöÀç »ç¿ëµÇ´ÂÁö¸¦ º¸¿©ÁØ´Ù. <bf>Atr</bf>Àº ÀåÄ¡ ¼Ó¼ºÀ» 16Áø¼ö·Î Ç¥½ÃÇÑ °ÍÀÌ´Ù(0x80Àº Àü·ÂÁö¿ø ¹ö½º, 0x40Àº ÀÚü Àü¿ø, 0x20Àº ¿ø°Ý ½Ãµ¿ °¡´É). <bf>MPwr</bf>Àº ÇöÀç ÀåÄ¡ ¼³Á¤¿¡¼­ÀÇ ÃÖ´ë Àü·Â »ç¿ë °ªÀÌ¸ç ¹Ð¸®¾ÏÆä¾î·Î Ç¥½ÃÇÑ´Ù. USB »ç¾ç¼­ 9.7.2ÀýÀ» Âü°íÇÏ¸é ¼³Á¤ µð½ºÅ©¸³ÅÍÀÇ Ãß°¡ Á¤º¸¸¦ ¾òÀ» ¼ö ÀÖ´Ù.

<p>
<item><bf>I:</bf>·Î ½ÃÀÛÇÏ´Â ÇàÀº ÀÎÅÍÆäÀ̽º µð½ºÅ©¸³ÅÍÀÇ Á¤º¸ÀÌ´Ù. °¢ <bf>C:</bf>ÇàÀÇ <bf>I:</bf>Çà ¹øÈ£´Â <bf>#Ifs</bf> Ç׸ñ¿¡ ÀÇÇØ ÇÒ´çµÈ´Ù. <bf>If#</bf>´Â ÇØ´ç ÀåÄ¡ ¼³Á¤¿¡¼­ ¾î´À ÀÎÅÍÆäÀ̽º°¡ »ç¿ëµÇ´ÂÁö¸¦ Ç¥½ÃÇÑ´Ù. <bf>Alt</bf>´Â ÇØ´ç ÀÎÅÍÆäÀ̽º¿¡ ¾î¶² ´ëü ¼³Á¤ÀÌ ¼³Á¤µÇ¾î ÀÖ´ÂÁö¸¦ º¸¿©ÁØ´Ù. <bf>#EPs</bf>´Â ÇØ´ç ¿£µåÆ÷ÀÎÆ®ÀÇ ´ëü ¼³Á¤ °¡¿îµ¥ ¾ó¸¶³ª ¸¹Àº ¿£µåÆ÷ÀÎÆ®°¡ ÀÖ´ÂÁö¸¦ º¸¿©ÁØ´Ù. <bf>Cls</bf>´Â ´ëü ÀÎÅÍÆäÀ̽º ¼³Á¤ÀÌ ¾î´À Ŭ·¡½º¿¡ ÇØ´çµÇ´ÂÁö¸¦ 16Áø¼ö¿Í ¹®ÀÚ¿­·Î ³ªÅ¸³½´Ù. <bf>Sub</bf>´Â ÀÎÅÍÆäÀ̽ºÀÇ ´ëü ¼³Á¤ÀÌ ¾î´À ÇÏÀ§ Ŭ·¡½º¿¡ ÇØ´çµÇ´ÂÁö¸¦ ³ªÅ¸³½´Ù. <bf>Prot</bf>´Â ´ëü ÀÎÅÍÆäÀ̽º°¡ ¾î¶² ÀÎÅÍÆäÀ̽º ÇÁ·ÎÅäÄÝ(Ŭ·¡½º¿Í ÇÏÀ§Å¬·¡½º ÁýÇÕ °¡¿îµ¥¿¡¼­)¿¡ ÀûÇÕÇÑÁö¸¦ º¸¿©ÁØ´Ù. USB »ç¾ç¼­ 9.7.3ÀýÀ» Âü°íÇ϶ó.

<p>
<item><bf>F:</bf>·Î ½ÃÀÛÇÏ´Â ÇàÀº ÀÎÅÍÆäÀ̽º µð½ºÅ©¸³ÅÍÀÇ Á¤º¸ÀÌ´Ù. °¢°¢ÀÇ <bf>I:</bf> Çà¿¡¼­ÀÇ <bf>E:</bf>Çà ¹øÈ£´Â <bf>#EPs</bf> Ç׸ñ¿¡¼­ ÁÖ¾îÁø´Ù. ¿£µåÆ÷ÀÎÆ® 0Àº Ç¥½ÃµÇÁö ¾Ê´Â´Ù. <bf>Ad</bf>´Â ¿£µåÆ÷ÀÎÆ® ÁÖ¼Ò¸¦ ³ªÅ¸³»¸ç ¿£µåÆ÷ÀÎÆ®°¡ ÀÔ·Â/Ãâ·Â °¡¿îµ¥ ¾î´À °ÍÀÎÁö¸¦ ³ªÅ¸³»´Â ¹®ÀÚ¸¦ Æ÷ÇÔÇϰí ÀÖ´Ù. <bf>Atr</bf>Àº ¿£µåÆ÷ÀÎÆ®¿¡ »ç¿ëµÇ´Â ¼Ó¼º(Àü¼Û ŸÀÔ)À» ³ªÅ¸³»¸ç Àü¼ÛŸÀÔÀ» ¼³¸íÇÏ´Â ¹®ÀÚ¿­ÀÌ µÚ¿¡ ³ª¿Â´Ù. <bf>MxPS</bf>´Â ÇØ´ç ¿£µåÆ÷ÀÎÆ®°¡ ÀûÀýÈ÷ ¼Û¼ö½ÅÇÒ ¼ö ÀÖ´Â ÃÖ´ë ÆÐŶÀÇ Å©±â¸¦ ³ªÅ¸³½´Ù. µî½Ã Àü¼Û(isochronous transfer)ÀÇ °æ¿ì <bf>MxPS</bf>´Â ¿ä±¸µÇ´Â ´ë¿ªÆøÀÇ Å©±â¸¦ ³ªÅ¸³½´Ù. <bf>Ivl</bf>Àº ¿£µåÆ÷ÀÎÆ® ÀÎÅÍ·´Æ® È£ÃâÀÇ °£°ÝÀ» ¹Ð¸®ÃÊ ´ÜÀ§·Î ³ªÅ¸³½´Ù. <bf>Ivl</bf>Àº ¹úÅ©¿Í Á¦¾î Àü¼Û(bulk and control transfers)¿¡¼­´Â ¹«½ÃµÇ¸ç µî½ÃÀü¼Û¿¡¼­´Â 1·Î ¼³Á¤µÈ´Ù. ¿£µåÆ÷ÀÎÆ® µð½ºÅ©¸³ÅÍ¿¡ °üÇÑ ÀÚ¼¼ÇÑ °ÍÀº USB »ç¾ç¼­ 9.7.4ÀýÀ» º¸¶ó.
</itemize>

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


<sect>ÀÚÁÖ Áú¹® ¹Þ´Â °Íµé(FAQs)
<p>
ÀÌÀåÀº ¹Ýº¹µÇ´Â Áú¹®µé¿¡ ´ëÇÑ ´äº¯ÀÌ´Ù.

<p>
<bf/µå¶óÀ̹ö¸¦ ¸¸µé·Á¸é ¾î¶»°Ô ÇØ¾ßÇϳª¿ä/

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

<p>
<bf/USB¿¡ °üÇÑ ÁÁÀº Ã¥ÀÌ ÀÖ´Ù¸é/

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

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

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

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

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

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

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

<p>
<bf/USB-HOWTO ¹®¼­ÀÇ ÃֽůÇÀº ¾îµð¼­ ±¸Çϳª¿ä/

<p>
¿©±é´Ï´Ù <url url="http://www.dynamine.net/linux-usb/HOWTO" name="http://www.dynamine.net/linux-usb/HOWTO">.


<sect>Á¤Á¤
<p>
ÀÌ ¹®¼­¿¡ °üÇØ¼­ ¾ê±âÇÒ °ÍÀÌ ÀÖÀ¸¸é µÇµµ·ÏÀ̸é <htmlurl url="mailto:brad.hards@dao.defence.gov.au" name="brad.hards@dao.defence.gov.au">·Î ¸ÞÀÏÀ» º¸³»´Â °ÍÀÌ ÁÁ´Ù. º¸³¾ ¶§´Â ¹öÀü ¹øÈ£ ($Revision: 1.2 $)¸¦ ¸í½ÃÇϵµ·Ï ÇÑ´Ù.
<!-- ²ôÆ®! -->

</article> 


ID
Password
Join
Your mode of life will be changed for the better because of good news soon.


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.0201 sec