ÃֽŠ¹öÀüÀÇ Ä¿³ÎÀÌ ÀÖ¾î¾ß ÇÑ´Ù. ¹öÀü 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 ±â´ÉÀ» ²¨µÐ °æ¿ì, Ä¿³ÎÀÇ À߸øµÈ ¼³Á¤À̳ª ¼³Ä¡ ¶§¹®ÀÏ °ÍÀÌ´Ù.