The Linux Serial HOWTO David S.Lawyer dave@lafn.org original by Greg Hankins v2.07 May 2000 The Linux Japanese FAQ Project v2.07j, May 2000 ±Ì¶ÍAVA|[gÌ@\̤¿AModem-HOWTO, PPP-HOWTO, Serial-Programming-HOWTO, Text-Terminal-HOWTO ŵíêĢȢÍÍðà ¾µÜ·B}`|[gVAJ[hÉÖ·éîñàÐîµÜ·BVA |[gÉֵļ̶æèÚµ¢Ä éÌÅAâèªVA|[g» ÌàÌÉ éêÍA±êðÇÞ̪êÔŵå¤BfAPPP (dbñü ÅC^[lbgÉANZX·é½ßÉg¢Ü·)AeLXg[ðµÁÄ¢ éêÉÍA»ê¼êÉηé HOWTO ¶ðæɲ¾³¢B ______________________________________________________________________ Ú 1. ͶßÉ 1.1 ì AÆÓANWbg 1.1.1 ì 1.1.2 ÆÓ 1.1.3 ¤W 1.1.4 NWbg 1.2 [Xm[g 1.3 ±Ì HOWTO ÌÅVÅÉ墀 1.4 VA|[gÖAÌ¼Ì HOWTO ¶ 1.5 tB[hobN 1.6 VA|[gÆͽ©? 2. n[hEFAÉæéoCgf[^Ì]Ìdû 2.1 M 2.2 óM 2.3 VA|[gÌå«Èobt@ 3. VA|[gÌîb 3.1 VA|[gÆͽ©? 3.1.1 VAüå 3.1.2 sÆzü 3.1.3 RS-232 â EIA-232 3.2 I/O AhXÆ IRQ 3.3 ¼O: ttyS0, ttyS1 3.4 èÝ 3.5 f[^t[ (¬x) 3.6 t[§ä 3.6.1 t[§äÌá 3.6.2 t[§äªÈ¢ÌÇó 3.6.3 n[hEFAt[§äÎ\tgEFAt[§ä 3.7 f[^t[ÌpXÆobt@ 3.8 ¡GÈt[§äÌá 3.9 VAì\tgEFA: foCXhCoW [ 4. VA|[gÍãxêÈÌ©? 4.1 ͶßÉ 4.2 á¬Å£àZ¢ EIA-232 P[u 4.3 Rs [^ÖÌC^tF[XÌñø¦³ 5. }`|[gVA{[h/J[h/A_v^ 5.1 }`|[gVAüå 5.2 /dev fBNgÅÌufoCXvÌì¬ 5.3 PC WÌVAJ[h 5.4 _}`|[gVA{[h (WÌ UART `bvªÚÁÄ¢éàÌ) 5.5 CeWFg}`|[gVA{[h 5.6 ¢ÎÌ}`|[g{[h 6. VA|[gÌÝè 6.1 PCI oXÖÌÎÍisÅ· 6.2 ÝèÌTv 6.3 áxÝèÉÖ·é èÓê½Ôᢠ6.4 I/O AhXÆ IRQ: N®ÌbZ[W 6.5 VA|[gÌ»ÝÌ I/O AhXÆ IRQ ÌÝèÍ? 6.5.1 foCXhCoÌÝèÍ? 6.5.2 VA|[gÌn[hEFAÌÝèÍ? 6.5.3 PnP VA|[gÌn[hEFAÌÝèÍ? 6.6 VAÌ IRQ ÌIð 6.6.1 IRQ 0 Í IRQ ÅÍÈ¢ 6.6.2 èÝ̤LÆo[W 2.2 È~ÌJ[l 6.6.3 ÇÌ IRQ ðIÔ©? 6.7 AhXÌIð --ttyS3 ÆÕË·érfIJ[h 6.8 I/O AhXÆ IRQ Ìn[hEFAÖÌÝè (åÉ PnP ü¯) 6.8.1 PnP BIOS ðgÁ½ I/O AhXÆ IRQ ÌÝè 6.9 IRQ Æ I/O AhXð setserial É^¦é 6.10 xÌÝè: stty ÈÇ 6.10.1 t[§äÌÝè: n[hEFAt[§äªxXgÅ· 7. VA|[gfoCX: /dev/ttyS2 7.1 VA|[gfoCX̼OÆÔ 7.2 ttySN ©ç /dev/modem ÉNð£é׫©Ç¤© 7.3 }`|[g{[hÉÖ·éÓ 7.4 /dev fBNgɨ¯éfoCXÌì¬û@ 8. mÁĨÆæ¢ÖÈvO 8.1 VA|[gÌÄ/ffpÌvO 8.2 èÝÌDæxÌÏX 8.3 setserial Æͽ©? 8.3.1 ͶßÉ 8.3.2 T¸ 8.3.3 N®ÌÝè 8.3.4 ÝèXNvg/t@C 8.3.5 XNvgÌÒW (o[W 2.15 È~ÅͽÔñg¢Ü¹ñ) 8.3.6 /etc/serial.conf ðp¢éVµ¢Ýèû@ 8.3.7 IRQ 8.4 stty 8.4.1 ͶßÉ 8.4.2 uÊÌv[ÉεÄÌ stty Ìgp 8.4.2.1 _CNVðg¤Ã¢û@ 8.4.3 [Ì 2 ÂÌC^tF[X 8.4.4 Ç±É stty R}hðu©? 8.5 isapnp Æͽ©? 9. ¬x (t[[g) 9.1 \ªÉ¬¢¬xªÝèūܹñ 9.1.1 n[hEFAɬxðÝè·éû@: Æ baud_base l 9.1.2 ¬xÝèÉÖ·éâèÌñð 9.1.3 »UíÌügÍ{[[gÅÍ èܹñ 9.2 VAÌX[vbgÌüã 10. bNµÄ¼Åg¦È¢æ¤É·é 10.1 ͶßÉ 10.2 bNt@C 10.3 foCXt@CÌLÒAO[vAp[~bVÌÏX 11. ÊMvOÆ[eBeB 11.1 \tgEFAÌê 11.2 kermit Æ zmodem 12. VAÉÖ·é¿åÁƵ½eNjbNÈÇ 12.1 ChCo 12.2 ×iƵÄmçêÄ¢én[hEFA 12.2.1 ÁèÌrfI{[hÅN±é I/O AhXÌÕËðñð·éû@ 12.2.2 AMD Elan SC400 CPU (PC-on-a-chip) ÅÌâè 13. guV [eBO 13.1 VAÌdCIÈffðs¤¹ï 13.1.1 pRlN^̬¨ 13.1.2 d³Ìªè 13.1.3 d³ð¡íÁÄÝé 13.2 VA|[gÌÄÆff 13.3 ȺÌßÍ Serial-HOWTO Éà Modem-HOWTO Éà èÜ·: 13.4 ¨IÉÍVA|[gª éÌÉAo³êܹñ 13.5 ±ÌãÈx¢: eLXgª·²xêÄäÁèæÊÉ\¦³êÜ· 13.6 Ⱥ©x¢: Æ 2A3 {ͬ¢Í¸ÈÌÅ·ª 13.7 VXeN®ÌæÊÅAVA|[gÌ IRQ ªÔáÁÄ\¦³êÜ· 13.8 "Cannot open /dev/ttyS?: Permission denied" Æ¢¤G[ªoÜ· 13.9 ttyS? É墀 "Operation not supported by device" Æ¢¤G[ªoé 13.10 "Cannot create lockfile. Sorry" (G[bZ[W) 13.11 "Device /dev/ttyS? is locked." (foCX /dev/ttyS? ªbN³êĢܷ) 13.12 "/dev/ttyS?: Device or resource busy" 13.13 guÎ̽ßÌc[ 14. èÝÌâèÉÖ·éÚµ¢à¾ 14.1 èÝÌâèÌíÞ 14.2 èÝÌëÝèâÕËÅN±éÇó 14.3 èÝÌÝè~X 14.4 èÝÌÕË 14.5 èÝÌâèÌð 15. UART Æͽŷ©? «\ÉÇÌæ¤Èe¿ð^¦éÌŵ天? 15.1 UART üå 15.2 2 íÞÌ UART 15.3 FIFO 15.4 UART ÌfÔ 16. szuÆM 16.1 szu 16.2 MÍÜÁ½Ó¡ðÁĢȢ±Æª èÜ· 16.3 VA|[gÔÌP[uÚ± 16.4 RTS/CTS Æ DTR/DSR Ìt[§ä 16.4.1 DTR Æ DSR Ìs 16.5 |[gÌI[vðÖ~·éû@ 17. d³Ìg` 17.1 rbg 1 Âð\·d³ 17.2 oCgf[^ð\·d³V[PX 17.3 peB¸ 17.4 oCgf[^Ì\¬ (t[ª) 17.5 uñ¯úvÊMůúðs¤û@ 18. »Ì¼ÌVAfoCX (ñ¯ú EIA-232 ÈOÌàÌ) 18.1 EIA-232 Ìãp 18.2 EIA-422-A (½t^) Æ EIA-423-A (ñ½t^) 18.3 EIA-485 18.4 EIA-530 18.5 EIA-612/613 18.6 ÄpVAoX (Universal Serial Bus, USB) 18.7 ¯úÊMƯú« 18.7.1 ñ¯úƯúÌè` 18.7.2 ¯úÊM 19. ¼Ìîñ¹ 19.1 Ð 19.2 VA|[gp\tgEFA 19.3 Linux ü¯Ì¶ 19.4 Usenet Ìj [XO[v: 19.5 VA|[gÉÖ·é[OXg 19.6 C^[lbgãÌîñ 20. ú{êóÉ墀 ______________________________________________________________________ 1. ͶßÉ ±Ì¶ÍAVA|[gÆ}`|[gVAJ[hÉ¢ÄÌî{I ÈîñðµÁĢܷBfâeLXg[ÉÅLÌîñÍA Modem-HOWTO Æ Text-Terminal-HOWTO ÉÚ®³¹Üµ½Bgetty (OCðÀs· évO)ÉÖ·éîñà±êçÌ HOWTO ÉÚ®³¹Üµ½BÆ¢¤Ì àAmgetty Æ uugetty ÍfÆgÝí¹Äg¤±Æª½Aagetty Í eLXg[ÆgÝí¹Ägíêé±Æª½¢©çÅ·BfâeLXg [Av^ðµ¤êÉÍA±Ì HOWTO ð²×éKvÍȢŵå¤B µ©µAVA|[gðÊÌfoCXÆgÝí¹Äg¤êA}`|[ gVAJ[hðg¤êAVA|[g»ÌàÌÉÖ·éâèðð· éêAVA|[gÉÖ·éZpIÈîñðÚµmè½¢êÉÍA¼ Ì HOWTO Æ¤É±Ì HOWTO ðQÆ·éKvª é©àµêܹñ (``ÖA· é HOWTO ¶'' ð²¾³¢)B±Ì HOWTO ÉÍeí}`|[gVA J[hÉÖ·éîñðڹĢܷBÆ¢¤ÌàA±êÍfÅàeLX g[Åàgíêé±Æª é©çÅ·B±Ì HOWTO Í Intel x86 A[Le N`Å®ì·é Linux ðÎÛɵĢܷªA¼ÌA[LeN`Åàg ¦é©àµêܹñB 1.1. ì AÆÓANWbg 1.1.1. ì Copyright (c) 1993-1997 by Greg Hankins, 1998-2000 by David S. Lawyer <mailto:dave@lafn.org> Please freely copy and distribute (sell or give away) this document in any format. Forward any corrections and comments to the document maintainer. You may create a derivative work and distribute it provided that you: 1. Send your derivative work (in the most suitable format such as sgml) to the LDP (Linux Documentation Project) or the like for posting on the Internet. If not the LDP, then let the LDP know where it is available. Except for a translation, send a copy to the previous maintainer's url as shown in the latest version. 2. License the derivative work in the spirit of this license or use GPL. Include a copyright notice and at least a pointer to the license used. 3. Give due credit to previous authors and major contributors. If you're considering making a derived work other than a translation, it's requested that you discuss your plans with the current maintainer. 1.1.2. ÆÓ While I haven't intentionally tried to mislead you, there are likely a number of errors in this document. Please let me know about them. Since this is free documentation, it should be obvious that I cannot be held legally responsible for any errors. 1.1.3. ¤W Any brand names (starts with a capital letter) should be assumed to be a trademark). Such trademarks belong to their respective owners. 1.1.4. NWbg IWiÌ Serial-HOWTO ÌåªÍ Greg Hankins ³ñ gregh@cc.gatech.edu ª«Üµ½B Greg ³ñÍܽA¼Ìûªñµ½¶ ÍÌ«¼µð¶Ìâ¶Í̬êÌqªèðÛ½ßÉsÁĢܷBÞH uv£µÄê½ûXAÓ©ð¾³Á½ûXÌSÄɴӵܷB»ê¼ê ̼Oð°éÆ·Èè·¬éÌÅȪµÜ·(100 lð´¦Ä¢Ü·)BV AhCoÉ¢ÄÌ¿âɦľ³Á½ Ted Ts'o ÉÍÁÉ´Óµ Ü·vÆ¢¤±ÆÅ·Bo[W 2.00 ̤¿ñ¼ªÍ Greg Hankins ³ñ Ì HOWTO Ìàeðø«p¬AcèÌªÍ David Lawyer ªV½É«Üµ ½BTed Ts'o à¦Íð±¯ÄêĢܷB 1.2. [Xm[g 2.00 ÍÍåÈüùÅ èAâ Serial-HOWTO É Á½[ÆfÉÖ ·éîñÍÈÈèܵ½B±êçÌîñÍȺ̶ÉÚ®µÄ¢Ü·: o Text-Terminal-HOWTO o Modem-HOWTO 2.01: Modem-HOWTO ÈÇ©çvO&vCÉÖ·éîñðÇÁµÜµ½B setserial Æ stty ÌîñðXVµÜµ½BMÒÍ}`|[gJ[hÉÖ· éSÄÌîñªÅV©Ç¤©ðܾ`FbNµÄ¢Ü¹ñB±Ì HOWTO ¶ ÍFXÈîñ¹©çÌîñðWßÄìÁ½Æ¢¤«¿ãAê«É¯Ä¢é ªª èÜ·B±Ì_Í«o·o[WÅüP·é©àµêܹñB 1.3. ±Ì HOWTO ÌÅVÅÉ墀 Serial-HOWTO ÌÅVÅÍ LDP Æ»Ì~[TCgÅ{EüèÅ«Ü·B~ [TCgÌXgÍ <http://metalab.unc.edu/LDP/mirrors.html> É è Ü·B¶ÍFXÈ`®ÅüèÅ«Ü·BÅVÅÌútðmFµ½¢¾¯Èç <http://metalab.unc.edu/LDP/HOWTO/Serial-HOWTO.html> ð©ÄA»ÝÌo [W(v2.07, May 2000)Æä׾³¢B±Ìo[WÌVµ¢_ ÍAbLOÌû@AUART vgRÉÖ·éîñÌ®AXeBbL[ peBÉ¢ÄÅ·B 1.4. VA|[gÖAÌ¼Ì HOWTO ¶ fAeLXg[AêÌv^â¼ÌüÓ@í͵εÎVA| [gðg¢Ü·BæÉྵ½~[TCg̤¿AÅàߢTCg©çȺ Ì HOWTO ðüèµÄ¾³¢B o Modem-HOWTO fÌCXg[ÆÝèÉ墀 o Printing-HOWTO VAv^ÌgpÉÖ·éîñ o Serial-Programming-HOWTO VA|[gÌÇÝ«âóÔÌmF/Ýè ðs¤ C ¾êÌvO(ܽͻÌê)ð½ßÌQlîñÅ·B ष®Vµ¢o[WªoÜ·B o Text-Terminal-HOWTO eLXg[Ì®ìACXg[EÝèECÌ û@É墀 1.5. tB[hobN ¿âAÓ©AñÄAÇÁÌîñÍMÒÉÁľ³¢BMÒÍAÇÒÌF³ ñª±Ì HOWTO É¢ÄǤvÁÄ¢é©ðåÏmè½¢ÆvÁĢܷB MÒÍüP_ðíÉTµÄ¢Ü·! ðÅ«È©Á½Æ±ëâAÍÁ«èµÈ ¢ªÍ¿áñÆMÒɳ¦Ä¾³¢BMÒÉA·éÉÍ (David Lawyer) ÜÅ[ðÁľ³¢B 1.6. VA|[gÆͽ©? (Vµ¢ USB |[gâ HSSI |[gÅÈ¢)]ÌVA|[gÍAñíÉ Ã¢ I/O |[gÅ·BVA|[gÍÙÆñÇSÄÌ PC Ét¢Ä¢Ü ·BÅ·ª 1998 N¼ÎÈ~Ì Macintosh (Ft«ÌP[XÌàÌ)ÉÍ USB |[gµ©Â¢Ä¢Ü¹ñBÅàêÊIÈKiÍ RS-232 (EIA-232 ÆàÄÎ êÜ·)Å·BVA|[gÌRlN^ÍAPC Ì É9 sÌRlN^(25 sÌêà èÜ·)ª 1 ÂÜ½Í 2 Ât¢Ä¢é`Åæ©çêÜ·B µ©µAVA|[gͻ꾯ÌàÌÅÍ èܹñBVA|[gÉ ÍAEIA-232 KiÉ·éM𶬵ȯêÎÈçÈ¢ÖAdqZpàÜ ÜêÜ·B``d³Ìg`'' ÌÍð©Ä¾³¢B ésÍf[^ÌoCg ñðé½ßÉg¢AÊÌsÍoCgñðó¯æé½ßÉg¢Ü·BMª ¤ÊÉg¤Únd³Ìsà èÜ·B¼ÌuÖÈvsÍåÉAuItv ð\·Ìèíd³ÆuIvð\·³Ìèíd³ðgÁÄMð\·½ßÉ g¢Ü·B UART (Universal Asynchronous Receiver-Transmitter) `bvªÙÆñÇÌ ðs¢Ü·BÅßÍÊA±Ì`bvÌ@\ÍÊÌ`bvÉgÝÜêÄ ¢Ü·Bu``UART Æͽŷ©?''vðQƵľ³¢BUART ÍÔªo ÂÉÂêüdzêĨèA»ÝÍâf(NOÌf)ÍãxêÉ ÈÁĢܷB VA|[gͳXÍfðÚ±·é½ßÉÝv³ê½ÌÅ·ªA}EX âeLXg[A éíÌv^ÌFXÈfoCXðRs [^ÉÚ± ·é½ßÉàgíêĢܷB±êçÌfoCXÍAKØÈP[uðgÁÄ VA|[gÉq®¾¯Å·Bà f̽ÍgÝÝÌVA|[ gðÁÄ¢éÌÅAà fð PC ÉÇÁ·éÆAÊÌVA|[gª PC ÉÁíÁ½æ¤É©¦Ü·B 2. n[hEFAÉæéoCgf[^Ì]Ìdû ȺͱÌbèÉ¢ÄÌüåIÈðàÅ·ªAàÁÆiñ¾àeÉ¢ÄÍ ``FIFO'' ð©Ä¾³¢B 2.1. M M(transmitting)ÆÍAVA|[gðʶÄRs [^©çoCgñ ðé±ÆÅ·BêUAMððÅ«êÎAóMͯ¶æ¤ÈàÌÈÌÅ ð·éÌÍeÕÅ·B±±ÅÅɦ·áÍÉ[ÉȪ»µ½àÌÅ·BàÁ ÆÚµ¢à¾ðãÅÇÁµÜ·BRs [^ª(OP[uÉqªÁÄ¢ é)VA|[g©ç 1 oCgÌf[^ðë¤Æ·éACPU ÍRs [^àÌoXãÉ é»Ìf[^ðVA|[gÌ I/O AhXÉè Ü·BVA|[gÍ»Ìf[^ðó¯æèAVAP[uÌ[qÌ MsðgÁıêð 1 rbg¸ÂèÜ·(VArbgXg[)B érbg(ÆoCg)ªdCIÉÍǤ©¦éÌ©É¢ÄÍA``d³Ìg `''ÌÍð²¾³¢B ãLÌà¾ðवڵµÄ(ܾ®SÉÍö¢àÌÅ·ª)Jè﵆ ·BVA|[gÅsíêéÌÙÆñÇÍ UART (ܽͯÌàÌ)ª s¢Ü·B1 oCgÌf[^ð]·é½ßÉAVAfoCXhCov O(CPU ãÅ®ì)ÍVA|[gÌ I/O AhXÉ 1 oCgðè Ü·B±Ìf[^ÍVA|[gÌuMVtgWX^v(嫳ª 1 o Cg)ÉüèÜ·B±ÌVtgWX^ÅÍA±ÌoCgf[^©ç 1 rbg ¸Âæèo³êA1 rbg¸ÂVAüÉçêÜ·B»µÄÅãÌrbg ªM³êAVtgWX^ªé½ßÌÊÌoCgðKvÆ·éæ¤ÉÈé ÆAUART ÍÊÌoCgf[^ðéæ¤ CPU Éß龯ÅÏÝÜ·B±ê ÈçPÈbÅ·ªACPU ªoCgf[^ð¦ÀÉæ¾·é±ÆªÅ«È¢½ ßÉxª¶¶é©àµêܹñBÈɵë CPU ÍVA|[gÌÈ OÉàìÆð±ÈµÄ¢é̪ÊÅ·B ±Ìæ¤ÈxðÈ·û@ÍAVtgWX^ªoCgf[^ðKvÆ·é OÉ CPU ªoCgf[^ðæ¾µÄA±êðVA|[gÌ(n[hEF A) obt@Éi[·é±ÆÅ·B±¤µÄ¨¯ÎAVtgWX^ªoCg f[^ðèoµÄµÜÁÄÉéoCgf[^ª¦ÀÉKvÉÈÁ½É ÍAVA|[gÌn[hEFAÍ©ªÌobt@ÉüÁÄ¢éÌoCg f[^ðVtgWX^É]·é¾¯Å·BVµ¢oCgf[^ðæ¾·é ½ßÉ CPU ðÄÔKvÍ èܹñB VA|[gÌobt@ÌTCYͳX 1 oCgµ© èܹñŵ½ ªA»ÝÍÊ 16 oCgÅ·(¿ÈVA|[gÉÍàÁÆ èÜ·)B µ©µ»êÅàAVtgWX^ª]·éf[^ðKvƵ½ÉK¸ob t@Éf[^ª éæ¤ÉA±Ìobt@É\ªÈoCgf[^ð^¦±¯é Æ¢¤âèªcÁĢܷ(éf[^ªà¤cÁĢȢêÍ«Ü·)B ±êÍèÝðgÁÄ CPU ÆA·é±ÆÅs¢Ü·B ܸÍobt@ª 1 oCgÌâû®ÌVA|[gÉ¢Äà¾µÜ ·BÆ¢¤ÌàAobt@ª 16 oCgÌàÌ௶æ¤É®ì·é©çÅ ·( ½¾µ®ìÍæè¡GÅ·)BVtgWX^ªoCgf[^ðobt@ ©çæèoµAobt@ª¼ÌoCgf[^ðKvÆ·éÆARs [^Ì oXãÉ éêpÌzüÌd³ðã°é±ÆÉæèACPU Éèݪçê Ü·BCPU ªñíÉdvÈðµÄ¢È¯êÎACPU ªÀsÌÍè ÝÉæè§IÉf³êAVA|[gÌobt@ÉÊÌoCgf[^ ð^¦é½ßÌvOªÀs³êÜ·B±Ìobt@ÌÚIÍAVA |[gÌP[u©çèo³êéoCgf[^ªrØêÈ¢æ¤ÉAÇÁÌ oCgf[^ª(çêéÌðÒÁÄ)n[hEFAàÌL [ÉüÁ½óÔð Û±ÆÅ·B ¢Á½ñ CPU Éèݪ©©éÆACPU ÍNªèÝ𩯽©ðmè Ü·BȺÈçAeVA|[gÉ¢ÄêpÌèÝüª é©çÅ ·(½¾µèÝ̤LðµÄ¢È¢ê)B»ê©ç CPU ÍVAfo CXhCoð®ì³¹Ü·BhCoÍ I/O AhXÉ éWX^ð `FbNµA½ªN«½Ì©ð²×Ü·B»µÄAVA|[gÌMob t@ªóÉÈèAÇÁÌoCgf[^ðÒÁÄ¢é±ÆðmèÜ·Bµ½ªÁ ÄAé׫oCgf[^ªàÁÆ êÎACPU ÍÌoCgf[^ðVA |[gÌ I/O AhXÉèÜ·B±ÌoCgÍAOÌoCgªÜ¾M VtgWX^àÉ èA1 rbg¸ÂçêÄ¢éÔÉÍ©ÈÄÍÈèÜ ¹ñB K·éÆA1 oCgªVA|[gÌMüÖ®SÉèo³êéÆAV tgWX^ÍóÉÈèAÈºÌ 3 ÂÌ®ìªÙÆñǯÉN±èÜ·: 1. ÌoCgªMobt@©çMVtgWX^ÉüêçêÜ·B 2. ±ÌVµ¢oCgÌ(1 rbg¸ÂÌ)MªnÜèÜ·B 3. Ìèݪs³êA½Á½¡AóÉÈÁ½Mobt@ÖÌoC gðéæ¤AfoCXhCoÉw¦µÜ·B ±Ìæ¤ÉAVA|[gÍèÝì®(interrupt driven)Å éƾ¦ Ü·BVA|[gªèÝðs·éxÉACPU ÍÌoCgðèÜ ·B CPU ª 1 oCgðMobt@ÉéÆAÌèÝðó¯æéÜ ÅACPU ͼÌð©RÉs¤±ÆªÅ«Ü·BVA|[gÍ[ U( é¢ÍAvP[VvO)ªIðµ½Åè̬xÅrbgñð MµÜ·B±Ì¬xÍ{[[gÆÄÎêé±Æà èÜ·BVA|[ gÍoCg²ÆÉÇÁÌrbg(X^[grbgAXgbvrbgAêÉ æÁÄÍpeBrbgà)àt¯Á¦éÌÅA½ÌêA1 oCg²ÆÉ 10 rbgÌf[^ªçêÜ·Bµ½ªÁÄAÊM[g(¬xÆà¾íêÜ ·) 19,200 rbg/b(bps, bit per second)Í 1,920 oCg/b(1,920 è Ý/b)Æ¢¤±ÆÉÈèÜ·B ±ÌðSÄs¤±ÆÍ CPU ÉÆÁÄàd¢SÅ·B±êÍFXÈR ©ç¾¦Ü·BܸÍA32 rbg(64 rbg̱ƾÁÄ èÜ·)ÌoXã ÅêñÉ 1 oCg(8 rbg)Ìf[^µ©çÈ¢ÌÅAoXð ÜèL øÉgÁÄ¢éÆ;¦Ü¹ñBܽAèÝðéxÉå«ÈI[o[ wbhª¶¶Ü·BèÝðó¯æÁ½êÅàAfoCXhCoɪ© é±Æͽ©ªVA|[gÅèÝðN±µ½±Æ¾¯Å èA¶ª ç꽱ƪRÅ é±ÆÜÅͪ©èܹñB½ªN±Á½©ð²×é ÉÍAfoCXhCoÍFXÈ`FbNðsíȯêÎÈèܹñB¯¶ èݪN±ÁÄàA¶ðó¯æÁ½Ì©àµêܹñµA§äüÌóÔª Ï»µ½Ì©àµêܹñB dvÈðû@ÌêÂÍAVA|[gÌobt@Ì嫳ð 1 oCg© ç 16 oCgÉâ·±Æŵ½BÂÜèACPU ÍèÝðó¯æéÆAV A|[gÉ 16 oCgÜÅÌf[^ðV½Éé±ÆªÅ«Ü·B±êÉ æèèÝÌs͸èÜ·ªA¾¢oXÉà©©íç¸ 1 oCg¸Âµ ©f[^ðêÈ¢âèÍ»ÌÜÜÅ·B16 oCgÌobt@ÍÀÛÉÍ FIFO (First In First Out, æüêæoµ)ÌL [Å èAæ FIFO ÆÄ ÎêÜ·B FIFO ÌÚ×É¢ÄÍ ``FIFO'' ð²¾³¢B±êÜÅÌà ¾àêJè﵀ èÜ·B 2.2. óM VA|[gÉæéoCgñÌóMÍMÆÙÚ¯¶ÅAûüªtÉÈÁÄ ¢é¾¯Å·BóMàèÝì®Å·BóMobt@ð 1 oCgµ©½ Ȣâ^ÌVA|[gÅÍAOP[u©ç 1 oCgÌf[^SÌ ðó¯æéÆA±Ìf[^Í(嫳ª 1 oCgÅ é)óMobt@Éüè Ü·B·éÆVA|[gÍ CPU ÉèÝð©¯Ä»Ìf[^ðæè ܹA»ÝóMÌÌf[^ði[Å«éêªóæ¤ÉµÜ·B16 o CgÌobt@ðÁÄ¢éVµ¢VA|[gÌêÍA±Ì(oCgf [^ðæ¾·é½ßÌ) èÝÍobt@É 14 oCgÌf[^ª~ϵ½ _Ås³êÜ·B·éÆ CPU Í»ÝÌðêU~ßA14 ©ç 16 oC gÌf[^ðVA|[g©çæèoµÜ·B14 ÔÚÌoCgªó¯æç ê½Éçê½èÝÉεA±êªN«Ä©ç³çÉ 2 ÂÌoCgf [^ªÍÆAó¯æé׫oCgÌÂÍ 16 oCgÉÈé©àµêܹ ñBµ©µ(2 oCgÅÍÈ) 3 oCg͢ĵܤÆA16 oCgÌob t@ÍìêĵܢܷB 14 oCg¢Ìf[^ðæèÞ±ÆàA»Ìæ ¤ÉÝè·é±Æâ^CAEgÉæèÅ«Ü·BÚµÍ ``FIFO'' ð©Ä ¾³¢B 2.3. VA|[gÌå«Èobt@ ¡ÜÅÍVA|[gªÁÄ¢é 16 oCg̬³¢n[hEFAob t@É¢Äྵܵ½ªACÉÍàÁÆå«Èobt@à è Ü·BCPU ͢©ÌoCgf[^ðn[hEFAÌóMobt@©çæè ÞÆA±êçÌf[^ðC̸ÁÆå«È(á¦Î 8K oCg Ì)obt@ÉüêÜ·Bµ½ªÁÄAVA|[g©çf[^ðó¯æé vOÍA±Ìå«Èobt@©ç (vOÅ "read" ¶ðp¢ Ä)f[^ðæèoµÜ·BM·éf[^É¢Ä௶±Æª¾¦Ü ·BCPU ªf[^ð¢ç©éKvª éêA CPU ÍCÉ éå«¢(8K oCgÌ)Mobt@©çf[^ðæèoµAn[hEFAª  16 oCg̬³ÈMobt@ÉüêÜ·B 3. VA|[gÌîb VA|[gðg¤¾¯Èçîbðð·éKvÍ èܹñªAîbð ðµÄ¨¯ÎAâèªN«½ÛÉ´öðÁè·éðɧ©àµêܹñB± ÌÍÍVµ¢bèÉ¢Äq×龯ÅÈAOÌÍ(``n[hEFAÉæé oCgf[^Ì]Ìdû'' ÌàeÌêàJèԵܷB½¾µA±¿ç ÌÍÅ͸ÁÆÚµ¢à¾ðs¢Ü·B 3.1. VA|[gÆͽ©? 3.1.1. VAüå VA|[gÍ I/O (üoÍ)foCXÅ·B I/O foCXÍRs [^Éf[^ðoµüê·é½ßÌû@Å·BI/O f oCXÉÍVA|[gâp|[gAfBXNhCuRg[ AC[Tlbg{[hAÄpVAoX̽³ñÌíÞª èÜ·B ÙÆñÇÌ PC ÉÍVA|[gª 1 © 2  èÜ·Be|[gÍR s [^Ì ¤É 9 s(25 s̱Æà èÜ·)ÌRlN^ðÁÄ¢Ü ·BRs [^ÌvOÍMs(oÍ)Éf[^(oCgñ)ðé± ÆªÅ«Ü·µAóMs(üÍ)©çf[^ðó¯æé±ÆàÅ«Ü·B¼Ì sÍt[§äÆÚn̽ßÉg¢Ü·B VA|[gÍPÈéRlN^ÅÍ èܹñBVA|[gÍÀñ(p )Ìf[^ð¼ñ(VA)ÉÏ·µAf[^ÌdCIÈ\»ðÏ¦Ü ·BRs [^àÅÍAf[^ð\·rbgQÍÀñɬêÜ·(¯É ½Ìzüðp¢Ü·)Bf[^ð¼ñɬ·ÆÍA1 {Ìzü(VARl N^ÌMsâóMs)ÉrbgÌXg[𬷱ÆÅ·BVA |[gÅͱÌæ¤Éf[^𬷽ßAVA|[gÍMsãÅf [^ðÀñ(Rs [^àÌ`®)©ç¼ñÉϷūȯêÎÈèܹ ñ(»ÌtÌÏ·àKvÅ·)B VA|[gÌdqñHÌÙÆñÇÍAUART ÆÄÎêé`bv( é¢Í `bvÌê)Å·BUART ÌÚ×É¢ÄÍA``UART ÁÄ ½Å·©? «\É ÇñÈe¿ð^¦Ü·©?''ÌÍð©Ä¾³¢Bµ©µAܸͱÌÍ©ç ÇÞÆæ¢Åµå¤BSÌɨ¯é UART ÌÊu着©é©çÅ·B 3.1.2. sÆzü â PC ÅÍ 25 sÌRlN^ªgíêĢܵ½ªA±Ì¤¿ÀÛÉgí êÄ¢½ÌÍ 9 {Ìs¾¯Å·Bµ½ªÁÄA»ÝÅÍÙÆñÇÌRlN ^Í 9 sÅ·B9 {ÌsÍÊA»ê¼êzüÉqªÁĢܷBf[ ^ÌMÆóMpÉgíêé 2 {Ìü̼ÉAMÌÚnpÉ 1 {Ìs (zü)ªgíêÜ·BezüÌd³ÍA±ÌÚnd³ÉεÄvª³êÜ ·B±Ìæ¤ÉAoûüÌf[^ÌM̽ßÉg¤züÌÅ¬Í 3 {Å ·B½¾µAMÚnüªÈÄà®ì·é±ÆªmçêÄܷ͢ªA±Ì êÉÍ«\ª¿½èAG[ªN«½èµÜ·B ¼ÉààÁÆzüª èÜ·ªA±êçͧä̽ß(M)Égíêé¾ ¯Å èAf[^ÌMÉÍgíêܹñBSÄÌMð 1 {ÌüŤL· é±ÆàÅ«Ü·ªAVA|[gÍ»¤ÈÁĨç¸AMÌíÞ²ÆÉ ÊXÌêpüªpÓ³êĢܷB±êç̧äpzüÌê( é¢ÍS )Íuf§äü(modem control line)vÆÄÎêÜ·Bf§äüÌ óÔÍA +12 V ÌLø(on)óÔ©A-12 V ̳ø(off)óÔÌÇ¿ç©Å·B ±êçÌf§äüÌ 1 ÂÍARs [^ÉMðÁÄVA|[ gÖÌf[^Mð~ß³¹é½ßÌàÌÅ·B±êÆÍtÅAVA|[ gÉÚ±³ê½foCXÖMðèARs [^ÖÌf[^Mð~ß³ ¹é½ßÌÚ±üà èÜ·BܽAÚ±³êÄ¢éfoCXªfÌê ÉÍAfÉdbðØéæ¤Éw¦µ½èAÚ±ªm§µÄ¢é±Æâdb ªÂÁÄ¢é(N©ªdbð©¯Ä«Ä¢é)±ÆðRs [^ɳ¦½è· é½ßÌüà èÜ·BÚµÍ ``szuÆM'' ÌÍð²¾³¢B 3.1.3. RS-232 â EIA-232 (USB ÅÍÈ¢)VA|[gÌKiÍÊ RS-232-C, EIA-232-D, EIA-232-E Ì¢¸ê©Å·B±Ì 3 ÂÍÙÆñǯ¶àÌÅ·BàÆàƪ Ét¢Ä¢½ RS(Recommended Standard)ª EIA (Electronics Industries Association)ÆÈèAEIA Æ TIA (Telecommunications Industries Association) ª¹µ½ãÉ EIA/TIA ÆÈèܵ½BEIA-232 ÌdlÉͯ úÊMà©êĢܵ½ªA¯úÉηé½ßÌn[hEFAÍ PC ÉÍ ÙÆñÇ¢ĢܹñB RS Æ¢¤ÄÌ©ÌÍßÌàÌÆÈèܵ½ªA ¡ÅàLgíêĢܷB{ HOWTO ¶ÅÍ EIA Æ¢¤\Lðg¢Ü· ªA¶ÉæÁÄÍ®SÈ\LÅ é EIA/TIAðgÁÄ¢éàÌà èÜ·B ±êÈOÌ(EIA-232 ÈOÌ)VA|[gÉ¢ÄÍA ``¼ÌVAf oCX (ñ¯ú EIA-232 ÅÈ¢àÌ)'' ÌÍð²¾³¢B 3.2. I/O AhXÆ IRQ Rs [^Í»ê¼êÌVA|[gÆÊM·éKvª éÌÅA OS Í »ê¼êÌVA|[gª¶Ý·é±ÆÆ»êçª éê (I/O Ah X)ðmÁĢȯêÎÈèܹñBܽAVA|[gª CPU ÉT[rX ðv·éÉÇÌü(IRQ Ô)ðgíȯêÎÈçÈ¢©à OS ÍmÁÄ¢ éKvª èÜ·BVA|[gͱÌüÉèÝðé±ÆÉæÁÄT [rXðvµÜ·Bµ½ªÁÄA»ê¼êÌVA|[gfoCXÍ I/O AhXÆ IRQ (Interrupt ReQuest number)̼ûðsö«ÉÛ¶ µÄ¢È¯êÎÈèܹñBÚµÍ``èÝ''ÌßðQƵľ³¢B PCI oXÌêÍAK¸µà±Ìæ¤É®ì·éí¯ÅÍ èܹñBÆ¢¤ ÌàAPCI ÉÍÆ©ÌèÝVXeª é©çÅ·Bµ©µAPCI ÎÌ BIOS Í PCI ÌèÝð IRQ É}bsO·éæ¤É`bvðÝè·é½ ßA©©¯ãÍæÌà¾ÌÊèÉ®ìµÜ·B½¾µAèÝ̤Lª³ êÄ¢é_Í«Ü·(¡ÌfoCXª¯¶ IRQ Ôðg¦éí¯Å·)B I/O AhXÍÌAhXÆÍʨŷB I/O AhXªRs [ ^ÌAhXoXÉÝè³êéÆAÊÌzüÉMª¬êéÌÅ·B±ÌM ª¬êÄ¢éÆCÍAhXð³µÜ·ªAÅLÌ I/O Ah XðÁÄ¢éSÄÌfoCX(VA|[g)ÍÝè³ê½AhXÉ ÚµA»êªfoCXÌAhXÉ}b`·é©Ç¤©ð`FbNµÜ·Bà µAhXª}b`·êÎA»Ì I/O foCXÍf[^oXãÌf[^ðÇ ÝÝÜ·B 3.3. ¼O: ttyS0, ttyS1 VA|[gÉÍ ttyS0, ttyS1 ̼Oªt¯çêÜ·(±êçÍ ÊADOS â Windows ɨ¯é COM1, COM2 É»ê¼êεܷ)B /dev fBNgÉÍA»ê¼êÌ|[gÉÖ·éÁêt@Cª èÜ·B "ls /dev/ttyS*" ðÀsµÄ±êçÌt@Cð©ÄÝܵå¤B½¾µA (ᦠÎ)ttyS3 t@Cª é©çÆ¢ÁÄAK¸µà»±É¨IÈVA| [gª¶Ý·éí¯ÅÍ èܹñB (ttyS0, ttyS1 Ì)Ç̼OªÇ̨VA|[gðw·Ì©ÍAȺ Ìæ¤ÉµÄÜèÜ·BVAhCo(\tgEFA)ÍAÇÌ I/O A hXªÇÌ ttyS ÉηéÌ©ð¦·\ðǵĢܷB±Ìæ¤È¼ O(ttyS1 )©ç I/O AhX(Æ IRQ)ÖÌÎÍAÝèà\¦à "setserial" R}hÅs¦Ü·B ``setserial Æͽ©?''Ìßð²¾ ³¢B±ÌvOÍAn[hEFA»ÌàÌÌ I/O AhXâ IRQ ÌÝ èÍs¢Ü¹ñ(n[hEFAÌÝèÍWpâvO&vCÌÝèvO Ås¢Ü·)B±Ìæ¤ÉAÇ̨|[gª ttyS1 ÈÇÉηéÌ© ÍA(setserial ÅÌ)VAhCoÌÝèÆn[hEFAÌÝè̼ûÉ Ë¶µÜ·BÝèªÔáÁÄ¢éÆA¨|[gÍ(ttyS2 ÈÇÌ) ¼OÉÎ ³¹çê¸Aµ½ªÁÄg¦ÈÈèÜ·BÚµÍ ``/dev/ttyS2 ÌV A|[gfoCX'' ÌÍð²¾³¢B 3.4. èÝ VA|[gÍA éÌoCgf[^(1, 4, 8, 14 Ì¢¸ê©ÉÝè³ êÄ¢éÆv¢Ü·)Ìf[^ð FIFO obt@Éó¯æéÆAÊíÍ»Ì| [g¾¯ªg¤ÁèÌzüãÉèÝƵÄmçêédCM𬷱ÆÉ æèA»Ìf[^ðæèÞæ¤É CPU É`¦Ü·B±Ìæ¤É FIFO ÍA éÌoCgf[^ðÒÁÄA»ê©çèÝðsµÜ·B µ©µA±ÌèÝÍAÌoCgf[^ªÍÌðÒÁÄ¢éÔÉA\ú µÈ¢xª¶¶½ÉàçêÜ·(^CAEgÆ¢¢Ü·)B±Ìæ¤ ÉAoCgf[^ªäÁèóM³êÄ¢éÆ([ÌL[{[hÅü굀 ¢éæ¤É)A1 oCgðó¯æé²ÆÉèݪs³êé©àµêܹ ñBêÌ UART `bvÅÍAȺÌæ¤ÈK¥ÉÈèÜ·: 4 oCgðA ±µÄó¯æêé©àµêÈ©Á½ÌÉA±êçÌ 4 oCgÌf[^ª¢¸ êàoıȯêÎAVA|[gÍÌoCgf[^ðÒÂÌð «ç ßA»Ý FIFO ÉüÁÄ¢éoCgf[^ðæ¾³¹é½ßÉèÝðs µÜ·Bà¿ëñAFIFO ªóÅ êÎèÝÍs³êܹñB (Rs [^àÉ é)»ê¼êÌèÝüÉÍÔ(IRQ)ªt¢Ä¨ èAVA|[gÍMðé½ßÉÇÌüðg¤Ì©ðmÁĢȯêÎ ÈèܹñBá¦Î ttyS0 ÍÊíAIRQ Ô 4 ðg¢Ü·B±êÍ IRQ4(Ü ½Í IRQ 4)Æ©êÜ·BIRQ ÔÌXgÍ "man setserial" É©ê Ģܷ( uVA|[gÌRtBM [VãÌÓ (Configuring Serial Ports)vÌÍð©Ä¾³¢)BVA|[gª CPU ÌÓðøKvª éÉÍK¸èݪs³êÜ·BèÝÌs ðKØÈ^C~OÅs¤±ÆÍdvÅ·BÆ¢¤ÌàAVA|[gÌ obt@ÍüÁÄéf[^ð 16 oCg(âVA|[gÅÍ 1 oC g)µ©ÛÅ«È¢©çÅ·B±Ìæ¤ÈóMf[^ðobt@©ç¤Ü æèo·±ÆÉ CPU ª¸s·éÆA±êÈãÌf[^ªüéêªÈÈ èA¬³Èobt@ª ÓêÄ(I[o[)f[^ª³ÈÁĵܤ©à µêܹñB±êð ``t[§ä''Åh®±ÆÍūܹñB èÝÍAVA|[gª 16 oCgÌf[^𬳢Mobt@©ç OP[uÉSÄèoµ½¼ãÉàs³êÜ·B±ÌMobt@É ÍAèo·f[^pÌ 16 oCgÌó«ªÅ«Ü·B±ÌÀð CPU É` ¦A¬³¢Mobt@ÉM·×«Vµ¢f[^ðüê³¹é½ßÉè Ýðp¢Ü·BܽAf§äüÌóԪϻµ½Éàèݪs³ êÜ·B ãÌà¾Ìobt@ÍSÄn[hEFAobt@̱ÆÅ·BVA|[g ÍCãÉàå«¢obt@ðÁĢܷB±êÍãÙÇà¾µÜ ·B èÝͽÌîñð`¦Ü·ªA±êÍÔÚIɵ©s¢Ü¹ñBè Ý»ÌàÌÍAÁèÌ|[gªÓðßÄ¢é±ÆðèÝRg[ ÆÄÎêé`bvÉmç¹é¾¯Å·BèÝRg[ͱêðó¯Ä CPU ÉMðèÜ·BCPU ÍVA|[gÉT[rXðñ·éÁêÈv OðÀsµÜ·B±ÌvOÍèÝT[rX[`ÆÄÎê Ü·(VAhCoÌ\tgEFAÌêÅ·)BèÝT[rX[` ÍVA|[gÅN«½oð²×A»Ìâè (VA|[gÌn[ hEFAobt@Ìf[^üoÍÈÇ)ðµÜ·B±Ì[`ÍVA |[gÅN«½±ÆðÈPÉmé±ÆªÅ«Ü·BÆ¢¤ÌàAVA| [gÌWX^ÍVAfoCXhCoªmÁÄ¢é I/O AhXÉ é©çÅ·B±ÌWX^ÍAVA|[gÌóÔÉÖ·éîñðÛµÄ ¢Ü·BfoCXhCoͱÌWX^ðÇñÅ»Ìàeð²×é±ÆÉæ èAVA|[gÅN«½±ÆðmèAKØÈ®ìðs¤±ÆªÅ«Ü·B 3.5. f[^t[ (¬x) VA|[gÅÍf[^(¶AæÈÇð\·oCgñ)Ìüoͪsíê Ü·Bf[^ª¬êé¬xÅ ét[[g(56k (56000) rbg/bÈ Ç)Í(s³mÅ·ª)u¬xvÆÄÎêÜ·BÅ·ªåïÌlÍut[[ gvÅÍÈu¬xvÌûðg¢Ü·B ½Ï¬xÍdlÅßçêÄ¢é¬xæèàx¢êª½¢±ÆððµÄ¨ ±ÆªåØÅ·BÒ¿Ô( é¢ÍAChÔ)ª éÆA½Ï¬xÍá ÈèÜ·B±Ìæ¤ÈÒ¿ÔÉÍA``t[§ä''Éæé 1 böxà é·¢Ò¿ÔàÜÜêÜ·BÊÌÉ[ÈáƵÄÍAoCgf[^ðéÔ Ì~bÆ¢¤ñíÉZ¢Ò¿Ôª èÜ·BVA|[gÉÚ±µ½ foCX(fÈÇ)ªVA|[gÌŬxÉt¢Ä¢¯È¢êÉ ÍA½Ï¬xðáµÈ¯êÎÈèܹñB 3.6. t[§ä t[§äÆÍAzüð¬êéoCgf[^ð~ßé@\̱ÆÅ·B±êÉ ÍAoCgf[^𸤱ÆÈf[^ðÄѬµnßé@\àÜÜêÜ·B t[§äÍAfªuÔÌt[[gðñA±IÉϦçêéæ¤É· é½ßÉKvÅ·B 3.6.1. t[§äÌá áƵÄA33.6k ÌOfðZ¢P[uðgÁÄVA|[gÉÚ± ·éêðl¦Üµå¤B±ÌfÍdbñüãÅ 33.6k bps (rbg b)Åf[^ðóMµÜ·Bf[^³kâG[ù³ÍSsíÈ¢àÌÆ µÜ·BVA|[g̬xÍ 115.2k bps ÉÝèµÄ èAf[^ðR s [^©çdbñüÉèÜ·B·éÆARs [^©çfÖÍZ¢ P[uðÊÁÄ 115.2k bps Åf[^ª¬êÜ·Bµ©µAf©çdb ñüÖÍ 33.6k bps ŵ©f[^ª¬êܹñBf[^ªoÄsæèଠf[^ªüÁÄéÌÅAfʹߪÌf[^ (115.2k -33.6k = 81.6k bps)ðobt@É۵ȯêÎÈèܹñB 115.2k bps Ìf[^Ì ¬êª~ÜçÈ¢ÀèAÇͱÌobt@ÍìêÄ (ó«eʪÈÈÁ Ä)µÜ¢Ü·B Å·ªA±±Åt[§äªð§¿Ü·BfÌobt@ªì껤ÉÈé ÆAfÍVA|[gÉâ~MðèÜ·BVA|[gͱÌâ ~MðfoCXhCoÉnµA115.2k bps Ìf[^̬êÍâ~µÜ ·BfÍA¡ÜÅobt@É~¦½f[^ðæèoµÈªçA»ÌÜÜ 33.6k bps Åf[^ð豯ܷB·éÆobt@ÉͽàüÁıȢ½ ßAobt@àÌf[^Ê͸ènßÜ·Bobt@àÌf[^ªÙÆñÇÈ ÈéÆAfÍJnMðVA|[gÉèARs [^©çf ÖÄÑ 115.2k bps Åf[^ª¬ênßÜ·Bt[§äÉæèÀãAZ ¢P[uãÅ̽ÏIÈt[¬x(±ÌêÍ 33.6k bps)ÍAf[^ð u¬µ±¯½vê̬xÅ é 115.2k bps æèà¸ÁÆxÈèÜ·B± êªuJn-â~vt[§äÅ·B ãLÌÈPÈáÍRs [^©çfÖ̬êÌt[§äŵ½ªA½ Îü«Ì¬êÉεÄp¢ét[§äà èÜ·B·Èí¿f(Ü½Í ¼ÌfoCX)©çRs [^Ìü«Å·BÇ¿çÌü«Ì¬êÉà 3 ÂÌ obt@(1. fàÌobt@A 2. UART `bv(¢íäé FIFO)Ìà A3. VAhCoªÇ·éCÌobt@)ª èÜ·B t[§äÍAÁèÌobt@ªìêÈ¢æ¤ÉÛìµÜ·B¬³¢ UART FIFO obt@ͱÌæ¤ÈÛìðó¯Ä¢Ü¹ñªA»ÌãíèÉA±Ì obt@ªs·éèÝÖ̪¬Å é±ÆðúҵĮìµÜ ·BFIFO ÍuFirst In, First Out(æÉüÁ½f[^ªæÉoé)vÆ¢¤A oCgf[^̵¢ûð\µÄ¢Ü·B 3 ÂÌobt@SĪ FIFO ÌK¥ Å®ìµÜ·ªA±êð¼OƵÄÁÄ¢éÌÍ 1 ¾¯Å·B±êªt [§äÌ{¿Å·ªAྷé±ÆÍàÁƽ³ñ èÜ·B 3.6.2. t[§äªÈ¢ÌÇó t[§äÌüðmÁÄ¢éÆÀÛÉð§Äé±ÆªÅ«Ü·Bt[§ä ªÈ¢ÉoéÇóÍAt[§ä̶bðó¯¸Éçê½t@C©çf [^ª²»ÁÆÁ¦ÄµÜ¤±ÆÅ·B±êÍI[o[t[ªN±Á½É ÍA½¢Ä¢oCgDZëÅÍÈ¢ÊÌf[^ª Óêĸíêé©çÅ ·B½SA½çoCgàÌf[^ªÁ¦A»ÌSĪ걫Šé±Æàæ èÜ·B 3.6.3. n[hEFAt[§äÎ\tgEFAt[§ä Â\Å êÎAū龯un[hEFAvÌt[§äðg¢Üµå¤B± êÍêpÌuf§äüvð 2 {g¢Auâ~(stop)vÆuJn(start)v ÌMðéàÌÅ·B \tgEFAÉæét[§äÍAJnMÆâ~Mðé½ßÉCÌ MüÆóMüðg¢Ü·B\tgEFAÌt[§äÍA±ÌMðé½ ßÉ ASCII §ä¶Ì DC1(Jn)Æ DC3(â~)ðg¢Ü·B±Ì§ä¶Í PÉAÊíÌf[^Xg[àÉ}ü³êÜ·B\tgEFAÌt[§ä ͽªx¢¾¯ÅÈAÁÊÈÎôðu¶È¯êÎfðgÁÄoCi f[^ðé±ÆàūܹñBoCif[^ÉÍåïAt[§äp̧ ä¶Å é DC1, DC3 ªüÁÄ¢éÌÅAÁêÈÎôð§ÄÄAt[§ä Ìâ~MÅ é DC3 ÆoCiR[hÌêÅ é DC3 ðæʵȯêÎ ÈèܹñBDC1 É¢Äà¯lÅ·B 3.7. f[^t[ÌpXÆobt@ ±ÌbèÉ¢ÄÍAt[§äE(n[hEFAªÂ)16 oCgÌ FIFO obt@ÌyAEVA|[gÉÚ±³êÄ¢éå«¢obt@ÌyAðÜ ß½åªðùÉྵܵ½ªA±êÈOÉàܾobt@ÌΪ èÜ ·B·Èí¿CãÉå«È(½ª 8KB)obt@ª¶ÝµA±êàV A|[gÌobt@ÆÄÎêÜ·BAvP[VvOªf[^ ðVA|[gÉéÆA±Ìf[^ÍܸCÌûÌMVA |[gobt@Éi[³êÜ·Bobt@ÌÎÍAf[^̬êÌü«ª½ ÎÅ éMobt@ÆóMobt@ÌgݹŷB VA|[gÌfoCXhCoÍAá¦Î 16 oCgÌf[^ð 1 oC g¸ÂMobt@©çæèoµA±êðVA|[gÌn[hEFAª MpÉÁÄ¢é 16 oCgÌMobt@ÉüêÜ·Bêxf[^ªM obt@ÉüéÆA»ÌMð~ßéû@Í èܹñB»µÄ±Ìf[^ ÍAVA|[gÉÚ±³êÄ¢éfoCXÉçêÜ·BVA|[g àKØÈ嫳 (á¦Î 1K oCg)Ìobt@ðÁĢܷBfoCXh Coª(t[§äÉæéw¦Å)Rs [^©çoÄ¢oCgf[^Ì ¬êð~ß½ÉÍAÀÛÉ~ÜéÌÍCãÉ éå«ÈMob t@©çoÄ¢oCgf[^̬êÅ·B±êªN±èAVA|[gÉ Ú±³êÄ¢éfoCXÖÌf[^̬êª~ÜÁ½ãÅ ÁÄàAAvP [VvOÍA8K oCgÌMobt@ª¢ÁÏ¢ÉÈéÜÅÍA ±±Éf[^ð豯é±ÆªÅ«Ü·B ±Ìobt@ª¢ÁÏ¢ÉÈéÆAAvP[VvOÍ»êÈãÌ f[^ðé(C ¾êÅÍ "write" ¶ðg¢Ü·)±ÆªÅ«ÈÈèAAv P[VÌÀsðêIÉâ~µÄobt@Éó«ªÅ«éÌðÒ¿Ü ·B±Ìæ¤ÉAt[§äÌ "stop" MÍÅIIÉÍAf[^ðév Oð~ßé±ÆªÅ«Ü·B±ÌvOª~ÜÁÄàARs [^ ÍK¸µàvZð~ßéí¯ÅÍ èܹñBt[§äÌ stop Mðó¯ ÄÒÁÄ¢éÔÍAÊÌvZXÉØÖ¦êÎæ¢ÌÅ·BÈãÌà¾Í½ Ȫ»µ·¬Å·BÆ¢¤ÌàA"write" ¶ðÒÁÄ¢éÔÉAvP[V vO©ÌÉÊð³¹éû@à¼É é©çÅ·B 3.8. ¡GÈt[§äÌá ½ÌêA`oHª¡ÌNð¿A»Ì»ê¼êªÆ©Ìt[§ äðs¤±Æª èÜ·Bá¦ÎAfoRÅ BBS ÉANZXµÄ¢é PC ÉÚ±µÄ¢éeLXg[ãŶð^Cvµ½ÆµÜ·B±ÌêAgÁ Ä¢éAvP[VvO "minicom" ÍVA|[gð 2 µ¤ ±ÆÉÈèÜ·BeLXg[ãÅüͳ꽶ÍAܸVA|[g© ç minicom ÉçêAÉ minicom ©çÌVA|[gðoRÅf Éèo³êÜ·B»µÄÅãÉA±Ì¶Ídbñüð榀 BBS Éç êÜ·BeLXg[ªæÊɶð\¦Å«é¬xÉÍÀEª éÌÅA¬ xð·½ßÉt[§äÌ "stop" MªXs³êÜ·B"stop" M ªs³êéÆê̽ªN±éÌŵ天? "stop" Mª BBS ÜÅÍ«A BBS zXgãÅf[^ðèoµÄ¢évOð~ßéÜÅÉ·¢Ôª ©©éêðl¦ÄÝܵå¤B ±Ì "stop" M̬êðÇÕµÄÝܵå¤(NÉæÁÄ\tgEFA ųê½èAn[hEFAųê½èµÜ·)BÜ¸Í BBS ©çå« Èt@Cðuæ¾·évêðl¦Ü·B±ÌÛÉÍAeLXg[Æn[ hfBXNãÌt@C̼ûɯÉf[^ªçêÜ·BeLXg[Ì \¦¬xæèà¬f[^ªçêÄéÌÅAeLXg[Í PC Ì 1  ßÌVA|[gÉ "stop" MðèÜ·BfoCXhCoͱêð oµA(CãÉ é)8KB ÌVAobt@©ç[ÖÌf[^ Mðâ~³¹Ü·B±Ì_ÅÍܾAminicom Í[Öé½ßÌf[^ð 8KB Ìobt@É豯ĢܷB (1 ÂßÌVA|[gÌ)±Ì 8KB ÌMobt@ª¢ÁÏ¢ÉÈéÆA minicom ͱ±ÖÌ«Ýð~ßȯêÎÈèܹñBminocom Íf[^ð éÌð~ßÄÒ¿óÔÉüèÜ·BÅ·ª±êÉæÁįÉAfÉÚ ±³êÄ¢é 2 ÔÚÌVA|[gÌ 8KB ÌóMobt@©çÌÇÝÝ à~ÜÁĵܢܷBf©çÌf[^ÍA8 KB Ìobt@ª¢ÁÏ¢ ÉÈèAfÉηé "stop" MªVµçêéÜŬ걯ܷB f(G[ù³ÍLøÅ éàÌƵܷ)Í "stop M" ð BBS ¤Ìf ÉèÜ·B±ÌfÍobt@©çf[^ðèo·Ìð~ßA±Ì obt@ª¢ÁÏ¢ÉÈéÆABBS zXgÌVA|[gÉ stop Mð èÜ·BBBS zXgÅÍA8KB(ÈÇ)Ìobt@ª¢ÁÏ¢ÉÈèABBS zX g¤ÌvO©ç«ÝÅ«ÈÈéÆA±ÌvOªêIÉâ ~µÜ·B ±Ìæ¤ÉµÄAeLXg[©ççê½ stop Mª BBS zXgãÌv Oð~ßÜ·BÆÁÄàÊ|ÈdgÝÅ·Ë! stop MÍVA| [gð 4 ÂÊèAfð 2 ÂÊèAAvP[VvOð 1  (minicom)ðÊß·éÌÅ·BeVA|[gÍ(êûüÉ«)obt@ð 2 Â(8KB Ìobt@ÆAn[hEFAªÂ 16 oCgÌobt@)¿Ü ·BAvP[VvOÍ C ¾êÌR[hàÅàobt@ðÁ Ä¢éŵå¤B±êàÜßéÆAf[^Í 11 ÂàÌÊXÌobt@ðÊè Ü·BVAn[hEFA̬³¢obt@Ít[§äð¼ÚÍ¯ÊµÈ ¢_ÉÍӵľ³¢B BBS ©ç[Öf[^ª¬êéÛÉ[̬³ÌÀEª{glbNÉÈÁÄ ¢éêAt[§äÌ "stop" MÍÀÛÉÍ BBS ©çf[^ðév Oð~ßé±ÆÉÈèÜ·B±êÍæöྵ½ÊèÅ·BÅ·ª u"stop" Mª»ñÈÉÔðHÁÄA11 ÂÌobt@(àÁÆå«¢ob t@à é)ªS Óêé±ÆÈñÄ{É éÌ?vÆvíêé©àµêÜ ¹ñBeLXg[ª "stop" MðÁ½ÉSÄÌobt@ªeÊ¢ÁÏ ¢Éß©Á½êÉÍA»¤Èé±ÆÍÀÛÉ èÜ·B Å·ªÀ±ðsÁÄÝêÎA±êæèààÁÆྪ¡GÉÈé±Æª¨ª© èÉÈéÆv¢Ü·B éuÔÉf[^ð¬µÄ¢éNà èÜ· µA(t[§äÉæÁÄ)~ÜÁÄ¢éNà èÜ·B[©çÌ "stop" MªAæÉྵ½æ¤É¤Ü BBS zXgÉ`íé±ÆÍÅ½É èܹñBBBS ¤É "stop" Mð 1 ÂͯéÉÍA[©çÍ "stop" Mð¢Â©çȯêÎÈçÈ¢±Æª èÜ·BÀÛÌ®ìðð·é ÉÍA÷ÉRCðu¢Äs¤ÈPÈÀ±ðâÁÄÝéÆ¢¢Åµå¤Bob t@ÌÍ 2, 3 ÂÅAeobt@ÌeÊàRC 2, 3 ¾¯ÉµÄ¾³ ¢B ÇÒÌF³ñÍAȺ±ñȱÆ𢿢¿à¾·éÌ©Ævíêé©àµê ܹñBÅ·ªMÒÍABBS ©çæ¾µ½eLXgªÈÈé´öð±êŠ𵽱ƪ éÌÅ·B»ÌÌóµÍ¿å¤ÇOÌáƯ¶Å·ªAf ÎfÌt[§äª³øÉÈÁĢܵ½Bn[hfBXNÉàÛ¶³ êé͸ÌAæ¾µ½eLXgf[^ªÀÛÉÍÛ¶³êÈ©Á½ÌÅ·ªA »Ì´öÍ[©çÌt[§äÌ "stop" M̽ßÉfÌobt@ª I[o[t[µÄ¢½±Æŵ½B{glbNªÈ¢f[^ÌoHª BBS ©çn[hfBXNÜÅ ÁÄàA[ª´öÆÈéI[o[t[ª±Ìo HãÅN«½½ßAeLXgf[^ª³ÈÁÄn[hfBXNÉÛ¶Å«Ü ¹ñŵ½BfoRÅn[hfBXNÉf[^ðn·Í¸ªAfÅI [o[t[ªN±ÁÄ¢½½ßÉAn[hfBXNÉé׫f[^ªÁ¦ Ä¢½Ìŵ½B 3.9. VAì\tgEFA: foCXhCoW [ VA|[gpÌfoCXhCoÍAVA|[gðì·é\tg EFAÅ·B»ÝͱêÍVAW [ƵÄpÓ³êĢܷB±Ì W [ÍÊAKvÈÉ©®IÉ[h³êÜ·Bo[W 2.2 È ~ÌJ[lͱêðs¢Ü·B±êæèâJ[lÅÍAKvÈÉ W [ð©®[h·é½ßÉÍ kerneld ðÀs·éKvª èܵ½B ±êðsíÈ¢êÉÍA/etc/modules ɾ¦IÉñ·éKvª èܵ ½BW [ª Linux ÅêÊIÉÈéOÍAVAhCoÍJ[l ÉgÝÞ̪Êŵ½BàµAVAhCoªÜ¾J[lÉgÝ ñÅ éÌÈç(J[lÌRpCÉ»¤Iðµ½Ì©àµêܹñ)A VAW [ð[hµÄÍ¢¯Ü¹ñB൱êð[hµÄVA hCoª 2 ÂÉÈÁĵܤÆAVA|[gÍg¦ÈÈèÜ·B ±ÌêÉVA|[gðI[vµæ¤Æ·éÆ "I/O error" ÆÈèÜ ·B VAW [ª[h³êéÆA¶Ý·éVA|[gÉÖ·éb Z[WªæÊÉ\¦³êÜ·(æÔáÁ½ IRQ ð\¦µÜ·)Bµ©µAê x setserial ðgÁÄfoCXhCoÉ(½Ôñ)³µ¢ IRQ ð³¦êÎA Ì\¦ÍÅÌ\¦ÉĢܷªAIRQ ª³µÈÁÄ¢é͸Š·Bsetserial ÌÚ×É¢ÄÍ ``setserial Æͽ©?''ð²¾³¢B J[lÌ\[XR[hðÒWµÄhCoðC³·é±ÆªÅ«Ü·BV AhCoÌåªÍ serial.c t@CÉ èÜ·BVA|[gðg ¤vOÌÚµ¢«ûÉ¢ÄÍASerial-Programming-HOWTO ð² ¾³¢(»Ý Vern Hoxie ³ñªüùÅ·)B 4. VA|[gÍãxêÈÌ©? 4.1. ͶßÉ uÍ¢vÆ¢¤Ìª¦Å·ªcBVA|[gÍ¢ç©ãxêÅ·ª »ÝÅàKvÅ·µAÁÉ Linux ÅÍKvÅ·BVA|[gÉÍ_ª ½³ñ èÜ·ªAVµ¢ PC ÌÙÆñÇÉVA|[gªt¢Ä¢éæ ¤Å·BLinux ªT|[gµÄ¢éÊídbñüpÌfÍAVA|[ goRÅ®à̾¯Å·B VA|[gÍARs [^ÆOP[uÌÔÅf[^ð^ÎȯêÎ ÈèܹñBæÁÄAVA|[gÍ 2 ÂÌC^tF[Xð¿AÇ¿ çÌC^tF[Xàá¬Å·BܸÍOP[uðʶ½OEÆÌC^ tF[Xðl¦ÄÝܵå¤B 4.2. á¬Å£àZ¢ EIA-232 P[u ]Ì EIA-232 VA|[gÍAǤµÄàá¬ÅA£É൵¢ÀE ª èÜ·BLÅÍæu¬vÆæíêÜ·ªAÀÛÉu¬vÉ®ì· éÌÍAPC Ì·®×Éfª éæ¤ÈñíÉ£ªZ¢ê¾¯Å·B ܽlbg[NJ[hÆä×éÆA±Ìu¬vÆ¢¤Ìàá¬Éܹ߬ ñBVAP[uÍSĤÊÌÚnüðg¤züðp¢Ä¢éÌÅAn[ hEFAðÇÁµÈ¢Àè(¬È`ÅKvÆÈé)cCXgyAZpðg¦ ܹñBVA|[gpÌÅVZpà¶ÝµÜ·ªA±êçÍ EIA-232 Æ áÁÄ PC ÌWÅÍ èܹñB ``EIA-232 Ìãp''ð²¾³¢Bê Ì}`|[gVAJ[hͱêçðT|[gµÄ¢Ü·B 1962 NÉìçê½ RS-232 KiªcCXgyAZpðgÁĢȢ±ÆÍ éÓ¡ßÅ·B±êðgÁÄ¢êÎ 100 {¬É®ìÅ«½Í¸ÈÌÅ· ©çBcCXgyAÍdbüÉÍ 19 ¢I©çgíêīܵ½B 1888 N(110 NÈãàO)ÌuP[uïc(Cable Conference)vÍAcCXgyA Ì(dbVXeÖÌ)xÆ»Ì_ðñµÄ¢Ü·BÅ·ªAuP[u ïcvÅÌÓÍA80 NÈãàãÌ RS-232 ÅͶ©³êܹñŵ ½BRS-232 ͳXA[ð»Ì×Éu¢½á¬fÆÚ±·é½ßÉÝv ³ê½ÌÅA¬E·£Ì`ÉÖ·éKv«Íð³êÈ©Á½æ¤Å ·B 4.3. Rs [^ÖÌC^tF[XÌñø¦³ Rs [^ÆîñðâèÆè·éÉÍAÇñÈ I/O foCXÅ ÁÄàR s [^ªÇÝ«Å«éAhXªKvÅ·B±ÌÚI̽ßÉ½Ì I/O foCX(VA|[g)Í I/O AhXÆÄÎêéÁêÈAhX ðÁĢܷ(I/O |[gÆÄÎêé±Æà èÜ·)B±êÍÀÛÉÍA éAhXÌÍÍÅ èAêÔáÊÌAhXªx[XAhXÉÈèÜ·B PÉuAhXvƾíê½(©ê½)êÍAÀÛÍåïux[XAh XvðwµÄ¢Ü·B êÌ I/O foCXÍ I/O AhXðgíÈ¢ÅA¼ÚCÌÇÝ «ðs¢Ü·B±Ìû@¾Æå«ÈÑæðpÅ«Ü·BÆ¢¤ÌàAÌÈ ªçÌVA I/O VXeÅÍ¯É 1 oCgµ©]Å«È¢©çÅ ·BCð¼ÚÇÝ«·éû@ÍFX èÜ·B»ÌꪤL I/O ÆÄÎêéàÌÅ·(¤LÍÊAI/O foCXƯ¶J[h ãÉ èÜ·)B¼Ìû@ƵÄÍ ISA oXÌ DMA(direct memory access, ¼ÚANZX)âA PCI oXÅÌ DMA ƯlÌdgÝ(¬x͸ÁƬ ¢)Å éuoX}X^Ovª èÜ·B±êçÌû@ÍAVA|[ gÌû®æèà¸ÁƬŷBµ½ªÁÄA(14 oCg²ÆÌ)èÝì ®C^tF[Xð¿AoX©Ìª 4(Ü½Í 8)oCgðÜÆßÄÅ« éÌÉ 1 oCg¸Âµ©MÅ«È¢ÌȪçÌVA|[gÍA´¬ Ì I/O ÉÍü¢Ä¢Ü¹ñB 5. }`|[gVA{[h/J[h/A_v^ 5.1. }`|[gVAüå }`|[gVAJ[hÍ PC Ì ISA oXÜ½Í PCI oXÌXbgÉ ÝuµÜ·BucJ[hvÆÄÔãíèÉAucA_v^vâuc{[hvÆ ÄÎêé±Æà èÜ·B±Ìæ¤ÈJ[hðg¤ÆAVA|[gð½ ³ñg¤±ÆªÅ«Ü·B¡úÅÍA}`|[gVAJ[hÍ(éÆâ Æëɨ¯é©®»ðÜßÄ)OfoCX̧äÉêÊIÉgíêÄ¢Ü ·B}`|[gVAJ[hÍAun©çRs [^T[oðÄ/ §ä·é½ßÉRs [^T[oÉڱūܷB±êÍ©ÂÄÍåÆµÄ ½³ñÌ[âfðVA|[gÉÚ±·é½ßÉgíêĢܵ ½B±¤¢Á½g¢ûàܾ³êĢܷªA}`|[gVAJ[hð fÆgÝí¹Äg¤ÆAÊÌfÌêƯ¶§Àðó¯Ü·B ÜèAfª 56K fÅ ÁÄàAÚ±¬xÍ 33.6K ð´¦é±ÆªÅ «Ü¹ñB µ½ªÁÄAN©ª ȽÉdbð©¯(»µÄAJ[hÉ}³Á½f© ç ȽÌ}`|[gVAJ[hÉÚ±µ)½êA½Æ¦ 56K f ðgÁÄ¢½ÆµÄàAÇ¿çÌü«ÌÊM¬xà 33.6K ð´¦é±ÆÍÅ «Ü¹ñB_CACڱŠ33.6K ð´¦é½ßÉÍAdbüªfW^ Ú±ÉÈÁÄ¢éKvª èÜ·B±ÌêAVA|[gÍà¤ÖWÈ ÈèÜ·Bµ½ªÁÄA}`|[gVAJ[hÍ¡ÅÍ ISP âO© ç 56K(33.6K ÈãÅ)_CACÚ±ð³¹éKvª élªg¤ÉÍã xêÌàÌÉÈèܵ½BÚµÍ Modem-HOWTO ÌuModem PoolsvÆ uDigital ModemvÌßð©Ä¾³¢B eí}`|[gJ[hÉͽ³ñÌORlN^(DB-25 Ü½Í (dbü Ìæ¤È)RJ-45)ªÂ¢Ä¨èA½³ñÌfoCX(fA[ÈÇ)ðÚ ±Å«Ü·B»ê©çA±¤¢Á½¨foCXÍ»ê¼êe©ÌVA| [gÉÚ±³êÜ·BJ[hÌOÉʵĢéªÌÊÏÍÀçêÄ¢é½ ßASÄÌVA|[gRlN^ÉεÄ\ªÈóÔªæêÈ¢±Æàæ èÜ·B±Ìâèðð·é½ßÉARlN^ÍJ[h©ç (OÉ)Ñ Ä¢éP[u(^R«P[u)Ì[Éqªêé±Æª èÜ·B±¤¢Á½ RlN^Í}`|[gJ[hÆP[uÅqªÁÄ¢é¬³È ÉÚ±³ê é±Æà èÜ·B _VA|[gàÊíÌVA|[gÆ ÜèÏíèܹñB_V A|[gàèÝì®Å èA±Ì|[gÉT[rX·é®ìÌÙÆñÇ SÄÍRs [^Ì CPU ªs¢Ü·B±êÉÍÊA1 ÂÌèÝðS ÄÌ|[gŤL·é½ßÌVXeªt¢Ä¢Ü·B¾©çÆ¢ÁÄ CPU É©©éת¸éí¯ÅÍ èܹñBȺÈçA¢¸ê©Ì|[gªT[ rXðKvÆ·é½ÑÉ CPU ÉèݪÐÆÂçêé©çÅ·B±¤ ¢Á½foCXÍÍÊíÍÁêÈhCoðKvƵܷBhCoÍJ[l ÉgÝÞ©A\[XR[hÌC³ÉæÁÄLøɵȯêÎÈèܹñB «¢{[hÍÊíÌ UART ðg¦Ü·ªAUART ©çÌèÝÌÙÆñÇð {[hàÅàIɵܷB±êÉæèACPU ͱ¤¢Á½èÝÌS Äðµ¤Æ¢¤×ð¦êé±ÆªÅ«Ü·B±Ì{[hÍoCgf[^ðå «Èà FIFO É~¦AêxÉ 1K oCgç¢Ìf[^ðCãÌ VAobt@É]µÜ·BCÖÌf[^]ðs¤ÛÉ ÍA(_VAJ[hÌæ¤É 8 rbgÌoCg¾¯ð]·éÌÅÍÈ )32 rbgÌoXðSÄg¤±ÆªÅ«Ü·BK¸µàSÄÌu«¢v{ [hª¯¶æ¤Éø¦IÈí¯ÅÍ èܹñB»Ý̽Ì{[hÍv O&vCÎÅ·B «¢{[h𮩷½ßÉÍAêpÌhCoðgíȯêÎÈèܹñB± ÌhCoÍJ[lÌ\[XR[hÉgÝÜêÄ¢½èAW [Ƶ Äñ³êé±Æà èÜ·B±¤¢Á½êÅàAhCoðLøÉ·éÉ Í½©µÈ¯êÎÈèܹñB»ÌìÆÉÍAJ[lÌRpCÉIÔ ±Æ(ܽÍA\ßRpC³êÄ¢éJ[lª»¤ÈÁÄ¢é©Ç¤© ðm©ßé±Æ)ªÜÜêÜ·B"make config" R}h© "make menuconfig" R}hðg¤ÆA±ÌIvVªÇÌæ¤ÉÝè³êÄ¢é ©ðm©ßé±ÆªÅ«Ü·BêÉæÁÄÍAÁêÈhCoð[hµ½ èAÁèÌp[^ð(LILO Ì append R}hðgÁÄ) J[lÉn· ±Æà èÜ·B{[hÌ[J[ÍA±Ìæ¤Èîñð©ÐÌEFuTCg ÉڹĢé͸ŷBcOȪçAâ{[hÌîñªÈ¢±ÆàX è Ü·ªA»ÌîñÍC^[lbgã̼Ìêũ¯çêé©àµêܹ ñ(c_pÌj [XO[vðÜÝÜ·)B 5.2. /dev fBNgÅÌufoCXvÌì¬ }`|[g{[hªg¤VA|[gÍA¨g¢Ì{[hÌíÞÉæÁÄ ÙÈèÜ·BêÌ|[gÍ rc.serial â 0setserial ÉÚµñ³êÄ ¢é©àµêܹñB±êçÌt@CÍ setserial pbP[WÜ½Í serial pbP[WÉüÁÄ¢é©àµêܹñBMÒƵÄÍAÇÒÌF³ ñª}`|[g{[hðg¨¤ÆµÄ¢éÌÈçAÅVo[WÌ setserial ðüè·é±Æð¨©ßµÜ·Bܽ½ªA±êçÌfoCX ð쬷éKvª éŵå¤Bì¬ÉÍ mknod R}h© MAKEDEV XN vgðüèµÄ¾³¢BVA|[gpÌfoCX (/dev fBNg É é)ÍAu64 + |[gÔvÌ«µZÅìêÜ·Bµ½ªÁÄAttyS17 pÌfoCXð쬵½¯êÎAȺÌR}hðÀsµÜ·: linux# mknod -m 666 /dev/ttyS17 c 4 81 ttyS foCXÌuW[vÔÍK¸ 4 Å é_(»µÄA5 Íãxê Ì cua foCXÌÔÅ é_)Éӵľ³¢Bܽu64 + 17 = 81v Éàӵľ³¢B MAKEDEV XNvgðg¤êÉÍȺÌR}h ðÀsµÜ·: linux# cd /dev linux# ./MAKEDEV ttyS17 { HOWTO É©êÄ¢é}`|[g»iÌêÈOÉàA Gary's Encyclopedia - Serial Cards <http://members.aa.net/~swear/serialcards.html> Æ¢¤ WWW y[Wª èÜ·B±êÍ®SÅÍ èܹñªA¼ÖÌNà¢Â© èÜ·B 5.3. PC WÌVAJ[h ÌÍ PC ÉÍVAJ[hªÆ§µÄ}³ÁĢܵ½BµOÍVA @\Ín[hfBXNÌC^tF[XJ[hÉgÝÜêĢܵ½B»Ý ÍAÊÍêÂܽÍñÂÌVA|[gª}U[{[hÉgÝÜêÄ¢ Ü·Bµ©µAÇÁÌVA|[gª 1 ©ç 4 ÂKvÈêÍ¡Åà PC pÌ®ÌVAJ[hð¦éŵå¤B±êçÍ ttyS0-ttyS3 (COM1 - COM4)ƵÄg¢Ü·B±êçðgÁÄOt¯VAfoCX(f AVA}EX)ðڱūܷB¬ÌRs [^Vbvű¤ ¢Á½J[hðµÁÄ¢éÌͲ꾯ŷBµ©µAC^[lbgð ʶÄwü·é±ÆàÅ«Ü·BPCI ÌVAJ[hð¤OÉÍALinux ªÎµÄ¢é±Æðm©ßܵå¤B L¼Èuhð¢Â©ÐîµÜ·: o Byte Runner (¼Ú¶Å«Ü·B¿ià\¦³êĢܷ) <http://www.byterunner.com> o SIIG <http://www.siig.com/io> o Dolphin <http://www.dolphinfast.com/sersol/> Ó: AhXªÕË·é½ßACOM4 Æ IBM8514 rfIJ[h(ÈÇ)ͯ Ég¦È¢©àµêܹñB ``ÁèÌrfI{[hÅÌ I/O AhXÌÕË ðð¯éû@'' ð²¾³¢B 5.4. _}`|[gVA{[h (WÌ UART `bvªÚÁÄ¢éà Ì) ȺÌ{[hÍuVAA_v^vÆàÄÎêÜ·B±êçÌJ[hÍAÎ @\ðJ[lÉRpCµÄgÝÞKvª éÁêÈû@ðgÁÄ èÝð¤LµÄ¢é±Æªæ èÜ·B * => Debian ÅÍ setserial ðÀs·ét@CªAÚ×ÈÝèð\¦µÜ ·B # => ±Ì{[hÉ¢ÄÍãqÌð©é±Æ o AST FourPort ¨æÑ»ÌÝ·J[h (4 |[g) * # o Accent Async-4 (4 |[g) * o Arnet Multiport-8 (8 |[g) o Bell Technologies HUB6 (6 |[g) o Boca BB-1004 (4 |[g), BB-1008 (8 |[g), BB-2016 (16 |[g; mini-howto ¶ª èÜ·) * # o Boca IOAT66 é¢Í? ATIO66 (6 |[gAm©ßĢܹñª Linux Å Í IRQ ¤LÉεĢܹñBRJ45 ɽAÁêÈ 10-sRlN^ ðg¢Ü·) o Boca 2by4 (4 VA|[gA2 p|[g) o Byte Runner <http://www.byterunner.com> o Computone ValuePort V4-ISA (AST FourPort Ý·) * o Digi PC/8 (8 |[g) # o Dolphin <http://www.dolphinfast.com/sersol/> o Globetek <http://www.globetek.com/> o GTEK BBS-550 (8 |[g; mini-howto ¶ª èÜ·) o Hayes ESP (J[l 2.1.15 È~) o HUB-6 (Bell Technologies Éâ¢í¹Ä¾³¢) o Longshine LCS-8880, Longshine LCS-8880+ (AST FourPort Ý·) * o Moxa C104, Moxa C104+ (AST FourPort Ý·) * o NI-SERIAL <http://digital.natinst.com/manuals.nsf/web%2Fbyproductcurrent?OpenView&Start=1&Count=500&Expand=15.1#15.1>, National Instruments » o PC-COMM (4 |[g) o Sealevel Systems <http://www.sealevel.com> COMM-2 (2 |[g), COMM-4 (4 |[g), COMM-8 (8 |[g) o SIIG I/O Expander 2S IO1812 (4 |[g) # o STB-4COM (4 |[g) o Twincom ACI/550 o Usenet Serial Board II (4 |[g) * êÊIÉÍALinux Í 8250, 16450, 16550, 16550A, 16650 ÈÇÌ UART ð gÁÄ¢éSÄÌ{[hÉεĢܷBàÁÆÚµ¢XgÉ¢ÄÍA "setserial" ÌÅVÌ}j Ay[WðQƵľ³¢B : AST Fourport: rc.serial Å skip_test ðwè·éKvª é©àµêܹ ñB BB-1004 Æ BB-1008 Í DCD, RI CðT|[gµÄ¨ç¸A»Ì½ß_C ACpÌfÉÍg¦Ü¹ñB¼ÌÚIÅÍâèÈ®ìµÜ·B Digi PC/8 ÌèÝóÔWX^ÌÊuÍ 0x140 Å·B SIIG IO1812 Ì}j AÉ©êÄ¢é COM5 ©ç COM8 ÌXgÍëÁÄ ¢Ü·B³µÍ COM5=0x250, COM6=0x258, COM7=0x260, COM8=0x268 Ì͸ Å·B 5.5. CeWFg}`|[gVA{[h Linux Ý·ÌhCoªg¦é±Æðm©ßAhCot®ÌîñðÇñÅ ¾³¢B±êçÌJ[hÍAWÌfoCXÅÈÁêÈfoCX(/dev fB NgÉ é)ðg¢Ü·B±ÌîñÍn[hEFA²ÆÉÙÈèÜ·B± ̶ÉÚ¹é׫Vµ¢îñª êÎAºÐMÒÉ[ðÁľ³ ¢B Linux ÌhCoW [̼OÍ *.o Å·ªA±êçÍSÄÌfÅ ³µ®ì·éÆÍÀèܹñBܽA(I/O AhXâ IRQ Ì)p[ ^ðW [É^¦éKvª é±ÆརÌÅA»êÉÖ·éà¾ð©Â ¯éKvà èÜ·(\[XR[hc[ÌÉ é©àµêܹñ)B }`|[gJ[hÌuhͽ³ñ èA»ê¼ê©çFXÈíÞÌJ [hªæo³êÜ·B¡ÌƱëA±êçÌJ[hð±±ÅÔ µæ¤ÆÍ µÄ¢Ü¹ñ(ܽ°Ä¢éàÌ̽ÍãxêÉÈÁÄ¢é©àµêÜ ¹ñ)Bµ½ªÁÄA±ÌXgÍ}`|[gJ[hâ»ÌuhÉ¢ ÄâàÌÆVµ¢à̪²Á¿áÉÈÁĢܷBEFuy[W©çª©é êÉÍAæÍíµÜµ½BhCoÉÖ·éîñ௶EFuy[WÅ ©Â©é͸ŷBEFuy[WðÐîµÄ¢È¢êA»ÌJ[hͽÔñ âÆv¢Ü·BXgðæèæ·é½ßÉîñðÇÁµ½¢Æv¤ûÍA MÒɨmç¹¾³¢B o Chase Research (UK x[XAISA/PCI J[h) EFuy[W: <http://www.chaser.com> hCoÌXe[^X: 2.2 J[lpBChase ªT|[gµÄ¢Ü·B o Comtrol RocketPort (36MHz ASIC; 4, 8, 16, 32 |[gA128 |[gÜ Å) EFuy[W: http://www.comtrol.com hCoÌXe[^X: Comtrol ЪT|[gµÄ¢Ü·(rocket.o)B hCoÌüèæ: ftp://tsx-11.mit.edu/pub/linux/packages/comtrol o Computone IntelliPort II (ISA, PCI, EISA oXpB64 |[gÜÅ) EFuy[W: <http://www.computone.com> hCoÌüèæ: <ftp://ftp.computone.com/PUB/Products/IntelliPortII/Linux/>, pb` Í <http://www.wittsend.com/computone/linux-2.2.10-ctone.patch.gz> É èÜ·B [OXg: {¶É "subscribe linux-computone" Æ¢½[ ð <mailto:majordomo@lazuli.wittsend.com> ÉèÜ·BÓ: Computone ÍAâ ATvantage J[hâ IntelliPort J[hðT|[g µÄ¢Ü¹ñB o Connecttech EFuTCg: <http://www.connecttech.com/porducts/products.html> hCoÌüèæ: <ftp://ftp.connecttech.com/pub/linux/> o Cyclades Cyclom-Y (Cirrus Logic CD1400 UART; 8 - 32 |[g), Cyclom-Z (MIPS R3000; 8 - 64 |[g) EFuTCg: <http://www.cyclades.com/products.html> hCoÌXe[^X: Cyclades ªT|[gµÄ¢Ü·B hCoÌüèæ: ftp://ftp.cyclades.com/pub/cycladesBܽAo[ W 1.1.75 È~Ì Linux J[lÉÜÜêĢܷ: cyclades.o o Decision PCCOM8 (8 |[g) Aæ: <mailto:info@cendio.se> EFuTCg: ȵ(ÁÅ) hCoÌüèæ: ftp://ftp.signum.se/pub/pccom8 o Digi PC/Xi (12.5MHz 80186; 4, 8, 16 |[g), PC/Xe (12.5/16MHz 80186; 2, 4, 8 |[g), PC/Xr (16MHz IDT3041; 4, 8 |[g), PC/Xem (20MHz IDT3051; 8 - 64 |[g) EFuTCg: <http://www.dgii.com> hCoÌXe[^X: Digi ЪT|[gµÄ¢Ü·B hCoÌüèæ: ftp://ftp.dgii.com/drivers/linux ÅàüèÅ«Ü· µAo[W 2.0 È~ÌJ[lÉÍhCoªÜÜêÄ¢Ü ·(epca.o)B o Digi COM/Xi (10MHz 80188; 4, 8 |[g) Aæ: Simon Park ³ñ, si@wimpol.demon.co.uk hCoÌXe[^X: s¾B Ó: Simon ³ñÍd̽ßA½à±¯Ädq[ªg¦ÈÈ é±Æªæ èÜ·B Mark Hatle ³ñ( <mailto:fray@krypton.mankato.msus.edu> )̲úÓÉæèAhCoª KvÈçÎüèÅ«éæ¤ÉÈÁĢܷB Mark ³ñÍhCoÌ eiXâT|[gÍs¢Ü¹ñB o Equinox SuperSerial Technology (30MHz ASIC; 2 - 128 |[g) EFuTCg: http://www.equinox.com hCoÌXe[^X: Equinox ЪT|[gµÄ¢Ü·B hCoÌüèæ: ftp://ftp.equinox.com/library/sst o Globetek EFuTCg: <http://www.globetek.com/products.shtml> hCoÌüèæ: <http://www.globetek.com/media/files/linux.tar.gz> o GTEK Cyclone (16C654 UART; 6, 16, 32 |[g), SmartCard (24MHz Dallas DS80C320; 8 |[g), BlackBoard-8A (16C654 UART; 8 |[g), PCSS (15/24MHz 8032; 8 |[g) EFuTCg: http://www.gtek.com hCoÌXe[^X: GTEK ЪT|[gµÄ¢Ü·B hCoÌüèæ: ftp://ftp.gtek.com/pub o Hayes ESP (COM-bic; 1 - 8 |[g) EFuTCg: http://www.nyx.net/~arobinso hCoÌXe[^X: o[W 2.1.15 (1998N)È~Ì Linux J[l ÍεĢܷ(esp.o)Bsetserial 2.15 È~àεĢܷBì ÒàT|[gµÄ¢Ü·B hCoÌüèæ: http://www.nyx.net/~arobinso o Multi-Tech Systems »ÌCeWFgVAC^tF[X PCI ÅÍ 4 Ü½Í 8 |[gB ISA ÅÍ 8 |[gBDTE ¬xÍ 460.8KB EFuy[W: <http://www.multitech.com/products/> o Maxpeed SS (Toshiba; 4, 8, 16 |[g) EFuTCg: http://www.maxpeed.com hCoÌXe[^X: Maxpeed ЪT|[gµÄ¢Ü·B hCoÌüèæ: ftp://maxpeed.com/pub/ss o Microgate SyncLink ISA/PCI ¬}`vgRVAJ[hB¯ú HDLC pÅ·B EFuTCg: <http://www.microgate.com/products/sllinux/hdlcapi.htm> hCoÌXe[^X: Microgate ЪT|[gµÄ¢Ü ·(synclink.o)B o Moxa C218 (12MHz 80286; 8 |[g), Moxa C320 (40MHz TMS320; 8 - 32 |[g) EFuTCg: http://www.moxa.com hCoÌXe[^X: Moxa ЪT|[gµÄ¢Ü·B hCoÌüèæ: <http://www.moxa.com/support/download/download.php3>> <ftp://ftp.moxa.com/drivers/linux> (äp©çÍ www.moxa.com.tw/... àg¦Ü·Bu...v̪ÍãLƯ¶Å·B) o SDL RISCom/8 (Cirrus Logic CD180; 8 |[g) EFuTCg: http://www.sdlcomm.com hCoÌXe[^X: SDL ЪT|[gµÄ¢Ü·B hCoÌüèæ: ftp://ftp.sdlcomm.com/pub/drivers o Specialix SX (25MHz T225; 8? - 32 |[g), SIO/XIO (20 MHz Zilog Z280; 4 - 32 |[g) EFuy[W: <http://www.specialix.com/products/io/serialio.htm> hCoÌXe[^X: Specialix ЪT|[gµÄ¢Ü·B hCoÌüèæ: <http://www.BitWizard.nl/specialix/> âhCoÌüèæ: <ftp://metalab.unc.edu/pub/Linux/kernel/patches/serial> o Stallion EasyIO-4 (4 |[g), EasyIO-8 (8 |[g), EasyConnection (8 - 32 |[g) - ±êçÉÍ Cirrus Logic CD1400 UART ªÚÁĢܷB Stallion (8MHz 80186 CPU; 8, 16 |[g), Brumby (10/12 MHz 80186 CPU; 4, 8, 16 |[g), ONboard (16MHz 80186 CPU; 4, 8, 12, 16, 32 |[g), EasyConnection 8/64 (25MHz 80186 CPU; 8 - 64 |[g) Aæ: sales@stallion.com Ü½Í http://www.stallion.com hCoÌXe[^X: Stallion ЪT|[gµÄ¢Ü·B hCoÌüèæ: ftp://ftp.stallion.com/drivers/ata5/Linux ©çü èÅ«Ü·BܽAo[W 1.3.27 È~Ì Linux J[lÉÜÜêÄ ¢Ü·B o System Base EFuTCg: <http://www.sysbas.com/> Comtrol Ð, Cyclades Ð, Digi Ð, Stallion ÐÌ»iÌr [ª Linux Journal Ì 1995 N 6 ÉfÚ³êĢܷB±ÌLÍ http://www.ssc.com/lj/issue14 ÅÇޱƪūܷB 5.6. ¢ÎÌ}`|[g{[h 2000 N 1 1 ú»ÝAȺÌ{[hÍ Linux ÅÌT|[gªSæíêÄ ¢Ü¹ñBóµªÏ»µÄ¢½ç¨mç¹¾³¢B o Aurora (PCI ÅÌÝ) <http://www.auroratech.com> 6. VA|[gÌÝè 6.1. PCI oXÖÌÎÍisÅ· J[l 2.2 ÌVAhCoÍ PCI oXÖÌÁÊÈÎÍüÁĢܹ ñBµ©µAJ[l 2.3 Æ 2.4 ÅÍA¢ÉêÌ PCI VAJ[ h(¨æÑfJ[h)ÉεܷB½Ì PCI J[hÍAhCoÉæ éÁêÈT|[gªKvÅ·BhCoÍJ[hÉfW^IÉi[³êÄ¢ é ID ðÇÝÝA»ÌJ[hÉǤâÁÄηé©( é¢ÍT|[g· é©Ç¤©)ðßÜ·BmÀÉ Windows fÅÍÈ¢Éà©©íç¸®ì µÈ¢ PCI J[hð¨¿Å êÎA»ÌJ[hpÌhCoðìéè¯ ªÅ«Ü·B±êðs¤ÉÍAVAhCoÌeiÅ é Theodore (Ted) Y. Ts'o ³ñÉA·éKvª èÜ·Bµ©µAÜ¸Í Windows fÌêÌTCg <http://www.o2.net/~gromitkc/winmodem.html> ð© ÄAPCI fÆ»êÉÖA·ébèÌÅVîñð²×ľ³¢B ܽATed Ts'o ÉÍ "lspci -vv" ÌoÍÌRs[Æ PCI f(ܽÍV A|[g)ÌfÆ[J[ÉÖ·éÚµ¢îñðdq[ÅéKv ª èÜ·B»¤·êÎAÞÍ®ì·é©àµêÈ¢eXgphCoÌê ðū龯³¦Äêéŵå¤BÉA±ÌhCoðüèµÄRpC µÜ·BJ[lཪÄRpC·é±ÆÉÈéŵå¤B»µÄA± ÌhCoðeXgµÄ¤Ü®ì·é©Ç¤©ð²×A»ÌÊð Ted Ts'o ÉñµÜ·BãLÌèSÄð¿áñÆs¤Âàèª éÈç(»µÄ ±Ì¶ªÅVÅÈç)AÞÉKvÈîñðÁľ³¢B[AhX Í <mailto:tytso@mit.edu> Å·B PCI fÍ ÜèW»³êĢܹñBêÌJ[hÍ PC ÆÌÊMÉ Cðg¢Ü·B8 Ì 16 iAhXª\¦³ê½çA»ÌJ[hÍ ¨»ç Linux ÅÍg¦È¢Åµå¤BêÌJ[hÍAÁêÈû@ðgí 颮 IRQ ªLøÉÈèܹñB"lspci" ÌoÍð©êÎAJ[hªT|[ g³êÄ¢é©Ç¤©ð²×éðɧÂŵå¤B4 Ì I/O |[gª\¦ ³êA·¢AhXª\¦³êȯêÎA»ÌfÍ "setserial" Å I/O |[gÆ IRQ ðÝè·é¾¯Å®ì·éÆv¢Ü·B±Ìû@Å 3COM 3CP5610 PCI f𮩷Ìɬ÷µ½là¢Ü·B 6.2. ÝèÌTv ½ÌêAÝèÍ©®IÉsíêéÌÅA[Uª·é±Æͽà èܹ ñBµ©µêÉæÁÄÍÝèðs¤Kvª èÜ·( é¢ÍPÉÝèðm ©ß龯̱Æà éŵå¤)B±¤¢Á½êÉÅɷ׫±Æ ÍALinux ɨ¯éVA|[gÌÝèÌ 2 Â̪ðmé±ÆÅ·B Å̪(áxÝè)ÍAI/O AhXAIRQA¼O(ttyS2 ÈÇ)ðè Äé±ÆÅ·B±Ì I/O Æ IRQ ÌgÍAn[hEFAÆVAhCo ̼ûÉÝèµÈ¯êÎÈèܹñB±êðÈPÉuI/O Æ IRQ ÌÝèvÆ ÄÔ±Æɵܵå¤Bsetserial ÍhCoðÝè·é½ßÉg¢Ü·B PnP Ì@\âWpÈÇÍn[hEFAÌÝèÉp¢Ü·BÚµÍãqµ Ü·BÝèð·éKvª éÉàÖíç¸Úµ¢±Æªª©ÁĢȯêÎA ·®ÉâèÉoïÁĵܤŵå¤B 2 ÔÚ̪(xÌÝè)ͬx(38.4K rbg/bÈÇ)ÌÝèât[ §äÌIðÈÇÅ·B±ê͵εΠPPP â minicom Æ¢Á½ÊMvO âAgetty (¼Ìlª ȽÌ}VÉOCÅ«éæ¤É|[gãÅ® ìµÜ·)ªs¢Ü·Bµ©µA±¤¢Á½vOÉεÄÍAó]·é ¬xÌÝèðj [âÝèt@CðgÁÄs¤Kvª èÜ·B±Ì xÌÝèÍA stty vOÉæÁÄàs¦Ü·Bstty ÍAâèª éÉ»ÝÌóÔð\¦·éÛÉàð§¿Ü·BÚµÍ ``stty'' ÌÍð² ¾³¢B Linux ªN®·éÉÍA¢Â©ÌVA|[gÌo Æ(áx)ÝèªÝçêÜ·B³mÉǤÈéÌ©ÍA¨g¢Ì BIOS, n[hEFAA Linux fBXgr [VÉæÁÄá¢Ü·BVA |[gª¤Ü®ìµÄ¢éÈçÎA½à·éKvÍ èܹñBAvP [VvOͽ¢Ä¢xÌÝèðsÁÄêÜ·ªAKvÈî ñð^¦ÄâéKvª é©àµêܹñBvO&vCÌVA|[ g(à fÉgÝÜêé±Æª½¢Å·)ÅÍAî͸ÁÆ¡GÉÈè Ü·BáxÌÝè(IRQ Æ I/O AhXÌÝè)ªKvÆÈéêðȺ ɦµÜ·: o 3 ÂÈãÌVA|[gðg¤\èÌê o Vµ¢VA|[g(à fÈÇ)ðCXg[·éê o VA|[gÅâèªN«½ê o[W 2.2 È~ÌJ[lÅÍAèÝ̤Lðg¦ÎáxÌÝ èðsíÈÄà 3 ÂÈãÌVA|[gðg¤±ÆªÅ«Ü·B½¾ µA±êª®ì·éÌÍVA|[gÌn[hEFAªèÝ̤LÉÎ µÄ¢é꾯ŷµA»ÌÝèàVA|[gÌáxÌÝèæè ÈPÆ;¦Ü¹ñB ``2.2 È~ÌJ[lÆèÝ̤L'' ð²¾ ³¢B áxÌÝè(IRQ Æ I/O AhXÌÝè)ÍA(xÌÝèÆä×é Æ) ärIâèðN±µâ·¢æ¤Å·B½ÌêÍ®SÉ©®ÅA½àÝ è·é±ÆªÈ¢ÌÉÅ·B»±ÅA±ÌÍÌåªÍ»Ìbèðµ¢Ü·B VAhCoª³µ¢ IRQ Æ I/O AhXðméÜÅÍA|[gÍS ®ìµÜ¹ñBLinux ÅÍo³¦³êȢŵå¤Bo³ê½ÆµÄàA IRQ ªÔáÁÄ¢êÎA®ìÍÉßÄx¢©àµêܹñB ``±ÌãÈx ¢: eLXgª·²xêÄäÁèæÊÉ\¦³êÜ·'' ð©Ä¾³ ¢B Wintel Ì¢EÅÍAI/O AhXÆ IRQ Íu\[XvÆÄÎêÜ·Bµ½ ªÁÄAäXÍÁèÌ\[XðÝèµÄ¢é±ÆÉÈèÜ·Bµ©µA¼Ì íÞÌu\[Xvª½³ñ éÌÅA±Ì¾tͼÉFXÈÓ¡ð± ÆÉÈèÜ·BKÉÈèÜ·ªAáxÌÝèÍ 2 ÂÌl (IRQ ÔÆ I/O AhX)ð 2 ÂÌêÉÝè·é±ÆÅ·: 1. foCXhCo(½ÌêAN®É "setserial" ðÀsµÄÝèµ Ü·) 2. VA|[gÌn[hEFA»ÌàÌÌWX^ N®(= u[g)bZ[Wð©Ä¾³¢B±êÍÊíͳµ¢Å·Bµ© µâèªN«Ä¢éêÉÍA±êçÌbZ[WÌêªn[hEFA̳ µ¢Ýèð¦µÄ¢È¢(»µÄ³µÈ¢Ævíêé)Â\«ª¢Å·B ``I/O AhXÆ IRQ: N®ÌbZ[W'' ð²¾³¢B 6.3. áxÝèÉÖ·é èÓê½Ôᢠ½ÌlªâÁĵܤêÊIÈÔá¢ð¦µÜ·: o setserial R}h: (autoconfig IvVðt¯¸É) setserial ð ÀsµAn[hEFAà²×çê½Æv¢Þ(ÀÛÉͲ×çêܹñ) o setserial ÌbZ[W: N®ÉæÊÉ\¦³êébZ[Wð©ÄA n[hEFAªÀÛÉÝè³ê½Ê¾ÆÔáÁÄM¶ÄµÜ¤ o /proc/interrupts: VA|[gªgíêĢȢÍA»ÌèÝ Í /proc/interrupts É»íêÈ¢ªA»êð©ÄVA|[gª©Â ©çÈ¢( é¢ÍèݪÝè³êĢȢ)ÆëÁÄM¶ÄµÜ¤ o /proc/ioports: ±Ìt@Cª\¦·éÌÍ setserial ÆÙÚ¯¶(ÂÜ èÔáÁÄ¢éÂ\«Ì é)f[^ŵ©È¢ÌÉA»êªÀÛÌn[h EFAÝè¾Æv¢ñŵܤ 6.4. I/O AhXÆ IRQ: N®ÌbZ[W ½ÌêA|[gÌáxÌÝèÍN®É©®IÉsíêÜ·(µ©µ íɳµ¢ÆÍÀèܹñ)B½ªN«Ä¢é©²×éÉÍAæÊãÌN® bZ[Wð©Üµå¤BLinux ª[h³êéOÉ BIOS ªo·bZ[ W(áͰܹñ)ÌmFàÓçȢž³¢B±Ìæ¤È BIOS ÌbZ [WÌoÍÍ Pause L[ð·ÆêIÉ~ßé±ÆªÅ«Ü·BXN[ µÄ¬êĵÜÁ½bZ[WðߵĩéÉÍAShift-PageUp L[ðg ¢Ü·BShift-PageDown L[ð·Æ½Îü«ÉXN[µÜ·B dmesg R}hðg¦Î¢ÂÅàN®bZ[WÌêð©é±ÆªÅ«Ü·ªAå Ȫª²¯¿Ä¢é±Æàæ èÜ·BN®bZ[WÌá(1999 N ¼ÎÌ_) ðȺɦµÜ·: ttyS00 Í /dev/ttyS0 Ư¶Å é_É ÓµÄ¾³¢B o³ê½à̪ÅÉ\¦³êÜ·(½¾µ IRQ ÍåGcÉèµ½àÌÉ ß¬Ü¹ñ): Serial driver version 4.27 with no serial options enabled ttyS00 at 0x03f8 (irq = 4) is a 16550A ttyS01 at 0x02f8 (irq = 3) is a 16550A ttyS02 at 0x03e8 (irq = 4) is a 16550A Û¶³ê½lªãÅ\¦³êÜ·ªA±êà³µ¢ÆÍÀèܹñ: Loading the saved-state of the serial devices... /dev/ttyS0 at 0x03f8 (irq = 4) is a 16550A /dev/ttyS1 at 0x02f8 (irq = 3) is a 16550A /dev/ttyS2 at 0x03e8 (irq = 5) is a 16550A ¿åÁƵ½sêvª é_Éӵľ³¢BÅÌbZ[WÅÍ IRQ=4 É ttyS2 ª éæ¤É\¦³êĢܷªAñÔÚÌbZ[WÅÍ IRQ=5 ÉÈÁĢܷBÅÌbZ[Wµ©\¦³êÈ¢©àµêܹñB ÙÆñÇÌêÍÅãÉ\¦³êéà̪³µ¢bZ[WÅ·Bµ©µâè ª éêÉÍ´çíµ¢©àµêܹñB±ÌÍÌcèÉ©êÄ¢é±Ì ïµ¢±ÆÌà¾ðÇÞOÉÍAÆè ¦¸VA|[gðgÁÄÝÄA³ µ®ì·é©Ç¤©ð²×éÆæ¢Åµå¤B¿áñÆ®ìµÄ¢éÈç ÎA±ÌæÍÁÉÇÜÈÄà©Ü¢Ü¹ñB 2 ÔÚÌbZ[WÍAN®ÉÀs³êé setserial vOªo͵ Ü·B±ÌbZ[WÍAfoCXhCoª³µ¢ÆvÁÄ¢éÝè𦵠ܷBµ©µA±êàÔáÁÄ¢é±Æª èÜ·Bá¦ÎAn[hEFAÌ IRQ ªÀÛÉÍ IRQ=8 ÉÝè³êÄ¢é±Æà èÜ·(Ç¿çÌbZ[W àÔáÁÄ¢é)BIRQ=5 ª\¦³êéÌÍAN©ªÔáÁÄ»ÌîñðÝè t@CÉüê½½ß( é¢Í±êƯlÌR)©àµêܹñB Linux ªXÔáÁ½ IRQ ðæ¾·éÌÍALinux ª IRQ ÌT¸ðsíÈ¢©çÅ ·B Linux ÍPÉuWvÌ IRQ ð¼è·é©(ÅÌbZ[W)A[U ªsÁ½Ýèð»ÌÜÜg¢Ü·(2ÔÚÌbZ[W)B±Ì¼ÒÍ¢¸ê àA³µ¢ÆÍÀèܹñBVAhCoÌ IRQ ªÔáÁÄ¢éÆAV A|[gÌ®ìªñíÉxÈÁ½èAÜÁ½®ìµÄ¢È¢æ¤É© ¦½èµÜ·B ÅÌbZ[WÍALinux ªVA|[gÌT¸ðsÁ½ÊÅ·ªA IRQ ÌT¸ÍsíêĢܹñB|[gª±±É»íê½êA»Ì|[gÍ ¶ÝµÜ·ªAIRQ ÍÔáÁÄ¢é±Æª èÜ·B Linux ª IRQ Ì`Fb NðsíÈ¢ÌÍAÇÌÝ¿®àøÉÍ`FbNÅ«È¢½ßÅ·B Linux Í IRQ ªæɦµ½lÅ é±Æð¼èµÜ·BȺÈçA±êçªuWIv Èl¾©çÅ·Bsetserial É autoconfig IvVâ auto_irq IvV ðt¯ÄÀs·éÆè®ÅmFðs¦Ü·ªA±êà³µ¢Æ¢¤ÛØÍ èܹñB BIOS ÌbZ[WÉ\¦³êéf[^(ÅÉ\¦³êé)Ín[hEFAÉ Ýè³êÄ¢élÅ·BVA|[gªvO&vCÈçÎA isapnp ð ÀsµÄ±êçÌÝèðϦé±ÆªÅ«Ü·BLinux ªN®µ½ãÉA±ê ÉÖ·ébZ[WðTµÜµå¤BæÌáÉ°çêÄ¢éAÅãÌVA |[gÌbZ[WÍABIOS ÌbZ[WÆêvµÄ¢È¯êÎÈèܹ ñ(±êÍ isapnp ªÏ¦Ä¢é©àµêܹñ)BêvµÈ¢êÉÍA|[ gÌn[hEFAÌÝèðÏX·é©An[hEFAÉÀÛÉÝè³êÄ¢é àeð setserial ðgÁÄhCoɳ¦ÈÄÍÈèܹñB ܽAvO&vCÌVA|[gð¨g¢ÌêÉÍAvO& vC Ì\tgEFAªn[hEFAàÌ IRQ Æ I/O ðÝèµÈ¯êÎA Linux ͱêçðoµÜ¹ñB±êÍA¨IɶݷéVA|[gªN® bZ[WÅ\¦³êÈ¢êÊIÈRÅ·BPC Ìn[hEFA(PnP BIOS) ͱÌæ¤ÈVA|[gÌáxÈÝèð©®IÉs¢Ü·BPnP ÌÝ èÍãÅྵܷB 6.5. VA|[gÌ»ÝÌ I/O AhXÆ IRQ ÌÝèÍ? OÌßÅÍAN®bZ[WðÝé±ÆÉæèÝèð²×éû@ðྵܵ ½BN®bZ[WÅ\ªÈîñª¾çêêÎA±ÌßðÇÞKvÍ èܹ ñBîñª\ªÅȯêÎA±êð²×éû@ª¢Â© èÜ·B uI/O Æ IRQ ÌÝèÍǤÈÁÄ¢éÌ?vÆ¢¤â¢Ö̦ÍÀÛÉÍ 2 Êè èÜ·B1. foCXhCoÉÝè³êÄ¢él(±êÍÊÍ setserial R}hÅÝèÆ\¦ðs¢Ü·)B 2. ÀÛÉn[hEFAÉÝ è³êÄ¢élB¼Òͯ¶lÅȯêÎÈèܹñB¯¶lÅȯêÎâè ªN±èÜ·BȺÈçAhCoª¨IÈVA|[gÉÖµÄÔáÁ ½îñð±ÆÉÈé©çÅ·BÔáÁ½ I/O AhXªhCoÉÝè ³êÄ¢éÆAhCoͶݵȢ|[gÉf[^ðë¤ÆµÜ·B é ¢ÍàÁÆ«¢P[XƵÄÍAVA|[gÅÈ¢ÀÝÌ|[gÉf[^ ðë¤ÆµÜ·BÔáÁ½ IRQ ªhCoÉÝè³êÄ¢éÆAhCo ªVA|[g©çÌèÝT[rXvðó¯æê¸ÉAñíÉx©Á ½èSµÈ©Á½èµÜ·B±ÌêÍA ``±ÌãÈx¢: eLX gª·²xêÄäÁèæÊÉ\¦³êÜ·'' Ìßð²¾³¢Bh CoÉÝè³êÄ¢é UART ÌfªÔáÁÄ¢éêÉàâèªN±èª ¿Å·BI/O-IRQ ÌgªhCoÆn[hEFAů¶©Ç¤©ðm©ßéÉ ÍA±êçÌlªÇÌæ¤ÉÝè³êÄ¢éÌ©ðhCoÆn[hEFAÌ ¼ûÉ¢IJ×ȯêÎÈèܹñB 6.5.1. foCXhCoÌÝèÍ? ±êð²×éÌÍÈPÅ·BPÉN®bZ[Wð©é©A "setserial -g /dev/ttyS*" ðÀs·é¾¯Å·BVA|[gª¤Ü®ìµÄ¢êÎA ±Ì\¦àeªn[hEFAÉàÝè³êÄ¢éŵå¤B±Ìîñð²×é ÊÌû@ƵÄÍA/proc fBNgÉ éut@Cvð©éû@ª è Ü·B±Ìæ¤ÈÊÌû@ðྷédvÈRÍA±êçÍfoCXhC oÉÝè³êÄ¢éîñµ©\¦µÈ¢±ÆÉÓµÄà礽ßÅ·Bê ÌlÍA/proc fBNgÉ éÁèÌt@Cð©ÄA±êªn[hEF AÉÝè³êÄ¢éƨᢵĵܢܷªAuK¸µà»¤ÅÍ èܹ ñvB /proc/ioports ÍAhCoªgÁÄ¢é I/O AhXð\¦µÜ·B /proc/interrupts ÍA»Ý®ìµÄ¢é(foCXðI[vµ½)vZX ÌhCoªgÁÄ¢é IRQ ð\¦µÜ·BãLÌ¢¸êÌêàA\¦³ êéÌÍhCoÌÝèàeÅ èAn[hEFAÌÀÛÌÝèàeÅÍK¸ µà èܹñB/proc/interrupts ÍA»ê¼êÌfoCXÉεÄè ݪ¢Âs³ê½Ì©à\¦µÜ·(çÂ̱Æàæ èÜ·)B±Ì îñ©çâèðÌ誩èð©ޱƪūܷBȺÈçAåÊÌè ݪs³êÄ¢êÎA»ÌèÝðgÁÄ¢én[hEFAªÇ±©É éÆ¢¤±Æ¾©çÅ·Bèݪµµ©\¦³êÈ¢±ÆÍÉA» ÌèݪÀÛÉÍÇÌVA|[gÉæÁÄà¨Iɶ¬³êÄ¢È ¢±ÆðÓ¡µÜ·Bµ½ªÁÄAg¨¤ÆµÄ¢éVA|[gÉ뵀 ÙÆñÇèݪs³êĢȯêÎAn[hEFAÉÍèݪÝè ³êĢȢ©àµê¸AÂÜèhCoªÔáÁ½èÝðgÁÄ¢éÆ ¢¤±Æ©àµêܹñB»ÝÀsÌ("minicom" Ìæ¤È)vOð `FbN·é½ßÉ /proc/interrupts ð©éÉÍA±Ìt@Cð©Ä¢é Ô͸ÁÆvOðÀsµ±¯éKvª èÜ·B±êðs¤ÉÍAv OðI¹¹¸ÉVFÉsÁÄÝܵå¤B 6.5.2. VA|[gÌn[hEFAÌÝèÍ? foCXÌn[hEFAÉÀÛÉÇÌ I/O AhXÆ IRQ ªÝè³êÄ¢é Ì©ð²×éÉÍǤ·ê΢¢Ìŵ天? Linux ªN®ðnßéOÉA ൩·éÆ BIOS ÌbZ[Wª éöxÌîñð³¦Äêé©àµêÜ ¹ñB Shift-PageUp L[ðgÁÄN®bZ[WÌ\¦ðßµABIOS ªo µ½êÔÅÌbZ[Wð©Üµå¤B±êÍ Linux ªN®·éOÌÝè Å·B setserial ͱÌÝèðϦé±ÆÍūܹñªAisapnp â pciutils ÍÝèðϦçêÜ·B åGcÈû@ÌêÂƵÄA"autoconfig" IvVðt¯Ä setserial É oðsí¹ÄÝéû@ª èÜ·B±Ìû@ÅÍAoðs¤AhXð è·éKvª èÜ·B``setserial Æͽ©?'' ð©Ä¾³¢BPCI V A|[gÌêÉÍA"lspci" R}hðgÁľ³¢(2.2 æèOÌ J[lÌêÍ /proc/pci ð©Ä¾³¢)B¨g¢ÌVA|[gªv O&vCÈçÎAÈºÌ 2 ÂÌßð©Ä¾³¢B WpÅÝèµ½|[gÌêÍA±êÍWpÅÝèµ½àeÅ·B| [gªvO&vC(PnP)ÅÍÈ¢¯êÇ DOS vOðgÁÄÝè³ê Ä¢éêÉÍA»ÌvOðÀsµ½lªÝèµ½æ¤ÉÝè³êÄ¢ Ü·B 6.5.3. PnP VA|[gÌn[hEFAÌÝèÍ? PnP VA|[gÍAd¹ªØçê½ÉÝèðn[hEFAÉÛ¶µÜ¹ ñB±êÍAd¹ðØÁÄàÝèªÏíçÈ¢Wp(ñ PnP)ÆÎÆIÅ ·BISA PnP VA|[gð¨g¢Å êÎAVA|[gªS I/O AhXâ IRQ ð½¸AÀãg¦È¢óÔÉÈéÂ\«ª èÜ·B± ÌêÅàܾApnpdump ðgÁÄ»ÌVA|[gð©Â¯é±ÆªÂ\ È͸ŷB ISA oXÅÌvO&vCÌêApnpdump (isapnptools ÉÜÜêÄ¢Ü ·)ð·Ææ¢Åµå¤B--dumpregs IvVðg¤ÆA|[gÉÝè³ êÄ¢éÀÛÌ I/O AhXÆ IRQ ª\¦³êé͸ŷB pnpdump ª uµ½vAhXÍfoCXÌ I/O AhXÅÍÈAÁêÈàÌÅ·B PnP |[gÌêÍADOS/Windows ÅÌÝèàeð²×Äà Üèðɧ¿Ü ¹ñBWindows ÍÝèîñðWXgÉÛ¶µÜ·ªA±êÍ Linux ÅÍ gíêܹñBBIOS Ìsö«Éà Windows ÌîñªL¯³êÄ¢é ±Æà èÜ·ªAWXgàÉ é Windows Ì»ÝÌÝèÆͯúªæ êĢȢ±Æª èÜ·(??)BLinux ÌN®É PnP BIOS É©®Ýè𳠹ĢéÌÈçÎ(»µÄ Linux ðN®·éÛÉÍAPnP Iy[eBOV XeÅ颮 BIOS ðÝèµÄ¢éÈçÎ)ALinux Í BIOS Ìsö« àÌÝèðg¤Í¸Å·B 6.6. VAÌ IRQ ÌIð OS © PnP BIOS ªSÄÌfoCXðÝè·éÆ¢¤{¨ÌvO&vCÝè ðsÁÄ¢éÈçÎAIRQ ðIÔ±ÆÍ èܹñBPnP ÍÅàÇ¢Ævíê éèÄðIñűêðÝèµÜ·Bµ©µALinux ÅvO &vCpÌ c[(isapnp Æ pcitools)ðgÁÄ¢éêÉÍAIRQ ÌIððs¤Kvª èÜ·Bg¢½¢ IRQ ðùÉmÁÄ¢éêÉÍA±ÌßðòεÄ੠ܢܹñªAIRQ 0 Ìg¢ûªÁêÅ é±Æ¾¯ÍmÁĨ¢Ä¾³ ¢(ÌiðÇñž³¢)B 6.6.1. IRQ 0 Í IRQ ÅÍÈ¢ IRQ 0 ÍÀÛÉÍ(n[hEFAÅÍ)^C}Å·ªAsetserial ðgÁ½V A|[gÌÝèɨ¢ÄÍÁêÈÓ¡ðÁĢܷB±ÌwèÍA»Ì| [gÉÍèݪȢ±ÆðhCoÉ`¦AhCoÍ|[OðgÁ ½®ìðs¢Ü·B|[OÍñíÉø¦ª«¢ÌÅ·ªAèݪÕË µ½êâAèÝÌÝè~Xª Á½êÉÍ·Ææ¢Åµå¤B IRQ 0 ðÝè·é_ÍAn[hEFAÉÝè³êÄ¢éèÝÔðméKv ªÈ¢_Å·BIRQ 0 ÍAÀÛÉg¦éèݪ©Â©éÜÅÌ}êðµÌ ®½ß¾¯Ég¤×«Å·B 6.6.2. èÝ̤LÆo[W 2.2 È~ÌJ[l êÊIÈK¥ÅÍASÄÌfoCXªÅLÌ IRQ ð¿AIRQ ̤Lðsí È¢±ÆÉÈÁĢܷBµ©µåïÌ}`|[gðg¤êÌæ¤ÉA IRQ ̤Lª³êÄ¢éêà èÜ·B½¾µA¤Lª³êÄ¢éƵ ÄàAø¦ÍÇÈ¢©àµêܹñBÆ¢¤ÌàA¤L³êÄ¢éèÝ ª^¦çêéxÉADZÅèݪs³ê½Ì©ð²×ȯêÎÈçÈ¢ ©çÅ·Bµ½ªÁÄAÂ\Å êÎASÄÌfoCXÉÅLÌèÝð^ ¦éÆ¢¢Åµå¤B o[W 2.2 æèOÌJ[lÅÍAIRQ ÍÙÆñÇÌ}`|[g{[ h¯m¾¯Åµ©¤Lūܹñŵ½Bo[W 2.2 È~ÌJ[l ÍAêÉæÁÄÍSÄÌVA|[gÅ IRQ ð¤LÅ«Ü·Bo[W 2.2 ÌJ[lŤLð®ì³¹éÉÍACONFIG_SERIAL_SHARE_IRQ ðÝ èµÄJ[lðRpCµÈ¯êÎÈèܹñBܽAVA|[gÌ n[hEFAà¤LÉεĢȯêÎÈèܹñ(εĢêÎA2  ÌVAJ[hª 1 ÂÌèÝüÉÙÈéd³ð¬µÄàAu±êª èÝÅ·vÆ¢¤Ó¡Ìd³µ©ó¯æçêܹñ)BæÁÄo[W 2.2 ÌJ[lÅ ÁÄàAèÝ̤L͵ȢûªÇ¢©àµêܹ ñB 6.6.3. ÇÌ IRQ ðIÔ©? VA|[gÌn[hEFAÉÍAÀçê½ IRQ µ©ÝèÅ«È¢±Æª æ èÜ·Bµ©µ IRQ ªÕË·éÌàŵå¤Bµ½ªÁÄAIðÌ ]nÍ Üè èܹñBPC ÅÍÊAttyS0 Æ ttyS2 ª IRQ4 ÉAttyS1 Æ ttyS3 ª IRQ 3 É èÜ·B /proc/interrupts ð©êÎA»Ý®ìÌ vOªgÁÄ¢é IRQ ªÇê©í©èÜ·B±Ìæ¤È IRQ ÍgíÈ ¢ûª¢¢Åµå¤BIRQ 5 ªTEhJ[hÉgíêéæ¤ÉÈéOÉÍA VA|[gÅàægíêĢܵ½B ȺÉAGreg (Serial-HOWTO ̳XÌÒ)ªÇÌæ¤É /etc/rc.d/rc.serial ðÝèµÄ¢é©ð¦µÜ·Brc.serial ÍN®ÉÀ s³êét@C(VFXNvg)Å·(êâ¼OÍᤱƪ èÜ ·)Bo[W 2.15 æèãÌ "setserial" ÅÍAK¸µà±Ìæ¤ÉÝè ªsíêéí¯ÅÍ èܹñªA±êÍ IRQ ÌIðÌáÉàÈèÜ·B /sbin/setserial /dev/ttyS0 irq 3 # VA}EX /sbin/setserial /dev/ttyS1 irq 4 # Wyse »Ì_[ /sbin/setserial /dev/ttyS2 irq 5 # Zoom »Ìf /sbin/setserial /dev/ttyS3 irq 9 # US Robotics »Ìf WÌ IRQ èÄð¦µÜ·: IRQ 0 ^C}`l 0 (uèݳµvðÓ¡·é±Æà èÜ·BÚµÍãqµÜ·) IRQ 1 L[{[h IRQ 2 Rg[ 2 ÖÌJXP[h IRQ 3 VA|[g 2 IRQ 4 VA|[g 1 IRQ 5 p|[g 2, TEhJ[h IRQ 6 tbs[fBXN IRQ 7 p|[g 1 IRQ 8 A^CNbN IRQ 9 IRQ2 É_CNg IRQ 10 èijµ IRQ 11 èijµ IRQ 12 èijµ IRQ 13 lRvZbT IRQ 14 n[hfBXNRg[ 1 IRQ 15 n[hfBXNRg[ 2 èÝðIÔ½ßÌèIÈû@Í èܹñBèÝð}U[{[h âA¼Ì{[hªgÁĢȢ±Æðm©ß鵩 èܹñB2, 3, 4, 5, 7, 10, 11, 12, 15 ðIԱƪūܷBIRQ 2 Æ 9 ͯ¶Å é±ÆÉ ÓµÄ¾³¢BIRQ 2 Æ 9 ÌÇ¿çðgÁÄàAVAhCoͱ êð¤ÜF¯µÜ·BñíÉâVA{[hð¨g¢ÌêÉÍA8 È ãÌ IRQ Íg¦È¢©àµêܹñB IRQ 1, 6, 8, 13, 14 ÍgíȢž³¢! ±êçÌ IRQ Í}U[{[h ªg¤©çÅ·B}U[{[hªgÁÄ¢é IRQ ðæèã°éÆAÆÄàß µ¢±ÆÉÈèÜ·BÝèªIíÁ½çAèÝðg¤vOðÀs· éÉ /proc/interrupts ðÄmFµAIRQ ÌÕ˪N±ÁĢȢ±Æðm ©ßľ³¢B 6.7. AhXÌIð --ttyS3 ÆÕË·érfIJ[h IBM 8514 rfIJ[h(Æ»ÌÞi)Ì I/O AhXÍA·Æ±ëÅÍ 0x?2e8 Å·(? Í 2, 4, 8, 9 Ì¢¸ê©)B16 ilÌæªÌ 0 Å é ð VA|[gª³·éêÉÍ(½ÌêÍ»¤Å·)A±êÍ 0x02e8 É é ttyS3 ÆÕË·é©àµêܹñ(µ©µAVA|[gª¤ÜÝ v³êÄ¢êÎÕ˵Ȣ͸ŷ)B±ÌAhXÅ ttyS3 ðg¨¤ÆµÄ ¢éêÉÍA±êÍ«¢mç¹Å·B ÙÆñÇÌêÍAÂ\Å êÎftHgÌAhXðg¤×«Å·B±± ž¤AhXÍA8 oCgÌÍÍÌÅÌAhXð\µÄ¢Ü·BᦠÎA 3f8 ÍÀÛÉÍ 3f8-3ff ÌÍÍÅ·B»ê¼êÌVAfoCX Í(I/O AhXðKvÆ·é¼Ì^CvÌfoCXƯ¶)ÅLÌAhX ÍÍðKvƵܷB±êÍdÈÁÄÍ(Õ˵ÄÍ)¢¯Ü¹ñBVA| [gÌftHgÌAhXðȺɦµÜ·: ttyS0 ÌAhX 0x3f8 ttyS1 ÌAhX 0x2f8 ttyS2 ÌAhX 0x3e8 ttyS3 ÌAhX 0x2e8 6.8. I/O AhXÆ IRQ Ìn[hEFAÖÌÝè (åÉ PnP ü¯) I/O AhXÆ IRQ ðn[hEFAÉÝèµ½ãÉÍAsetserial ðgÁÄ hCoðÝè·é±ÆàYêȢž³¢Bñ PnP ÌVA|[gÌ êÉÍA|[gÌn[hEFAÌÝèÍWp©A("WpX"Ìê ÉÍ)Ýèðs¤½ßÌ DOS vOÌÀsÉæÁÄs¢Ü·(±Ìv OÅ PnP ª³øÉÈé©àµêܹñ)BPnP VA|[gðÝè·é ÛÉl¦çêéû@ÌXgðȺɦµÜ·: o PnP BIOS Ì CMOS Ýèj [ðg¤(ÊÍ ttyS0 (Com1) Æ ttyS1 (Com2) É éOt¯foCX¾¯Ég¢Ü·) o PnP BIOS É PnP VA|[gð©®IÉÝè³¹éB ``PnP BIOS ð gÁ½ I/O AhXÆ IRQ ÌÝè'' ðQƵľ³¢ o PnP VA|[gÆ PnP ÎÌ Linux ðgÁÄ¢éÈçνàµÈ ĩܢܹñ(Plug-and-Play-HOWTO ðQÆ) o PCI ÅÈ¢ PnP VA|[gÌêÉÍ isapnp ðp¢é o PCI oXÌêÉÍ pciutils (pcitools) ðp¢é I/O AhXÆ IRQ Íd¹ðüêéxÉ(PnP ðgÁÄ)VA|[gÌ WX^ÉÝèµÈ¯êÎÈèܹñBÆ¢¤ÌàAPnP n[hEFAÍd¹ª Øçê½ÌÝèàeðo¦Ä¢È¢©çÅ·B±êðs¤ÈPÈû@Í PnP OS ðgÁÄ¢È¢Æ PnP BIOS ɳ¦Äâé±ÆÅA»¤·éÆN®ÌxÉ BIOS ª©®IÉÝèðs¢Ü·B½¾µA(PnP OS Å é)Windows ðuPnP OS ÅÍÈ¢vÆ BIOS ÉF¯³¹½ÜÜ Windows ðN®·éÆAWindows ¤ Åâ誶·é©àµêܹñBÚµÍ Plug-and-Play-HOWTO ð² ¾³¢B vO&vCÍ I/O Æ IRQ ÌÝèð©®»·é½ßÉÝv³êܵ½Bµ ©µ»_Ì Linux ÅÍAbðââ±µµÄ¢é¾¯Å·BWÌ Linux J[lÍvO&vCð Üè¤ÜT|[gµÄ¢Ü¹ñB Linux J[ lðvO&vC OS É·épb`ðgÁÄ¢éÈçÎAãḺÆÍS Ä OS ª©®IÉÅ«é͸ŷBµ©µAVA|[gÈOÌfoC XÌÝèð©®»·é½ßɱÌpb`ðgÁ½ÆµÄàAè®ÅhCoÌ ÝèðµÈ¯êÎÈçÈ¢©àµêܹñBÆ¢¤ÌàALinux ÌhCoÌ ½Í PnP ÎÌ Linux ü¯É©êĢȢ©çÅ·Bisapnptools â BIOS ðgÁÄvO&vCÌÝèðsÁÄ¢éÈçÎA±êÍ 2 ÂÌlð fJ[hÌVA|[gªÌWX^ÉÝè·é¾¯ÈÌ ÅAsetserial ÌÝèÍ[Uªs¤Kvª éŵå¤B1999 NßÌ _ÅÍA±êçÌÝèÍÈPÅà èܹñµAÚµ¢¶à èܹñB Plug-and-Play-HOWTO Æ isapnptools FAQ ð²¾³¢B 6.8.1. PnP BIOS ðgÁ½ I/O AhXÆ IRQ ÌÝè PnP OS â isapnp ðgÁÄ I/O Æ IRQ ÌÝèðs¤û@Ìà¾Í»êçÌ \tgEFAÉt¢Äé͸ŷªAPnP BIOS É»¤¢Á½Ýèð³¹æ ¤ÆvÁÄ¢éêÉÍ»¤Í¢«Ü¹ñBSÄÌ PnP BIOS ª±êðs¦é í¯ÅÍ èܹñBBIOS ÉÍÊAÅÌ 2 ÂÌVA|[gðÝè· é½ßÌ CMOS j [ª èÜ·B±Ìj [ͩ¯ɢ©àµêÜ ¹ñªAAward »Ì BIOS ÈçÎ "chipset features setup" ÌºÉ èÜ ·B½ÌêA±±ÅÍÙÆñǽàI×ܹñB¼Ìà̪j [ÉÈ ¯êÎAÅÌ 2 ÂÌVA|[gÉÍWÌ I/O AhXÆ IRQ ªÝ è³êÜ·B``VA|[gfoCX̼OÆÔ''ð²¾³¢B DÞÆDÜ´éÆÉÖíç¸APC ðN®·éÆ PnP BIOS ª PnP Éæén[ hEFAfoCXÌ(I/O Æ IRQ Ì)ÝèðnßÜ·BPnP BIOS ªs¤ª s\ªÅAcèÌÝèª(ÇÒÌF³ñª¨»çÁĢȢ) PnP OS Éc ³êé©àµêܹñB é¢Í PnP OS ðÁĢȢÆÝè³êÄ¢éê ÉÍASÄÌ PnP foCXð®SÉÝè·é©àµêܹñªAfoCX hCoÌÝèÍs¢Ü¹ñB±êÍÇÒÌF³ñª]Þ®ìÅ·ªAPnP BIOS ªsÁ½Ýèð³mɲ×é±ÆÍK¸µàeÕÅÍ èܹñB PnP OS ðÁĢȢ±Æð BIOS ÉÝèµÄ êÎAPnP BIOS ÍÅÌ 2 ¾¯ÅÈSÄÌ PnP VA|[gÌÝèðs¤Í¸Å·B BIOS Ì® ìðÔÚIɧä·éû@Í(ൠMS Windows9x 𯶠PC ÅgÁÄ¢ê Î)AWindows ɨ¯éÝèðu§v·é±ÆÅ·B Plug-and-Play-HOWTO ðuforcedvÅõµÄ¾³¢BWindows ãÅu§vµ½Ýèð CMOS BIOS j [ðgÁÄã«·éÌÍÈPÅ·B±Ìuã«v@\ÌÝ èEðªs¦é BIOS IvVª éÆv¢Ü·B Vµ¢ PnP foCXªÇÁ³êéÆABIOS Í PnP ÝèðÏXµÄ²®ðs íȯêÎÈèܹñBÕËðð¯éKvª¶¶êÎAù¶ÌfoCXÌ I/O Æ IRQ ÌÝèªÏíé±Æà èÜ·B±ÌÚI̽ßAñ PnP foCXÌ I/O Æ IRQ ðÇÌæ¤ÉÝèµÄ¢éÌ©ð BIOS ɳ¦Ä êÎABIOS Í ñ PnP foCXÌXgðÛ¶µÄ¢Ü·B±êð BIOS ɳ¦éû@Ìê ÂÍADOS/Windows ãÅ ICU ÆÄÎêévOðÀs·é±ÆÅ·B µ©µA±ÌîñÅfoCXhCoðÝè·é½ßÉABIOS ªsÁ½Ýè ð²×éÉÍǤ·êÎæ¢Åµå¤©? BIOS ©gà éöxÌîñðoµ Ü·B±êÍÝèj [âARs [^ÌN®ÉæÊÉ»íêébZ [WðʶľçêÜ·B ``VA|[gÌn[hEFAÌÝèÍ?'' ð ²¾³¢B 6.9. IRQ Æ I/O AhXð setserial É^¦é ¢Á½ñn[hEFAÌ IRQ Æ I/O AhXðÝèµ½ç( é¢Í PnP Å èÄçêéæ¤Éµ½ç)A¡xÍ Linux ªN®³êéxÉ "setserial" R}hªÀs³êéæ¤É·éKvª èÜ·B ``N®ÌÝè''Ìßð ²¾³¢B 6.10. xÌÝè: stty ÈÇ ´¥ÆµÄÍAAvP[VvOªÝèÌåª( é¢ÍSÄ)ð s¢Ü·B±êðs¤R}hÍ stty Å·B ``stty'' ð²¾³¢B 6.10.1. t[§äÌÝè: n[hEFAt[§äªxXgÅ· ðàª``t[§ä''É éÌÅA»¿çಾ³¢BÊÍ Xon/Xoff ðgÁ½\tgEFAt[§äæèàn[hEFAt[§äðg¤ûª¢ ¢Åµå¤B®SÈn[hEFAt[§äðp¢éÉÍÊAVA|[ gÆfoCXðÚ±·éP[uàÉt[§äpÌüª 2 {KvÅ·Bf oCXªJ[hãÉ éÈçÎAmÀÉn[hEFAt[§äªg¦é͸ Å·B ½ÌAvP[V(Æ getty vO)ÉÍAt[§äÉÖ·éI vVª èAKvɶÄÝèÅ«Ü·BftHgÅn[hEFAt [§äðÝè·é±ÆàÅ«Ü·BIRQ Æ I/O AhXÌæ¤ÉAt[§ äàVAhCoÆVA|[gÉÚ±³êÄ¢én[hEFA̼û ÉÝèµÈ¯êÎÈèܹñBn[hEFAÌÝèû@ÍAn[hEFAÉ æÁÄÙÈèÜ·B½ÌêÍAPC ©çVA|[goRÅn[hEF AfoCXÉéÁèÌuú»¶ñvª èÜ·BfÌêÍAÊM vOͼûÌÝèðs¤Í¸Å·B ¨g¢ÌvOªVAhCoÌt[§äðÝèµÈ¢êÉÍA stty R}hðgÁÄ©ªÅÝèÅ«Ü·BhCoÍ Linux ªâ~µ½ ÌÝèðo¦Ä¢È¢ÌÅAN®âOCÉÀs³êét@C(VF ª bash ÌêÉÍ /etc/profile ÈÇ)É stty R}hðüêÄ¨Æ æ¢Åµå¤BȺÉ|[g ttyS2 Ån[hEFAt[§äðs¤½ßÉ ÇÁ·éàeð¦µÜ·: stty crtscts < /dev/ttyS2 stty Ìo[Wª 1.17 ÈãÌêÍ: stty -F /dev/ttyS2 crtscts crtscts ÍAVA|[gÌ RTS Æ CTS sðgÁÄn[hEFAt[ §äðs¤ÝèÌwèð\µÜ·BO̶Ìå¶ð crtscts ÆÔèÜ·B 7. VA|[gfoCX: /dev/ttyS2 foCXfBNgÉfoCXð쬷éû@É¢ÄÍ ``/dev fBN gɨ¯éfoCXÌì¬û@'' ð²¾³¢B 7.1. VA|[gfoCX̼OÆÔ Linux ÌfoCXÍW[ÔÆ}Ci[ÔðÁĢܷBVA| [gÍ»ê¼êA/dev fBNgÅ 2 Â̼OðÂÂ\«ª èÜ·B ·Èí¿ ttyS Æ cua Å·B±êçÌhCo͵ÙÈÁ½®ìðµÜ ·Bcua foCXÍgíÈ¢±Æª©ßçêĨèA«ÍgíêÈÈèÜ ·BModem-HOWTO Ìucua foCXvÌÍð²¾³¢B DOS/Windows Í COM Æ¢¤¼Oðg¢Ü·ªAsetserial vOÅÍ tty00, tty01 Æ¢Á½¼Oðg¢Ü·B±êçð dev/tty0, dev/tty1 Æ ¬¯µÈ¢Å¾³¢Bdev/tty0 ÍR\[foCX(PC Ìj^)̼ OÅ èAVA|[gÅÍ èܹñBȺÌ\ÍAhXÌuWI ÈvÎð¦µÜ·(ÇÒÌF³ñÌêÍÙÈé©àµêܹñ)B I/O DOS W[ }Ci[ W[ }Ci[ AhX COM1 /dev/ttyS0 4, 64; /dev/cua0 5, 64 3F8 COM2 /dev/ttyS1 4, 65; /dev/cua1 5, 65 2F8 COM3 /dev/ttyS2 4, 66; /dev/cua2 5, 66 3E8 COM4 /dev/ttyS3 4, 67; /dev/cua3 5, 67 2E8 SÄÌfBXgr [VÉ ttyS foCXªt¢Ä¢é͸(½Ì fBXgr [VÉÍâ cua foCXà é͸)Å é_ÉÓµ ľ³¢B±êÍȺÌR}hðÀs·êÎm©ßçêÜ·(â cua f oCXªÈÄàSz·éKvÍ èܹñ): linux% ls -l /dev/cua* linux% ls -l /dev/ttyS* 7.2. ttySN ©ç /dev/modem ÉNð£é׫©Ç¤© êÌCXg[Í 2 ÂÌÇÁfoCXðìèÜ·B·Èí¿fpÌ /dev/modem Æ}EXpÌ /dev/mouse Å·BÇ¿çà /dev fBNgÉ éKØÈfoCXÖÌV{bNNÅ·B±ÌNæÌfoCXÍ CXg[ÉIð³êĢܷ (½¾µoX}EXÌêͱÌÀèÅÍ ÈA/dev/mouse ÍoX}EXÌfoCXÖÌNÆÈèÜ·)B /dev/mouse Æ /dev/modem Ì_É¢ÄÍAßɽxàc_ª èܵ ½B±êçÌNÌgpͨ©ßūܹñBÁÉAfð_CAC pÉg¨¤Æl¦Ä¢éêÉÍA /dev/modem ðp¢éÆbNt@Cª ³µ®ìµÈ¢±Æª èAâèªN«é©àµêܹñBµ©µAN ð£è¼µ½èíµ½êÉÍAêÌAvP[VÍÄÝèªKvÉ Èé©àµêܹñB 7.3. }`|[g{[hÉÖ·éÓ {[hÌ AhXÆ IRQ É¢ÄÍAsetserial vOÉt®µÄ¢é rc.serial â /etc/rc.boot/0setserial ð©Ä¾³¢B}`|[g{[ hÉ¢ÄÍ I/O AhXâfoCX¼ðÜÞש¢bª½³ñ èÜ ·B 7.4. /dev fBNgɨ¯éfoCXÌì¬û@ foCXª¶ÝµÈ¯êÎAmknod R}hðgÁıêð쬵ȯêÎÈ çȢŵå¤Bá¦Î ttyS0 ÉηéfoCXð쬷éKvª éƵ Ü·: linux# mknod -m 666 /dev/cua0 c 5 64 (cua foCXÍùÉßÌàÌÅ·) linux# mknod -m 666 /dev/ttyS0 c 4 64 MAKEDEV XNvgðg¤±ÆàÅ«Ü·B±ÌXNvgÍ /dev fBN gÉ èÜ·B}j Ay[Wð©Ä¾³¢B±ÌXNvgðg¤ ÆAfoCXðÈPÉì¬Å«Ü·Bá¦Î ttyS0 ÉηéfoCXðì éKvª éêÉÍAȺÌR}hðÀsµÜ·: linux# cd /dev linux# ./MAKEDEV ttyS0 ±ÌXNvgÍfoCXÌì¬Æ³µ¢p[~bVÌÝèðs¢Ü ·B 8. mÁĨÆæ¢ÖÈvO getty ÉÖ·éîñÌÙÆñÇÍ Modem-HOWTO ÉÚ®µÜµ½B[É¼Ú Ú±·é getty Ìgp@ÉÖ·éîñª Text-Terminal-HOWTO ɵ©ê ĢܷB 8.1. VA|[gÌÄ/ffpÌvO eíf§äüðĵA±êª³(1 ܽÍÎ)Å é©(0 ܽÍÔ) Å é©ð¦·vOª¢Â© èÜ·B o modemstat (Linux Ì PC R\[ãŵ©³µ®ìµÜ¹ñB¬³¢ EBhEÅóÔð\¦µÜ·BFt«Å·µARpNgÅ·BI¹· éÉÍ kill µÈ¯êÎÈèܹñ) o statserial (æÊSÌðgÁÄîñð\¦µÜ·) o serialmon (RTS, CTS, DSR ÌÄÍs¢Ü¹ñªA¼Ì@\ÌOðcµ Ü·) ±êçÌvO̢©ÍùÉg¦éæ¤ÉÈÁÄ¢é©àµêÜ ¹ñB»¤ÅÈ¢êÉÍAVAp\tgEFA <http://metalab.unc.edu/pub/Linux/system/serial/> ©çüèµÄ¾ ³¢B1998 N 6 Ì_ÅÍAMÒÍ Linux pÌVA|[gÄv OðmèܹñB 8.2. èÝÌDæxÌÏX o irqtune ÍVA|[gÌèÝÌDæxðµAø¦ðüã³¹ Ü·B o n[hfBXNÌ` [jOðs¤ hdparm ª êγçÉÖÅµå ¤B 8.3. setserial Æͽ©? ±ÌßÍ 3 ÂÌ HOWTO(Modem, Serial, Text-Terminal)ÉüÁĢܷB HOWTO ÉæÁÄàeª½ÙÈèÜ·B 8.3.1. ͶßÉ bvgbv@(PCMCIA)ÅÍâÎÉ setserial ðgíȢž³¢B setserial ÍAVA|[gÌ I/O AhXâ|[gÌn[hEFAÉÝ è³êÄ¢éèÝ(IRQ)AgpµÄ¢é UART ÌíÞðfoCXhC oÌ\tgEFAÉ`¦çêéæ¤É·évOÅ·B±ÌvO ÍA»ÝhCoÉÝè³êÄ¢éàeÌ\¦às¢Ü·BÁ¦ÄAn[h EFAðT¸µÄ UART ÌíÞâ IRQ ð²×³¹é±ÆàÅ«Ü·ªA±ê É͵µ¢§Àª èÜ·B ``T¸''Ìßð©Ä¾³¢B setserial Í PnP VA|[gÌn[hEFAÌ IRQ ðÝèÅ«È¢_É ¾³¢B gÝÝÌVA|[gª 1 © 2 µ©È¯êÎAÊÍ setserial ðgíÈÄà³µÝè³êÜ·BVA|[gª±êÈã éê(Ü ½ÍVA|[gÉâèª éê)ÉÍAsetserial ðg¤Kvª éÅ µå¤B setserial Ì}j Ay[WÈOÉàA /usr/doc/setserial.../ â /usr/share/doc/setserial Ìîñð²×ľ³¢B¨g¢Ì Linux fBXgr [VÅÌ setserial ̵¢ª©êÄ¢é͸ŷB setserial ÍhCoÉ IRQ ðèÄé½ßÉA½ÌêÍN®É N®XNvgª©®IÉÀsµÜ·B setserial Í serial W [ª [h³êÄ¢éê(ܽͯÌ@\ªJ[l\zÉgÝÜêÄ¢ éê)ɵ©®ìµÜ¹ñB (½ç©ÌRÅ)serial W [ðã©ç A[h·éÆAJ[lÍÈOÉ setserial ÅsÁ½ÝèðYêÜ·B µ½ªÁÄAÝèð³Éß·½ßÉÍ setserial ðÄÑÀsµÈ¯êÎÈè ܹñBN®XNvgoRÅÌÀsÉÁ¦Aserial W [(ÈÇ)ª [h³ê½ÉÍ setserial ɽ½ç©ÌvOàÀs³êÜ·Bµ ½ªÁÄAæÊãÅN®bZ[Wð©éÉ setserial ª 2 xÀs³ê½ æ¤É©¦é©àµêܹñªAÀÛÉ 2 xÀs³êÄ¢éÌÅ·B setserial ðgÁÄA|[gªN[Y³ê½ãɮ쵱¯éÔðÝè· é±ÆªÅ«Ü·(±êÍAC RAM ãÌobt@ÉܾcÁÄ¢é¶ð SÄoͳ¹é½ßÅ·)B±ÌÝèÍ{[[gªx¢(1200 Ⱥ)êÉÍ KvÅ·Bܽut[§ävÉæéEFCgª½©©éêÉÍA¬xª ¬ÄàKvÆÈèÜ·B}j Ay[WÌ "closing_wait" ð©Ä¾³ ¢B setserial ÍAVA|[gÌn[hEFA»ÌàÌÌ IRQ â I/O Ah XÌÝèÍs¢Ü¹ñBn[hEFAÌÝèÍAWpܽÍvO &v CÅs¢Ü·Bsetserial ÉÍAn[hEFAÉùÉÝè³êÄ¢éÌƯ¶ lðwèµÈ¯êÎÈèܹñBg¦éÆv¤AhXðèÉÅÁ¿ ° ÄA»êð setserial ɳ¦ÄÍ¢¯Ü¹ñBµ©µAI/O AhXªª ©ÁÄ¢é¯êÇ IRQ ªª©çÈ¢êÉÍAsetserial É IRQ ð²×éæ ¤Éw¦·é±ÆàÅ«Ü·B gpÂ\ÈR}hÌêÍAPÉø«³µÅ setserial ðÀs·êÎ\ ¦³êÜ·B±ÌR}hÍAguÌÛÉÊg¤Ú×\¦IvV Å é -v Ìæ¤È 1 ¶IvVÍ\¦Å«Ü¹ñB setserial ÅÍ I/O AhX̱Æðu|[gvÆÄÔ_Éӵľ³¢B setserial -g /dev/ttyS* ðÀs·éÆA»Ì|[gÉÖ·éfoCXhCoÌÝèóµª\¦³êÜ ·BÚµ¢îñð\¦³¹éÉÍ "-g" IvVÉ "-a" ðÇÁµÜ·B½ ¾µAÙÆñÇÌlͱÌÇÁÌîñðµ¤( é¢Íð·é)KvÍ èÜ ¹ñBȺÈçÊÍftHgÌÝèÅ\ª¾©çÅ·BÊÌêÍAn [hEFAÍ "setserial" ªñ·éÌƯ¶ÝèÉÈÁĢܷªAâè ª éêÉÍA"setserial" ªÔáÁÄ¢éÂ\«ª¢Åµå¤BÀ ÛAsetserial ðÀsµÄSRÌ I/O |[gAhXâ IRQ, UART ðÝè ·é±ÆªÅ«Ü·B»êÈ~É "setserial ..." ðÀs·éÆA±ÌRÌ lªG[bZ[WàȵÉ\¦³êÜ·Bà¿ëñA±Ìæ¤ÈÔáÁ½ lÅÍVA|[ghCoÍ(®ÆµÄà)³µ®ìµÜ¹ñB setserial ÉæéÝèÍ PC Ìd¹ðØéÆÁ¦Ü·ªAPC Ìd¹ðÄÑü ê½ÉÍÝèt@CÌîñ(ܽÍOÌÝè)ªcÁÄ¢é©àµêܹ ñBÅßÌo[WÅÍ setserial ðgÁÄÏXµ½ÝèÍ©®IÉÝè t@CÉÛ¶³êÜ·Bâo[WÅÍAÝèt@CÍ[UªèÅ ÒWµ½µ©àeªÏíçÈ¢ÌÅA½xN®µÄ௶ÝèªgíêÜ ·B``ÝèXNvg/t@C''Ìßð©Ä¾³¢B 8.3.2. T¸ KØÈIvVðg¦ÎAsetserial Í(wè³ê½ I/O AhXÉ¢ Ä)VA|[gðT¸Å«Ü·ªA»Ì½ßÉÍ I/O AhXðèµÈ ¯êÎÈèܹñBá¦Î setserial É /dev/ttyS2 ðT¸³¹é ÆAsetserial Í ttyS2 ª éÆR}h©gªvÁÄ¢éAhX (2F8)µ©T¸µÜ¹ñBttyS2 ªÊÌAhXÉ é±Æð setserial Éw ¦µ½êÍAsetserial Í»ÌAhXðT¸µÜ·B ``T¸''Ìßð© ľ³¢B setserial ÌÚIÍ UART ª»±É é©Ç¤©²×AൠUART ª êλ Ì IRQ ð²×é±ÆÅ·B"setserial" ÍÅãÌèiƵÄgÁľ³ ¢BÆ¢¤ÌàA±¤¢Á½±Æðs¤ÉÍàÁÆ¢û@ (fÌoÉ wvdialconf ðgÁ½èAN®bZ[W̲Å̪ð©½èApnpdump --dumpregs ðg¤)ª é©çÅ·B¨IÈn[hEFAÌoð·ê ÉÍAsetserial Ì -v IvV(Ú×\¦)Æ autoconfig R}hð gÁľ³¢B¾çêéoͪ 16550A Æ¢Á½ UART ÌíÞÅ êά÷ Å·BtÉ UART ÌíÞÉ墀 "unknown" Æ\¦³ê½êÉÍA»Ì I/O AhXÉÍVA|[gÍSÈ¢ÆvíêÜ·BêÌÀ¨ÌV A|[gͤÜF¯³êÈ¢ÌÅA"unknown" Æ\¦³êÄà»±ÉV A|[gª¶Ý·é±Æà èÜ·B setserial Í UART ÌíÞÌ©®oÈOÉà IRQ Ì©®oªÅ«Ü· ªA±êàK¸µà³µ®ì·éÆÍÀèܹñBo[W 2.15 ÈãÌ setserial ÅÍÅãÌT¸ÌÊÍÛ¶³êAÝèt@C /etc/serial.conf Éi[³êé©àµêܹñB±Ìt@CÍAÉ Linux ðN®·éÉgíêÜ·BN®É serial W [ª[h³ê éµ½ÍAUART ÌT¸Í©®IÉsíêA»ÌʪæÊÉoͳêÜ ·Bµ©µA\¦³êé IRQ ÍÔáÁÄ¢é©àµêܹñB¯¶àÌðà ¤êxoͳ¹½É¾çêéÌÍAÊÍT¸ðsí¸Aµ½ªÁÄn[h EFAÌÀÛÌÝèÉ¢ÄMÅ«éîñðo͵ȢXNvgÌÀs ÊÅ·BPÉN©ªXNvgÉ«ñ¾Ýèf[^© /etc/serial.conf ÉÛ¶³ê½Ýèf[^ª\¦³êĢ龯ŷB 2 ÂÌVA|[gÌn[hEFAɯ¶ I/O AhXªÝè³êÄ¢é ±Æª èÜ·Bà¿ëñ±êÍFßçêĢȢÌÅ·ªAÀÛÉ»¤¢¤ ±ÆÍN±èÜ·BêÂÌAhXÉÀÛÉVA|[gª 2  é àAT¸ÅÍêÂÌVA|[gµ©o³êܹñBµ©µAᤠIRQ ªÝèµÄ êÎAIRQ ÌT¸Å IRQ = 0 ª\¦³êé©àµêܹñBM ÒÌêÍA±¤ÈÁ½ÌÍÅÉ setserial ðgÁÄRÌlðÝèµ½ ¾¯Å·B 8.3.3. N®ÌÝè J[lª serial W [ð[h·é(ܽÍuW [Ìà ÌvªJ[lÉgÝÜêÄ¢éê)ÉÍAttyS{0-3} ¾¯ª©®o³ êAhCoÍ IRQ 4 Æ 3 µ©gíÈ¢æ¤ÉÝè³êÜ·( n[hEFA ÉÀÛÉÝè³êÄ¢é IRQ ÉÖíç¸)B±êÍ setserial ðÀsµ½Æ «Ìæ¤ÉAN®bZ[WƵÄ\¦³êÜ·B3 ÂÈãÌVA|[g ðgÁÄ¢éÆAIRQ ÌÕ˪N«ÄµÜ¤©àµêܹñB ³µ¢ IRQ ð setserial ɳ¦Ä±¤¢Á½ÕËðñð·é½ßÉ( é¢ ÍÊÌR̽ßÉ)Asetserial ðÄÑÀs·ét@CªÇ±©É é© àµêܹñB±êÍVA|[gðg¤¼ÌÇÌvZXæèàOÉAN ®ÌÅÌûÌXebvÅÀs³êÜ·BÀÛAÇÒÌF³ñªgÁÄ¢é fBXgr [VÅàAN®É setserial vOªN®XN vg©ç©®IÉÀs³êéæ¤ÉÝè³êÄ¢é©àµêܹñB¨g¢Ì fBXgr [VÅ̵¢ûÉ¢ÄÌÚµ¢à¾ÍA /usr/doc/ â /usr/share/doc/ Æ¢¤fBNgÉ é "setserial..." Ìæ¤È¼OÌ t@CÉ©êÄ¢é©àµêܹñB 8.3.4. ÝèXNvg/t@C ±±ÅÌÚIÍ /etc c[É ÁÄN®É setserial ðÀs·éXN vgðC³(ܽÍì¬)·é±ÆÅ·BÙÆñÇÌfBXgr [VÉ Í»Ì½ßÌt@Cªt®µÄ¢Ü·(µ©µÅÍ /etc c[Éu©ê ĢȢ©àµêܹñ)B³çÉAo[W 2.15 È~Ì setserial Íå ï /etc/serial.conf t@CðÁĢܷB±êÍ setserial ðÀs· éXNvgªg¤t@CÅA[UªXNvgð¼ÚÒW·éKvðÈ ·½ßÌàÌÅ·B³çÉA (o[W 2.15 È~ÅÍ)R}hC ©ç setserial ðg¤¾¯ÅÅIIÉÝèt@CðÏXÅ«Ü·B µ½ªÁÄAo[W 2.15 æèOÈçη׫±ÆÍXNvgðÒW· é±Æ¾¯Å·Bo[W 2.15 È~ÅÍAÌ 3 ÂÌìÆÌÇê©ðs ¦ÎåävÅ·: 1. XNvgðÒW·éB 2. /etc/serial.conf ðÒW· éB 3. R}hC©ç "setserial" ðÀsµA©®IÉ /etc/serial.conf ðÒW³¹éB±Ì¤¿ÌÇêðg¤Kvª é©ÍA¨ g¢ÌfBXgr [VâÝèÌû@ÉæèÜ·B 8.3.5. XNvgÌÒW (o[W 2.15 È~ÅͽÔñg¢Ü¹ñ) setserial Ìo[Wª 2.15 (1999N)æèOÌêAsetserial ÌÝèÉ Í /etc/serial.conf ÍgíêܹñBµ½ªÁÄAN®É "setserial" ðÀsµÄ¢ét@CðTµA±êðÒW·éKvª èÜ·B±Ìæ¤È t@Cª¶ÝµÈ¯êÎAVµìé(ܽÍN®ÌúiKÉÀs³êé t@CÉR}hðÇÁ·é)Kvª èÜ·B±Ìæ¤Èt@Cª»Ý gíêÄ¢éÈçA/etc fBNgc[àÌDZ©É éŵå¤Bµ ©µAo[W 6.0 æèOÌ RedHat ÅͱÌt@CÍ /usr/doc/setserial/ Éu©êÄ¢éÌÅAg¤OÉÍ /etc c[ÉÚ®³ ¹éKvª èÜ·B±Ìæ¤Èt@Cð©Â¯éÉÍ "locate" R}h ðg¤Ææ¢Åµå¤Bá¦ÎA'locate "*serial*" ' Ìæ¤Éü굆 ·B ÈOÍ /etc/rc.d/rc.serial Æ¢¤XNvgªêÊIÉgíêĢܵ ½BDebian Í /etc/rc.boot/0setserial ðgÁĢܵ½B©ÂÄÍ /etc/rc.d/rc.local Æ¢¤t@CàgíêĢܵ½ªA±Ìt@CÍ ÜèÍÀs³êÈ¢ÌÅAKØÆ;¦Ü¹ñŵ½Brc.local ªÀ s³êéæèàOɼÌvZXªVA|[gðI[vµæ¤ÆµÄA VAÊMª¸s·éÆ¢¤âèªñ³êܵ½B ±Ìæ¤Èt@CªpÓ³êÄ¢êÎA»ÌÉÍRgAEg³ê½w è᪽³ñüÁÄ¢é͸ŷB±êçÌêðARgµ½èC³ ·é±ÆÉæèA³µ¢Ýèðs¦é͸ŷB setserial ÖÌpXª³µ ¢±ÆÆAfoCX¼ª³µ¢±Æðm©ßľ³¢B±Ìt@CðèÅ ÀsµÄ(PÉX[p[[UƵÄt@C¼ðü͵ܷ)³µ®ì·é ©Ç¤©²×é±ÆÉæèAeXgðs¤±ÆªÅ«Ü·B±¤¢Á½eXg ͽxàÄN®µÄ³µ¢ÝèÉ·éæèà¸ÁÆs¦Ü·Bà¿ëñA R}hC©ç setserial ðÀs·é±ÆÉæèR}hPÆÌeXg às¦Ü·B ttyS3 É墀 UART â IRQ ð©®IÉ setserial ɲ׳¹½¯êÎAÈ ºÌæ¤ÈwèðÇÁµÜ·B /sbin/setserial /dev/ttyS3 auto_irq skip_test autoconfig ©®IÉÝèµ½¢SÄÌVA|[gÉεıêðsÁľ³¢BÀ ÛÉ}VãɶݷéfoCX¼ðK¸gÁľ³¢BêÉæÁÄÍA ±êÍn[hEFA̹¢Å³µ®ìµÈ¢ÌÅAIRQ â UART ÌÀÛÌÝ èªí©ÁÄ¢éÌÈçA"setserial" ðgÁľ¦IɱêçÌlðè ÄéÆæ¢Åµå¤Bá¦ÎA /sbin/setserial /dev/ttyS3 irq 5 uart 16550A skip_test Ìæ¤ÉµÜ·B o[Wª 2.15 È~Ìê(¨g¢ÌfBXgr [VªÏXð sÁÄ¢éêBRedHat ÍsÁĢܹñ)ÉÍA±êðs¤ÌÍärIÊ| ©àµêܹñBÆ¢¤ÌàAN®É setserial ðÀs·ét@CÅ é /etc/init.d/setserial Í[UªÒW·é½ßÌt@CÅÍÈ¢© çÅ·B ``/etc/serial.conf ðp¢éVµ¢Ýèû@'' Ìßð©Ä¾³ ¢B 8.3.6. /etc/serial.conf ðp¢éVµ¢Ýèû@ o[W 2.15 æèOÌ setserial ÅÍAsetserial ÌÝèû@ÍAN® É setserial ðÀs·éVFXNvgðèÅÒW·é±Æŵ½B ``XNvgÌÒW (o[W 2.15 È~ÅͽÔñg¢Ü¹ñ)'' Ìßð ©Ä¾³¢Bo[W 2.15 (1999 N) È~Ì setserial ÅÍA±Ì VFXNvgÍÒW³êÈ¢±ÆÉÈèAÝèt@CÅ é /etc/serial.conf ©çf[^ðÇÝÞæ¤ÉÈèܵ½B³çÉÍ serial.conf ðÒW·éKv³¦È¢±Æà èÜ·BÈºÈ çA"setserial" R}hðR}hCÅg¤ÆA serial.conf Í©® IÉ«¿ñÆÒW³êé©çÅ·B ±Ìû®ÈçAí´í´Ýè( é¢ÍÝèÏX)̽ßÉt@CðÒWµÈ ÄàALinux ðN®·éxÉ setserial 𳵮쳹çêÜ·B½¾ µå«ÈƵª èÜ·BÆ¢¤ÌàAserial.conf ðÒW·éÌÍÀÛ ÉÍ "setserial" ÅÍȢƢ¤±ÆÅ·BfBXgr [V²ÆÉ µ¢ªá¤½ßbÍȨ³çââ±µÈÁĢܷB³çÉA®ìðÏ¦é ½ßÉ[Uª serial.conf ðÒW·é±ÆàÅ«Ü·B æN±éÌͱ¤¢¤±ÆÅ·: [Uª PC ðVbg_Eµ½AN ®É "setserial" ðÀs·éXNvgÍÄÑÀs³êÜ·ªA¡ñÍ "stop" ̪òÉ©êĢ骵©ÀsµÜ¹ñB±ÌªÍ "setserial" ðgÁÄ "setserial" Ì»ÝÌóÔð²×A±Ìîñð serial.conf t@CÉ«ÝÜ·Bµ½ªÁÄA"setserial" ðÀsµÄ serial.conf t@CðÏXµæ¤ÆµÄàAÏXͦÀÉsíêéÌÅÍÈ A}Vð³íÉVbg_Eµ½Éµ©síêܹñB ±±ÜÅêÎǤ¢¤âèªN±éÂ\«ª éÌ©zªÂ©àµêÜ ¹ñBVbg_Eª³íÉÅ«¸(N©ªd¹XCb`ðØé)AÏXª Û¶³êÈ©Á½êðl¦Ä¾³¢BܽA"setserial" Åsöëðµ Ä¢ÄAÅãɳÌóÔÉß·ÌðYêÄ¢½ê(ܽͳÌóÔÉß· É~Xðµ½ê)ðl¦Ä¾³¢B·éÆusöëvÌÝèªÛ¶³ êĵܢܷB è®Å serial.conf ðÒW·êÎAÒWµ½ªÍVbg_EÌÉj ü³êÜ·BȺÈçAVbg_EÌÉ»Ì_Ì setserial ÌóÔ Éß³êé©çÅ·BVbg_EÌÉ serial.conf ðÏX³¹È¢½ ßÌû@à èÜ·Bserial.conf ÌÅÌsÉ©êÄ¢é "###AUTOSAVE###" Æ¢Á½ªðí·éÌÅ·B·ÈÆà éfBX gr [VÅÍACXg[¼ãÌßÄÌVbg_EÌÉÅ Ìs©ç "###AUTOSAVE###" ðí·é±ÆÍ©®IÉsíêÜ·B serial.conf ÉͽÔñAQlÉÈéîñªRgÌ`Å©êÄ¢éÅ µå¤B N®É(Ýèt@CÉ]ÁÄ) setserial ðÀs·é½ßÉÊígíêé t@CÍA/etc/init.d/setserial (Debian) â /etc/init.d/serial (Redhat) Å·ªAÊͱÌt@CðÒW·×«ÅÍ èܹñBo[ W 2.15 ðgÁÄ¢é RedHat 6.0 ÅÍAN®É setserial ðÀs³ ¹½¢êÉ /etc/init.d/ ÉÚ®³¹é /usr/doc/setserial-2.15/rc.serial t@Cªt¢Ä¢Ü·B |[gð³øÉ·éÉÍ setserial ðgÁÄ "uart none" ðÝèµÜ ·B/etc/serial.conf ÌtH[}bgÍAR}hCÅ "setserial" Ì ãÉup[^ÆÙÚ¯¶àÌðe|[gÉ墀 1 s¸Â`®Å ·B©®Û¶ðsÁĢȯêÎA/etc/serial.conf ðèÅÒWµÄ¾³ ¢B BUG: 1999 N 7 Ì_ÅÍA###AUTOSAVE### ÉR·éoO/âèª è Ü·B±êÍ "setserial -Gg /dev/ttyS*" Å\¦³êé setserial Ìp [^µ©Û¶³ê¸A¼Ìp[^ªÛ¶³êȢƢ¤àÌÅ ·B"setserial" ÌSÄÌp[^ð\¦³¹éÉÍ -a tOðg¢Ü ·B±êͲêÌ[Uɵ©e¿ð^¦È¢Åµå¤BÆ¢¤Ìà ÊAÛ¶³êÈ¢p[^ÍÙÆñÇÌêÍftHglÅåäv¾©ç Å·B±êÍoOƵÄñ³êÄ¢éÌÅA»ÝÍC³³êÄ¢é©àµê ܹñB setserial ÅÝèµ½»ÝÌÝèðVbg_E·é±ÆÈÝèt@C (serial.conf)ÉÛ¶·éÉÍAVbg_EÌÉÊísíêé𳠹ܷBÂÜèAVFXNvg /etc/init.d/{set}serial stop ðÀsµ Ü·B "stop" R}hÉæè»ÝÌÝèªÛ¶³êÜ·ªAVA|[g ©Ìͮ쵽ÜÜÅ·B êÉæÁÄÍV¼ûÌÝèû@ªCXg[³êÄ¢é©àµêܹñ ªAN®ÉÀs³êéÌͽÔñ»Ì¤¿ÌÐû¾¯Åµå¤BDebian Å ÍAÃÄgíÈ¢t@CÉ "...pre-2.15" Æ¢¤xªt¢Ä¢Ü ·B 8.3.7. IRQ ftHgÅÍAttyS0 Æ ttyS2 ª IRQ 4 ð¤LµAttyS0 Æ ttyS3 ª IRQ 3 ð¤LµÄ¢Ü·Bµ©µAÌðª¬è§½È¯êÎVAÌ èÝ̤LÍūܹñ: ·Èí¿ (1) J[lª 2.2 È~Å éA (2) èÝ̤LðT|[g·éæ¤ÉJ[lðRpCµÄ¢éA (3) VA|[gªèÝ̤LðT|[gµÄ¢éÆ¢¤ðÅ·B ``èÝ̤LÆo[W 2.2 È~ÌJ[l'' ð²¾³¢B ttyS0 Æ ttyS1 Ì 2 ÂÌVA|[gµ©gÁĢȢêÉàâèÍ èܹñBÆ¢¤ÌàA¶ÝµÈ¢foCXÉ¢ÄͤL·é IRQ ÌÕË ªN«È¢©çÅ·B à fðÇÁµ½óÔÅà ttyS0 Æ ttyS1 ð»ÌÜÜÉ·éÈçÎA¢ gpÌ IRQ ð©Â¯A±êðVA|[g̼¤(ܽÍfJ[h)É ÝèµAsetserial ðgÁÄfoCXhCoÉèÄȯêÎÈèܹ ñBIRQ 5 ªTEhJ[hÉgíêĢȯêÎA±êðfpÉgÁÄ àæ¢Åµå¤Bn[hEFAÌ IRQ ðÝè·éÉÍAisapnp â PnP BIOS, é¢Í Linux ð PnP É·é½ßÌpb`ðg¤Kvª é©àµêܹ ñB]ÁÄ¢é IRQ ð²×éQlƵÄA"man setserial" ðÀsµÄ "IRQ 11" ÈÇðõµÄÝľ³¢B 8.4. stty 8.4.1. ͶßÉ stty ÍVA|[gÌÝèðFXâèÜ·ªAAvP[VvO (¨æÑ getty vO)ªÝè𵤱Æàæ éÌÅA[Uªg ¤KvÍ Üè èܹñB±ÌvOÍAâèªN±Á½â|[gÌ Ýè𩽢ÉÍÖÅ·B[âR\[Å ``stty -a'' ðÀs·ê Î|[gÌÝèð©é±ÆªÅ«Ü·BܽA-a (all) IvVðt¯¸ É stty ðÀs·êÎAÊíÆÙÈéÝèÉÈÁĢ骪ZXg\¦ ³êÜ·BVA|[gÌBlÉÈë¤Æ¢¤ÌÅȯêÎASÄÌÝèð o¦éKvÍ èܹñBÙÆñÇÍftHgÌÜÜÅåävÈ͸ ÅA1970 NãÉìçê½ÁèÌâ_[Éεľ¯Ý誢©K vÆÈèÜ·B setserial ÍÀÛÌVA|[g¾¯ðµ¤ÌÉεÄAstty ÍVA |[gƼz[(PC j^Åg¤ Linux WÌeLXgC^tF[X )̼ûÉεÄgíêÜ·BPC j^ÉεÄÍAstty ÌÝèÌ½Í ³Ó¡Å·B{[[gðϦÄàÀÛÉͽàÏíçÈ¢æ¤É©¦éÅ µå¤B stty ÌÝèð¢Â©¦·ÆA¬x(rbg/b)ApeBArbg/oC gAXgbvrbgÌA8 ÔÚÌrbgðÆ·©Ç¤©Af§äVO iAt[§äAu[NMAs}[J[A¶P[XÌÏXApfB OAobt@ìêÌÛÉr[v¹ðÈ緩Ǥ©Aü͵½¶ðGR[ \¦·é©AobNOEh^XNÌ[ÖÌ«Ýð·©Ç¤©AÁ ê(§ä)¶Ìè`(ÇÌL[ðð·Æèݪ©©é©)ª èÜ·B ÚµÍ stty Ì}j Ay[W© info t@Cð©Ä¾³ ¢Btermios Ì}j Ay[Wà©Ä¾³¢B±êÍ stty ÅÝèÅ«é ÌƯ¶IvVðÜñŢܷªA(1999 N¼ÎÌ_ÅÍ) stty Ì} j Ay[Wªà¾Å«Ä¢È¢@\àÜñŢܷB êÌ getty ÌÀ(getty_ps pbP[W)ÅÍAstty ÉÊí^¦éR} hÍ getty ÌÝèt@C(/etc/gettydefs)É©êÜ·B±ÌÝèt@C ªÈÄàAgetty ÌR}hCÍ[Uª stty ðKvÆµÈ¢æ¤ É\ªÈÝèªÅ«Ü·B stty ÌÝèÈÇðÏX·é C vOð±ÆªÅ«Ü·B±êÉÖ· é¶ð¢Â©©êÎAstty R}hÌg¢û(¨æѽ³ñ égp \Èø«)àæðÅ«éŵå¤BSerial-Programming-HOWTO àðɧ ¿Ü·B}j Ay[W termios ÉÍ C ¾êÌ\¢Ì(termios ^)Ìྠª èÜ·B±Ì\¢ÌÍ stty ÌÝèðRs [^ÌÉi[µÜ ·BC ¾êÌ\¢ÌÌtO¼Ì½ÍAstty R}hÌø«ÆÙÚ¯¶ Å·(»µÄ¯¶®ìðµÜ·)B 8.4.2. uÊÌv[ÉεÄÌ stty Ìgp stty ðgÁÄA©ªª»ÝgÁÄ¢é[̲¸âÝèðs¤ÌÍÈPÅ ·B±êðÊÌ(æ»Ì)[âVA|[gÉεÄs¤ÌÍÊ|©àµê ܹñBá¦ÎAÇÒÌF³ñª PC Ìj^ (tty1) É¢ÄA»µÄ stty ðgÁÄVA|[g ttyS2 ðµ¢½¢Æl¦Ä¢éƵܷB 2000 N æèOÌ ÍA_CNgZq < ðg¤Kvª èܵ½B 2000 NÈ ~ÅÍ(¨g¢Ì setserial Ìo[Wª 1.17 ÈãÅAstty Ìo[W ª 2.0 ÈãÈçÎ)A-F IvVðg¤Æ¢¤ÊÌû@ª èÜ·B± êÍ_CNVðg¤Ã¢û@ª¸s·éêÅà®ìµÜ·Bµ© µA½Æ¦ÅVÅÅ ÁÄàAttyS2 ãÉ[ª èA»±ÅVFª®ìµ Ä¢éÈçÎA\¦³êéàÌÍm©ÅÍÈAÝèµæ¤ÆµÄà¤Ü¢ ©È¢¾ë¤Æ¢¤±ÆðӵĨ«Ü·B»ÌRð𵽯êÎ ``[Ì 2 ÂÌC^tF[X'' ð²¾³¢B Vµ¢û@Í ``stty -F /dev/ttyS2 ...'' Å·( é¢Í -F ÌãíèÉ --fileðg¢Ü·)B... ª -a Å êÎA±ÌR}hÅ stty ÌSÄÌÝ èª\¦³êÜ·B_CNVðg¤Ã¢û@(ÅßÌo[WÅà ܾg¦Ü·)ÅÍ ``stty ... < /dev/ttyS2'' ðg¢Ü·BVµ¢û@ÅÍ ®ì·éÌÉâû@¾ÆnO·éêÍAIɵÄêéf§äü ªÈ¢½ßÉ|[gªnOµÄ¢éÆvíêÜ·B±Ìæ¤ÉAâû@à ܾguðÉð§¿Ü·BڵͱÌãÌßðÇñž³¢B 8.4.2.1. _CNVðg¤Ã¢û@ _CNVZqÉÍâèª èÜ·(±ÌZqÅÍÈAVµ¢ -F IvVðg¦ÎâèÍN«Ü¹ñ)Bstty ðg¨¤Æ·éÆXAR} hªnOµA½àN±çÈ¢±Æª èÜ·(^[L[ðµÄàA ÌR}hÌvvgªoÈ¢)B±êÍåï|[gªnOµÄµÜÁ½ ½ßÅ èA±êÍf§äüÌ¢¸ê©ªIÉÈéÌð|[gªÒÁÄ ¢é½ßÉN±èÜ·Bá¦ÎAf§äüð³·éæ¤É "clocal" ð ÝèµÄ¢È¢êACD MªIÉÈçȯêÎ|[gÍI[vÅ«Ü ¹ñµAstty Í|[gÉεĮìµÜ¹ñ(Vµ¢ -F IvVðgÁÄ ¢È¢ê)B¯lÌóµÍAn[hEFAt[§äÅàN±éæ¤Å·B IÉÈéKvª é±üª|[gÉq¢¾P[uÉȯêÎAnO·é Ìðh®ÈPÈû@Í èܹñB ±Ìæ¤ÈnOðh®û@ÌêÂÍAVµ¢ -F IvVðg¢A "clocal" â "crtscts" ðÝè·é±ÆÅ·B-F IvVªg¦È¢ê ÍA½Æ¦§äüªItÅ ÁÄà|[gð§Iɮ쳹évO ðA»Ì|[gÉεÄgÁÄÝÄàæ¢Åµå¤B·éƽª±ÌvO ÍA±Ìæ|[gðI[v·é½ßɧäüªKvÈÈéæ¤É|[g ðÝèÅ«Ü·: ·Èí¿ clocal Ü½Í -crtscts ðÝèµÜ ·B"minicom" ðgÁıêðs¤ÉÍAÊÌ ttyS Éí¹Ä minicom ðÄÝèµA»ê©ç minicom ÌI¹ÆÄÀsðsíȯêÎÈèܹñB »ÌãÄÑ minicom ðÄÝèµÈ¯êÎÈçÈ¢ÌÅAPÉ PC ðÄN®· 龯ÌûªÈP©àµêܹñB _CNVðg¤Ã¢û@ÍAttyS2 ð stty ÖÌWüÍƵܷB ·éÆAstty vOÍut@CvÅ é ttyS2 ÉNµÄ±êð uÇÝæév±ÆªÅ«éæ¤ÉÈèÜ·Bµ©µAttyS2 Éçê½oCg f[^ÍÊÉúÒ³êéÊèÉÇÝæéÌÅÍÈA|[gÌÇÝæèâÏ XªÅ«éæ¤ÉA±ÌNðgÁÄ|[gÌÝèð²×Ü·B ``stty ... > /dev/ttyS2'' ðgÁÄ[ðÝèµæ¤Æ·élà¢Ü·ªA±ÌR }hÅÝè·é±ÆÍūܹñB±ÌêÍÝèÍsíê¸ÉAgÁÄ¢ é[(á¦Î tty1)Éηé stty R}hÅÊÉ\¦³êébZ[W ª¾çêA±êª ttyS2 ÉçêÜ·Bµ©µAttyS2 ÌÝèÍSÏíè ܹñB 8.4.3. [Ì 2 ÂÌC^tF[X R}hCÒW@\ðLøɵÄVF(bash ÈÇ)ðgÁÄ¢éÍA2 ÂÌÙÈé[C^tF[X(stty -a ðÀsµ½É\¦³êéàÌ)ª èÜ·BR}hCÅüÍðs¤ÉÍêIÈ "raw" C^tF[ X(ÂÜè "raw" [h)ðÁĨèA»ê¼ê̶ÍüÍ·é²ÆÉR }hCGfB^ªÇÝÝÜ·B<^[>L[ð@ÆAR}h CGfB^ÍI¹µA[C^tF[XÍ»Ì[ÌÊíÌ "cooked" C ^tF[X(cooked [h)ÉØèÖíèÜ·B±Ì cooked [hÍA Ìvvgª[ÉçêéÜű«Ü·B±Ì cooked [hÅͽàü ͵ܹñªAraw [hÅüÍ³ê½¶Í <^[> L[ª³êéÆ cooked [hÉÈèÜ·B vvgª[ÉçêéÆA[Í "cooked" [h©ç "raw" [h ÉÏíèÜ·(±êÍGfB^ðN®·éÆ¿å¤Ç¯¶æ¤ÉsíêÜ ·BÆ¢¤ÌàAR}hCGfB^ðN®µæ¤ÆµÄ¢é©çÅ ·)B "raw" [hÌÝèÍA"cooked" [h©ç¾½î{ÝèÌÝÉîà ¢ÄsíêÜ·Braw [hͱêçÌÝèð۵ܷªA¼Ì¢Â©Ì ÝèÍ[hð "raw" ÉϦé½ßÉÏXµÜ·BOÌ "raw" [hÅgí ê½ÝèÉÍS˶µÜ¹ñBµ½ªÁÄAstty ðgÁÄ raw [hÌÝ èðϦéÆAuÝè³ê½vÆvíêé[ãÅ<^[>L[ð@¢½r [ɱÌæ¤ÈÝèͳÈÁĵܢܷB ±±ÅAstty ðü͵Ä[C^tF[Xð©éÉÍAcooked [h© raw [hÌÝèð\¦·é±ÆªÅ«Ü·B»ÌÉÍÇ¿çð©éÌ©ð ÍÁ«è³¹éKvª èÜ·BR}hCð\¦µÄ¢é[𵤽 ßÉÊÌ[©ç stty ðg¤êÉÍA\¦Í raw [hÌàÌÉÈèÜ ·Bsíê½ÏXÍ raw [hɵ©Kp³ê¸AuÝèvµæ¤Æµ½[ ãÅN©ª<^[>ð·ÆÁ¦ÄµÜ¢Ü·Bµ©µA©ªÌ¢é[ Å(_CNgÌ < ðgí¸É) stty R}hðü͵A»ê©ç<^[ >ðµ½êÍbªáÁÄ«Ü·B<^[>L[Éæè[Í cooked [hÉÈèÜ·Bsíê½ÏXÍÛ¶³êA[ª raw [hÉßÁ½ ÉàcÁĢܷ(à¿ëñ raw [hÅÏXÅ«È¢ÝèÌêÍ«Ü ·)B ±ÌóµÉæèâèªN±é±Æª èÜ·Bá¦ÎA[C^tF[X𠮿ᮿáɵĵܢA±êðß·½ßÉÊÌ[ÉsÁÄ "stty -F dev/ttyS1 sane" ()ðÀsµ½ÆµÜµå¤BƱëªA±Ìû@Íg¦Ü ¹ñ! à¿ëñ®¿á®¿áÉÈÁĵÜÁ½[©ç "stty sane ..." Ì üÍðÝé±ÆÍÅ«Ü·ªAü͵½¶ð©é±ÆÍūܹñBãL Ì»ÛÍ_[¾¯ÅÍÈAPC j^ãÅg¤¼z[âAX ãÌ[ EBhEÉàÄÍÜèÜ·B¾¢·¦êÎA±êÍ Linux ðg¤ÙÆñ ÇSÄÌlÉÄÍÜèÜ·BK^ȱÆÉAstty ðN®ÉÀs·ét@ CÍVFª®ìµÄ¢È¢[( é¢Í[ªqªÁĢȢVA |[g)ðµ¦éÌÅâèÍ èܹñB 8.4.4. Ç±É stty R}hðu©? Rs [^ªN®·éxÉ stty ÉVAC^tF[XðÝè³¹éK vª éÌÈçARs [^ªN®·é(Linux ªN®·é)xÉÀs³êé t@CÉ stty R}hðüêĨKvª èÜ·B±Ìt@CÍV A|[gªgíêé(|[gɨ¯é getty ÌÀsàÜÝÜ·)OÉÀs³ êȯêÎÈèܹñB±êðu±ÆªÅ«éêͽ³ñ èÜ·B¡ Ìêɱêðu¢½ÌÉA»Ìê̤¿Ì굩mçȯêÎ(o¦ ĢȯêÎ)Õ˪N«ÄµÜ¤Åµå¤Bµ½ªÁÄAÝèµ½±ÆÍL ^µÄ¨«Üµå¤B stty R}hðuêÌêÂÍAVXeªN®·éÉ setserial ðÀ s·ét@CÌàÅ·B±ÌêÍfBXgr [Vâo[W ²ÆÉÙÈèÜ·Báx̪æÉsíêéæ¤É·é½ßA±êÍ setserial ÌãÉu̪Ǣŵå¤Bu©êÄ¢ét@CªN®ÉS ÄÀs³êéfBNg(System V Init) ª /etc fBNgc[̺ É êÎA"stty" Æ¢¤¼OÌt@CðìÁÄ stty R}hðÀs³¹ ÄàǢŵå¤B 8.5. isapnp Æͽ©? isapnp ÍAàfðÜß½ ISA oXpÌvO&vC (PnP)foCX ðÝè·é½ßÌvOÅ·B±ÌvOÍ "isapnptools" ÆÄÎ êépbP[WɼÌvO("pnpdump")ÆêÉüÁÄ¢Ü ·B"pnpdump" ÍSÄÌ ISA PnP foCXð©Â¯A±êçÌfoCXðÝ è·éIvVðo͵ܷB±ÌoÍÍAPnP ÌÝèt@CÅ é /etc/isapnp.conf ÉÇÁÅ«é`®Å·BRs [^ÌN®ÉñÀs ³êAISA PnP foCXðÝèÅ«éæ¤ÉAisapnp R}hÍVXeÌ N®t@CÉ©êÜ·BBIOS ª PnP ðT|[gµÄ¢ÈÄàA±êð s¤±ÆÍÂ\Å·BÚµÍ Plug-and-Play-HOWTO ð©Ä¾³¢B 9. ¬x (t[[g) ±±Å¾¤ "¬x" Í{Íuf[^t[[g(data flow rate)vÆ¢¤ Ó¡ÈÌÅ·ªAåïÌlͱêð¬xÆëpµÄ¢Ü·B¬xÌPÊÍrb g/b( é¢Í{[)Å·B¬xÍ "stty" R}hܽÍVA|[gð g¤vOÅÝèµÜ·B ``stty'' ð²¾³¢B 9.1. \ªÉ¬¢¬xªÝèūܹñ n[hEFAªÎµÄ¢éÅå¬xðméKvª èÜ·B1998 NÌ _ÅÍAÙÆñÇÌn[hEFAª 115.2k bps ÜÅ̬xɵ©ÎµÄ¢ ܹñŵ½B¢Â©Ì 56k à fÍ 230.4k bps ÉÎµÄ¢Ü ·BÅßÌ Linux J[lͬ(115.2k Èã)εĢܷªAÈºÌ RÌ¢¸ê© é¢Í¼û̽ßÉAÎªïµ¢êª èÜ·: 1. AvP[VvO(Ü½Í stty)ª¬ÎµÄ¢È¢ 2. setserial ÌÝèªftHg̬xÌ 115,200 Å é(µ©µA±Ìf tHglðϦéÌÍÈPÅ·) 9.1.1. n[hEFAɬxðÝè·éû@: Æ baud_base l ÊgíêéÆ»êÉηé¬x(Åå¬xÍ 115,200 Ƶܷ)Ì Xgð¦·Æ 1 (115.2k), 2 (57.6k), 3 (38.4k), 6 (19.2k), 12 (9.6k), 24 (4.8k), 48 (2.4k), 96 (1.2k) ÈÇÆÈèÜ·BVAhCoÍAn [hEFAÉuv(³Ì®)ÌÝðé±ÆÉæÁÄn[hEFA̬x ðÝèµÜ·B±ÌuvÅn[hEFAÌÅå¬xªèZ³êAx¢¬ xÆÈèÜ·(½¾µª 1 Ìê;¤ÜÅàÈAn[hEFAÉÅå ¬xÅ®ì·é椽ߵܷ)B ÊÍ(ÊMvOâ stty Å)¬xð 115.2k Éwè·éÆAVAh CoÍ|[gÌn[hEFAÉ 1 ðÝèµÜ·B±ê;¤ÜÅàÈ Å¬xÌÝèÅ·B¨g¢Ìn[hEFAÌŬxªá¦Î½Ü½Ü 230.4k ÈçÎA115.2k ðw赽̪ 1 Å é½ßAÀÛ̬xÍ 230.4k ÉÈèÜ·B±êÉæèÝèµ½¬xÌ{̬xÉÈèÜ·BÀÛA ÇñȬxðwèµÄàÀÛ̬xÍ{ÉÈÁĵܢܷB460.8k Å®ì Å«én[hEFAª Á½Æ·éÆAÀÛ̬xÍÝèlÌ 4 {ÆÈéÅ µå¤B 9.1.2. ¬xÝèÉÖ·éâèÌñ𠱤¢Á½vZð³µ³¹éÉÍ(µ©µK¸µàâèªð·éÆÍÀè ܹñ)A"setserial" ðgÁÄ baud_base lðÀÛÌ|[gÌÅå¬x (á ¦Î 230.4k)ÉÏXµÜ·B»¤·éÆ(AvP[Vâ stty ðgÁ Ä)¬xð 230.4k ɵ½êÉÆµÄ 1 ªgíêAÝèµ½ÌƯ¶¬ xª¾çêÜ·Bµ©µâèª èÜ·: (1999 N¼ÎÌ_ÅÍ)stty â½ ÌÊMvOÍÅå¬xÌÝèlª 115.2k Å èA230.4k ðÝè ·é±ÆªÅ«È¢ÌÅ·Bµ½ªÁÄA±Ìæ¤ÈêÌêÂÌðû@ ÍA setserial ÅͽàÏX¹¸AÀÛ̬xÍÝèµ½¬xÌ 2 {Å é ±Æð©ªÅo¦Ä¨±ÆÅ·B Üè}VÆ;¦Ü¹ñªAÊÌñðôà èÜ·B±Ìû@ðg¤ÉÍA (setserial ðgÁÄ) baud_base lðn[hEFAÌÅå¬xɵľ³ ¢B±êÉæèvZû@ª³µÈèA115.2k ðwè·êÎÀÛÉ 115.2k ̬xª¾çêéæ¤ÉÈèÜ·B±±ÅàܾAÊMvOÈǪŠ¬xðÝè³¹ÄêÈ¢êÉAŬxðÝè·éû@ð©Â¯éKvª èÜ·BK^ȱÆÉAsetserial Éͱêðs¤û@ª èÜ·: "divisor 1" ÆµÄ "spd_cust" p[^ðg¤ÌÅ·B·éÆAÊMv OŬxð 38400 Ƶ½É|[gàÌÍ 1 ÉÝè³êAŬx Å®ìµÜ·Bá: setserial /dev/ttyS2 spd_cust baud_base 230400 divisor 1 "divisor" ðæÉྵ½(spd_cust ÆgÝí¹é)ÁêÈprÈOÌÚI ÅgÁÄÍ¢¯Ü¹ñB ÊMvOÅÝèÅ«È¢¬¢¬xð 2 ÂÈãg¢½¢êÉÍAæÌ à¾ÙÇÈPÉÍs«Ü¹ñBµ©µ¯¶´¥ªÄÍÜèÜ·Bbaud_base lÍPÉftHgÌÜÜɵĨ«A¬xðÝè·éÉÍÀÛ͵© ÝèµÄ¢È¢Æl¦éÌÅ·Bµ½ªÁÄÀÛ̬xÍíÉAVAh CoªÝèµ½ÅÅå¬xðÁ½lÆÈèÜ·B ``n[hEFAɬ xðÝè·éû@: Æ baud_base l'' ð²¾³¢B 9.1.3. »UíÌügÍ{[[gÅÍ èܹñ baud_base lÌÝèÍÊAn[hEFAàÌ »UíÌügæè¸ÁÆ á¢_Éӵľ³¢BÆ¢¤ÌàA »UíÌügÍn[hEFA àÅ 16 ÅçêAÀÛÌŬxÆÈé±Æª½¢©çÅ·B »UíÌ ügÌûªÈ¯êÎÈçÈ¢RÍA±Ìæ¤Éügª¬ÈçÎA erbgª 1 © 0 Å é©ðßé½ßÌTvð½³ñæé±ÆªÅ «é©çÅ·B 9.2. VAÌX[vbgÌüã (E)IDE Ìn[hfBXNðgÁÄ¢éVXeÅ èA©ÂX[vbgª «ÄVA|[gªI[o[·éêÍ hdparm ðµÄ¾³¢B ±êÍ (E)IDE Ìp[^(fBXNÌ IRQ ªs³êÄ¢éÔÍ¼Ì IRQ ðA}XN·é)ðÏXÂ\É·é[eBeBÅ·B±Ì[eB eBðg¤ÆªÇÈÁÄI[o[ð³·ÌÉð§Âŵå¤B½ ¾µA}j Ay[WÍK¸æÇñž³¢BÆ¢¤ÌàAêÌh CuÆRg[Ìg¹ÅͱÌ[eBeBª¤Ü®ì¹¸At@ CVXeðóµÄµÜ¤©àµêÈ¢©çÅ·B irqtune ÆÄÎêé[eBeBàµÄ¾³¢B±êÍfoCX(ᦠÎfªqªÁÄ¢éVA|[g)Ì IRQ ÌDæxðÏX·é[eB eBÅ·B±êÉæèA¨g¢ÌVXeÌVA|[gÌX[vbg ªüã·é©àµêܹñBirqtune Ì FAQ Í http://www.best.com/~cae/irqtune <http://www.best.com/~cae/irqtune> É èÜ·B 10. bNµÄ¼Åg¦È¢æ¤É·é 10.1. ͶßÉ ©ªªVA|[gðg¤ÉÍA¼ÌlͯÉg¦È¢æ¤Éµ½¢Æ v¤Åµå¤Bµ©µA¼ÌlÉàgí¹½¢±Æà é©àµêܹñBá ¦Î©ªªeLXg[ðgÁÄ¢éÉA¼ÌlªdvÈbZ[Wðê éæ¤Éµ½¢êÅ·B ©ªª»ÝgpÌVA|[gð¼Ìl(â¼ÌvZX)ªg¦È¢æ¤ É·éû@(bLO)ÍFX èÜ·B±ÌÍ©®IÉsíêé͸Š·ªAâèªN«½Ì½ßÉbLOðmÁĨ±ÆÍdvÅ·Bv OªÙíI¹µ½èA(RZgðø«²ÈÇÅ)PC ªËR¿½è µ½êÉÍAVA|[gªbNµ½ÜÜÉÈÁĵܤ©àµêܹ ñBbNªcÁ½ÜÜÅ ÁÄàAÊÍÉVA|[gðg¨¤Æµ ½É©®IÉbNÍÁ³êÜ·Bµ©µÜêÉ»¤ÅÈ¢±Æà èÜ ·B»ñÈÉͽªN±Á½Ì©ðð·éKvª èÜ·B bLOðÀ·éû@ÌêÂÍAbNðÅ«éæ¤ÉJ[lðÝ v·é±ÆÅ·ªALinux ͱêÜÅͱÌû@ðð¯Ä«Üµ½(¡ÅÍg íêÈÈÁ½ cua foCXÍáOÅ·)BLinux Ågíêéû@Í 2  èÜ·B 1. bNt@Cðìéû@ 2. /dev/ttyS2 ÌfoCXÌp[~bVâLÒðϦéû@ 10.2. bNt@C bNt@CÍÁèÌfoCXªgpÅ é±Æ𦷽ßÉìçêé½ ¾Ìt@CÅ·B±Ìt@CÍ /var/lock Éu©êÜ·BÈOÍ /usr/spool/uucp Éu©êĢܵ½BLinux ÅÍAbNt@C̼OÍ LCK..name ÆÈé±Æª èÜ·B±±Å name ÍfoCX¼©AUUCP ÌT Cg¼Å·BÙÆñÇÌvZX(getty Í«Ü·)ÍA»ÌfoCXÉr¼ IÉANZXÅ«éæ¤ÉÈé½ßÉbNt@CðìèÜ·Bá¦ÎA fðgÁÄ_CAAEgðs¤ÆAN©ªfðgÁÄ¢é±Æðb Nt@C(Ðƾ¯ÅÈ¢±Æà èÜ·)ª¼ÌvZXÉ`¦Ü·B bNt@CÌàeÍåÉAfoCXðbNµÄ¢évZXÌ ID Å ·BbN³êÄ¢éfoCXðǤµÄàg¢½¯êÎAvZXÍbN t@Cð³µÄAÆÉ©foCXðgÁĵÜÁÄàæ¢_É ¾³¢B±êÍeLXg[ÉbZ[Wðè½¢ÈÇÉÖÅ·B vOªVA|[gðg¨¤Æµ½¯êÇA»Ì|[gªbNt@ CÅbN³êÄ¢éÍA±ÌvOÍbNt@Cª¦· PID ªÜ¾gíêÄ¢é©Ç¤©ðmF·é͸ŷB»Ì PID ªgíêÄ¢È ¯êÎbNͳøÆ¢¤±ÆÈÌÅA(³øÉÈÁ½bNt@CðÁµ Ä©ç)»ÌÜÜ|[gðgÁÄàåävÅ·BcOȪçvOÉæÁ ÄͱÌæ¤Èðsí¸AÀÛÉÍfoCXªgpÅÈÄàfoCX ªgp¾Æ¢¤bZ[Wð\¦µÄ «çßĵܤàÌà èÜ·B bNt@CªçÝÌâèÍA¯¶foCXª 2 ÂÌʼðÁĨèA »ÌÊƵÄÊ̼OðªÀÛÉͯ¶foCXð¦·bNt@C ª 2 ÂÅ«éêÉN±éÂ\«ª èÜ·B©ÂÄÍeX̨VA |[gÍ 2 ÂÌÙÈéfoCX¼(ttyS0 Æ cua0)ð±ƪL¼Åµ½B bNð`FbN·évOÍ ttyS Æ cua ̼ûÉεĢܵ½ ªA»ÝÍ cua ªÈÈÁ½ÌÅÍÈPÉÈèܵ½Bo[WÌà ¢vOÍܾ cua ðgÁÄ¢é±Æª èÜ·Bʼðg¤± Æ(/dev/modem Å /dev/ttyS2 ð¦·)Íguð©çµæ¤ÈàÌÅ ·B 10.3. foCXt@CÌLÒAO[vAp[~bVÌÏX foCXðg¤ÉÍA[U(setuid ³êÄ¢éêÍAÀs·évO ) Í /dev fBNgÉ éfoCXut@CvðÇÝ«·é½ßÌ p[~bVðÁÄ¢éKvª èÜ·Bµ½ªÁÄA¼ÌlªfoCX ðg¦È¢æ¤É·éØÌÊÁ½û@ÍA©ª©gð»ÌfoCXÌêIÈ LÒɵA¼ÉÍNàg¦È¢æ¤Èp[~bVðÝè·é±ÆÅ·B ±Ìæ¤Èð·évOà èÜ·B¯¶æ¤Èû@ƵÄAfoC Xt@CÌO[vàg¦Ü·B bNt@CͼÌvZXªfoCXðg¦È¢æ¤ÉµÜ·ªAfoC Xt@CÌLÒ/p[~bVÌÏXͼÌ[U(âO[v) ªfo CXðg¦È¢æ¤ÉµÜ·BÐÆÂÌóµÆµÄAO[vÉεÄVA |[gÖÌ«ÝÌp[~bVÍ^¦çêÄ¢é¯êÇAÇÝæèÌ p[~bVÍoÄ¢È¢êª èÜ·B±ÌêA|[gÖÌ«Ý ÍPÉeLXg[ÖÌbZ[WMÉÈ龯ŷªAÇÝæèÍßSÈ ±ÆÉÈèÜ·BÊÌvOªæÉf[^ðÇÝoµÄµÜ¤ÆAf[^ ÌÇÝæèÌKvª Á½³XÌvOÌf[^ªÈÈÁÄµÜ¢Ü ·B±Ìæ¤ÉAÇÝæèÍ«Ýæèàå«ÈQðyÚ·±Æª èÜ ·BÇÝæèÅÍf[^ªÈÈèÜ·ªA«ÝÅÍ]vÈf[^ªÇÁ ³ê龯¾©çÅ·B±êªA«Ý͵ÄàÇÝæèͳȢR Å·B±êÍÊít@CÌêÆ¿å¤Ç½ÎÉÈèÜ·BÊít@CŠͼlÉÇÝæèðµܷªA«Ý(C³)͵ܹñBVA| [gðg¤êÍÊAÇÝæèÆ«Ý̼ûªKvÅ·B foCXt@CÌ®«ðÏX·évOÍAI¹ÉÍÏXµ½ªð ³É߷͸ŷBµ©µAÙíI¹µ½êÉÍAÉN©ªg¨¤Æµ½ É "permission denied" G[ªoéæ¤ÈóÔÌÜÜÌfoCXt@C ªcé±Æª èÜ·B 11. ÊMvOÆ[eBeB 11.1. \tgEFAÌê ȺÉÊMvOð¢Â©ÐîµÜ·B¨g¢ÌfBXgr [V Ét®µÄ¢È¯êÎAFTP Åüè·é±ÆàÅ«Ü·B o ecu - ÊMvO o C-Kermit <http://www.columbia.edu/kermit/> - ÚA«ªAXNv gLqªÅ«At@C]E¶WÏ·E zmodem ÉεĢéV AETCP/IP ¤pÌÊMvOB o minicom - telix ɽÊMvO o seyon - X x[XÌÊMvO o xc - xcomm ÊMpbP[W o term Æ SLiRP ÍAVFAJEgðgÁÄ TCP/IP @\ðñµÜ ·B o screen Í}`ZbVvOÅ·B±êͼzR\[Ìæ¤ É®ìµÜ·B o callback ðg¤ÆA[gfÉdb𩯽ÉA»ÌfÍ ¢Á½ñdbðØÁÄ©çR[obNµÄêÜ·(dbãðßñÅ«Ü ·)B o mgetty+fax Ít@bNXðµ¢Ü·Bps_getty ÌãíèÉg¤±ÆªÅ «Ü·B o ZyXEL Í ZyXEL U-1496 fð§ä·évOÅ·B±ÌvO Í_CACA_CAAEgAR[obNÉæéZL eB@ \At@bNXA¹º[{bNXðµ¢Ü·B o SLIP Æ PPP ÉÖA·é\tgEFAÍ ftp://metalab.unc.edu/pub/Linux/system/network/serial ÅüèÅ«Ü ·B 11.2. kermit Æ zmodem (ttyS3 Å)kermit Å zmodem ðg¤ÉÍA.kermrc ÉȺÌLqðÇÁµÜ ·: define rz !rz < /dev/ttyS3 > /dev/ttyS3 define sz !sz \%0 > /dev/ttyS3 < /dev/ttyS3 fªÚ±³êĢ鳵¢|[gðK¸wèµÄ¾³¢Bzmodem ðg ¤ÉÍAkermit ÌvvgÅPÉ rz Ü½Í sz <filename> Æü굀 ¾³¢B 12. VAÉÖ·é¿åÁƵ½eNjbNÈÇ ðɧÂÆvíêéVAÖAÌ¿åÁƵ½eNjbNðÐîµÜ·B 12.1. ChCo eLXg[ÅÍ EIA-232 Í\ª¬Å·ªA³êéP[u·ªZ·¬ é±ÆÍæ èÜ·B±Ìâèͽt^`ZpÉæèðµÜ·BeLX g[Žt^`ðs¤½ßÌêÊIÈû@ÍAVAñüÉ 2 ÂÌ ChCoðCXg[µÄAñ½t^©ç½t^ÖÌÏ·(¨æÑtÏ ·)ðs¤±ÆÅ·B±êÍÁêÈ@íÅ èAVµ¤ÆÈéÆ¿Å µå¤B 12.2. ×iƵÄmçêÄ¢én[hEFA 12.2.1. ÁèÌrfI{[hÅN±é I/O AhXÌÕËðñð·éû@ IBM 8514 {[h(ÈÇ)Ì I/O AhXÍ 0x?2e8 ƾíêĢܷ(? Í 2, 4, 8, 9 Ì¢¸ê©)BVA|[gªAhXðWJ·éÉ 16 il ÌæªÌ 0 Å é ð³·é(½ÌVA|[gÍ»Ìæ¤É®ìµÜ ·)êÉÍA±êÍ 0x02e8 É é ttyS3 Ì I/O AhXÆÕ˵ܷ(½ ¾µVA|[gª¤ÜÝv³êÄ¢êÎÕ˵Ȣ͸ŷ)B±ê ÍA±ÌAhXÅ ttyS3 ðg¨¤ÆµÄ¢élÉÍ¢Á½bÅ·B±êÆ ÍÊÌâèÅ Linux Í ttyS3 É éà fðoūܹñ ªAsetserial ðgÁıÌAhXÉ ttyS3 ðu¯ÎAfͤܮ ì·éŵå¤B 12.2.2. AMD Elan SC400 CPU (PC-on-a-chip) ÅÌâè ±êÍèÝÆ UART ÌóÔWX^ª£·éÆ¢¤âèÅ·BUART Ì gX~b^ªoCgf[^ÌMðI¦AUART ÌMobt@ªóÉÈ éÆ(Mobt@ÍÌoCgf[^ðÒ¿Ü·)èݪs³êÜ·B µ©µ UART ÌóÔWX^ÍA±êª\ª½f³êéÙǬXV³êÜ ¹ñB»ÌÊAèÝT[rX[`ª¬È`FbNðs¤ÆA½à N±ÁĢȢÆ(ÔáÁÄ)»fµÜ·Bµ½ªÁÄAÉ]·×«oCg f[^ÍVA|[gÉçê¸AUART ÌgX~b^ÍͱÆÌÈ ¢oCgf[^ðµÒ¿±¯é±ÆÉÈèÜ·BèÝT[rXªóÔ WX^ð`FbN·éÜÅÌҿԪव·¯êÎAÀÛÌóÔª½ f³êASĪ¤Üs͸ÈÌÅ·ªcB VAhCoÉpb`ðÄé±ÆÉæèA±Ìâèððµæ¤Æ¢¤ ñÄà èÜ·Bµ©µA×n[hEFAÉηé½ßÉ Linux Épb `ðÄé׫ŵ天? µ©àâèÈ¢n[hEFAÅÌ«\ª¿é© àµêÈ¢ÌÉB 13. guV [eBO f¨æÑAfÉεÄp¢é getty ÉÖµÄÍAModem-HOWTO Ìg uV [eBOÌÍð²¾³¢B 13.1. VAÌdCIÈffðs¤¹ï 13.1.1. pRlN^̬¨ [ªÂ¾¯ÈçÎeX^(d³vƵÄg¢Ü·)ª êÎ\ªÅµå¤ ªAVA|[gÌzüð²×é½ßÌÈPÈÁêíïà èÜ·B»Ì ÉÍupRlN^(breakout)vÆÄÎêéà̪ èÜ·BubreakoutvÆ ¢¤¾tÍA±üðP[u©çæèo·Æ¢Á½Ó¡Å·B±Ìæ¤È¬¨ ÉÍ 2 ÂRlN^ªt¢Ä¨èAVAP[uðq®æ¤ÉÈÁÄ¢Ü ·Bd³vðq®[qªÂ¢Ä¢éàÌà èÜ·BÁèÌf§äüªI ÉÈÁÄ¢éÆ_·é LED vªÂ¢Ä¢éàÌà èÜ·BCÓÌ üÆüðڱūéæ¤ÉWpªÂ¢Ä¢éàÌà èÜ·BXCb`ª ¢ĢéàÌà èÜ·B Radio Shack Ìdí®ÅuRS-232 TroubleshootervÂÜèuRS-232 üe X^vðÁĢܷ(1998 N)B±êÍ TD, RD, CD, RTS, CTS, DTR, DSR ð`FbNµÜ·BÎÌvÍI(+12 V)ð\µAÔÌvÍIt(-12 V)ð\µÜ·B±ÌXÅÍuRS-232 VAWp{bNXvÆ¢¤AÚ ±sð©RÉI×éuàÁĢܷB 13.1.2. d³Ìªè ÇñÈd³vâeX^Åà(10 hÅçêÄ¢éæ¤ÈÀ¨Å³¦)¤Ü g¦é͸ŷBd³Ì`FbNɼÌû@ðg¤ÌÍÊ|Å·BïRð¼ñ Éq¢Å LED É©©éd³ðº°È¢ÀèALED ðgÁÄÍ¢¯Ü¹ñB 20 mA Ì LED ÅÍ 470¶ ÌïRðgÁľ³¢(½¾µSÄÌ LED ª 20 mA ÆÍÀèܹñ)BLED ÍÜÁ½É«Åµ©õçÈ¢ÌÅA+ Æ - Ìd³ð ²×é±ÆªÅ«Ü·B©®IÉñHð¸·é±Ìæ¤È¬¨ðN©ìèÜ ¹ñ©? _v[uÍg¨¤Æ·éÆóêĵܤ©àµêܹñBÆ¢¤ ÌàATTL ªzèµÄ¢éd³Í½Á½Ì 5 V ¾©çÅ·B12 V ÌMd ðg¤ÌÍâß½ûª¢¢Åµå¤Bd ÅÍÉ«Íí©èܹñµAUART ÌoÍd¬ÍÀçêÄ¢é½ßA½Ôñõé±Æ³¦È¢Åµå¤B XÌRlN^Ìd³ðªè·éÉÍAÈ°½y[p[Nbvð²×½¢ É·µÞÆæ¢Åµå¤By[p[Nbv̼aÍsæèଳ¢Í¸ ÈÌÅAÚGð¯é±ÆÍ èܹñBÚ±·é½ßÉÍAjûN bv()Åy[p[Nbvð²Ýܵå¤B 13.1.3. d³ð¡íÁÄÝé eXgÉg¦éí荒A©ÂdCVbNðó¯é(´d³¦·é)oåª êÎAÅãÌèiƵÄd³ð¡í¤Æ¢¤û@à èÜ·B²×é±üð ÈßéOÉÍA³d¬ª¬êĢȢ±Æðm©ßܵå¤B¼û̱ü É(¯É)ÐûÌèÅGêAVbNðó¯é©Ç¤©ðmFµÜ·BVb Nðó¯È¯êÎÚĢðÈßÄGçµAÄѱüÉGêÄÝܵå¤B ±êÅVbNðó¯êÎAÈßÄÝéCÍ«ÁÆÈÈéŵå¤B 12 V ð²×éÉÍAܸwðÈßÄAêû̱üð»Ìwɵ¯ܷB ÉÊ̱üÉãÅGêÜ·BãÅGê½±üɳÌd³ª©©ÁÄ¢êÎA ÍÁ«èƵ½¡ª·éŵå¤BÇñÈ¡ª·é©OàÁÄmÁĨ«½¯ êÎAùdÌdrðÈßÄÝéÆ¢¢Åµå¤B 13.2. VA|[gÌÄÆff f§äüðĵA»Ìd³ª³(1)Å é©(0)Å é©ð¦· Linux pÌvOª¢Â© èÜ·B ``VA|[gÌÄ/ffpÌv O'' ÌÍð²¾³¢B 13.3. ȺÌßÍ Serial-HOWTO Éà Modem-HOWTO Éà èÜ·: 13.4. ¨IÉÍVA|[gª éÌÉAo³êܹñ foCX(fÈÇ)ªm©É®ìµÄ¢éÈçA»ÌfoCXªqªÁÄ¢ éVA|[gÍo³êĢܷBÜÁ½®ìµÈ¢ÌÅ êÎAV A|[gªoÅ«é±Æðm©ßéKvª èÜ·B BIOS Ìj [ÆoÍbZ[WðmFµÜµå¤B PCI oXÈçÎ lspci ðg¢Ü·B ISA oXãÌ PnP VA|[gÌêÉÍA"pnpdump --dumpregs" ðµ½èA Plug-and-Play-HOWTO ð²ÉÈÁľ³¢B "scanport" ðg¤ÆAISA ãÌSÄÌ|[gðXLµAVA|[g ©àµêÈ¢¢mÌ|[gð©Â¯é±ÆªÅ«Ü·(½¾µ|[gÌT¸Í s¢Ü¹ñ)Bscanport Í PC ðnO³¹é©àµêܹñB setserial ðgÁÄT¸ðsÁÄàæ¢Åµå¤B``T¸''ÌßðQƵľ³¢BV A|[gÉf[^ª½à¬êĢȢæ¤Å êÎAVA|[gÍ ÁÄàèݪÔáÁÄ¢é©àµêܹñB ``±ÌãÈx¢: eL Xgª·²xêÄäÁèæÊÉ\¦³êÜ·'' Ìßð²¾³¢B 2 ÂÌ|[gª¯¶ I/O AhXðÁÄ¢éêAT¸ÅÍÔáÁÄ|[ gªêµ©¦³êܹñBvO&vCÉæéoÅͼûÌ|[gª© ©éÌÅA±êªâèÉÈéÌÍAvO&vCÅÈ¢|[gªÈÆ àê é꾯ŷBu¤Lv³êÄ¢é|[gÉÚ±µÄ¢éfoCX ÅÍÙÆñÇÇñÈG[Åàñ/o³êé±Æª èÜ·ªA¯¶|[ gÉ 2 ÂÌfoCXªqªÁÄ¢éÆ¢¤ÀÍo³êÈ¢æ¤Å·(K¢ É੪ũ¯éêÍ«Ü·)BIRQ ªá¤êÉÍAsetserial Åe IRQ ðT¸µ½Æ«É IRQ Ìoɸs·é±ÆÉæèA±ÌóÔðu ovÅ«éÆv¢Ü·B ``T¸''Ìßð²¾³¢B 13.5. ±ÌãÈx¢: eLXgª·²xêÄäÁèæÊÉ\¦³êÜ · ±êÍèÝÌÝèªÔáÁÄ¢é©AÕ˵Ģé½ßŵå¤BßÄ fâ[Av^ðg¨¤Æµ½Æ«Éoï¤æ¤È»Ûð¢Â©¦ µÜ·BêÉæÁÄÍAü͵½¶ª½bào½È¢Æ\¦³êÈ¢±Æ ª èÜ·Bü͵½Åã̶µ©\¦³êÈ¢±Æà èÜ·BܽA» ̶ªPÉÚÉ©¦È¢<üs>¶ÅAJ[\ª 1 sºÉÚ®µ½±Æ µ©í©çÈ¢±Æà èÜ·BܽÊÌêƵÄÍAæÊÉf[^ͽ ³ñ\¦³êéÌÅ·ªA16 ¶²ÆÌ©½Üèŵ©\¦³êÈ¢±Æà èÜ·B»µÄA 驽ÜèÌÌ©½Üèª\¦³êéÜÅÉͽbà Ì·¢Ò¿Ôª±«Ü·Buinput overrun(üÍI[o[)vÌG[ bZ[Wª\¦³êé( é¢ÍOÉcé)±Æà èÜ·B Úµ¢ÇóÆ»êªN±éRÉ¢ÄÍA ``èÝÌâèÉÖ·éÚµ¢à¾''ÌÍâ``èÝÌÕË''ÌßA`` èÝÌÝè~X''Ìßð©Ä¾³¢BvO&vCfoCXªçÝÌâ èÈçAPlug-and-Play-HOWTO à©Ä¾³¢B {ÉèÝÌâè©Ç¤©ðÈÕIɲ×éÉÍA"setserial" Å IRQ ð 0 ÉÝèµÄ¾³¢B±êÉæèAhCoÍèÝÅÍÈ|[ Oðg¤æ¤ÉÈèÜ·B±êÅux¢vâèªð·éæ¤Å êÎA èÝÌâèªN«Ä¢Ü·B½¾µA»ÌêÅàèÝÌâèðð· ׫ŷBȺÈçA|[OÍRs [^̹ðåÊÉÁïµÜ· µAÉÍX[vbgðIÉẳ¹é©çÅ·B èÝÌÕËð©Â¯¾·ÌÍeÕÅÍÈ¢©àµêܹñBÆ¢¤ÌàA Linux ÍèÝÌÕËðS³¸A[UªÕËðN±»¤ÆµÄ¢éÆ »f·éÆ``/dev/ttyS?: Device or resource busy'' G[ðé±ÆÉ ÈÁÄ¢é©çÅ·Bµ©µA{ÉÕ˪N±éÂ\«ª éÌÍ "setserial" ªÔáÁ½îñðwèµÄ¢½êÅ·Bµ½ªÁ ÄA"setserial" ðgÁÄàÕË;ç©ÉÈèܹñ(ܽA"setserial" ÌîñÉîâÄÝè³êé /proc/interrupts ð²×ÄàÕËÍí©èܹ ñ)B»êÅàn[hEFAÌÀÛÌÝèð²×éÉAÔáÁÄ¢éªð ³mÉË«~ßļ·ÉÍA"setserial" ÉÝè³êÄ¢éîñðmçȯê ÎÈèܹñB ±¤¢Á½êÉs¤×«ìÆÍAWpâ PnP Ýè\tgEFAðgÁ ÄAn[hEFAÉÀÛÉÝè³êÄ¢éîñð²×é±ÆÅ·BPnP Ìê ÉÍA"pnpdump --dumpregs" (ISA oXÌê)Ü½Í "lspci" (PCI oXÌ ê)ðÀsµÜµå¤B»µÄALinux ("setserial" )ªl¦Ä¢én[ hEFAÌÝèƱÌÊðä׾³¢B 13.6. Ⱥ©x¢: Æ 2A3 {ͬ¢Í¸ÈÌÅ·ª l¦çêéRÌêÂÍAVA|[gðgÁÄ¢éfoCX(fâ[ Av^)ªA Ƚªl¦Ä¢éÙǬ®ìµÈ¢±ÆÅ·B l¦çêéÊÌRÍA ȽªgÁÄ¢éVA|[gªÃ¢ (UART 8250, 16450 âúÌ 16550)ÆVAhCoªF¯µÄ¢é±ÆÅ ·B``UART Æͽŷ©?''ðQƵA "setserial -g /dev/ttyS*" ðgÁ ľ³¢B»ÌÊÆµÄ 16550A æè«\ªæÈ¢ UART ª\¦³ê½ çA±êͽªÝèÌâèÅ·B±ÌêÍA"setserial" ÌÝèÉâèª êÎA±êðÏXµÜ·BÚµÍ ``setserial Æͽ©?''ð©Ä¾³ ¢BṞÆÅ·ªAÀÛÍâVA|[gðgÁÄ¢éÌÉ setserial ð¾Ü»¤ÆµÄàAPÉÔª«»·é¾¯Å·B 13.7. VXeN®ÌæÊÅAVA|[gÌ IRQ ªÔáÁÄ\¦³ê Ü· Linux J[lÍVXeÌN®É IRQ ÌoÍSs¢Ü¹ñB serial W [ª[h³ê½ÉAVAfoCXÌoªsíê龯Š·Bµ½ªÁÄAJ[lª IRQ ÉÖµÄs¤\¦Í³µÄ¾³¢BÈ ºÈçA±Ì_ÅÍWÌ IRQ ðßÅ¿µÄ¢é©çÅ·B±Ìæ¤É ÈÁÄ¢éÌÍAIRQ oÍÄÉÈç¸AÔᤱƪ é©çÅ·Bµ© µ setserial ªN®XNvg©çÀs³ê½êÉÍAsetserial Í IRQ ðÏXµAVµ¢(»µÄ½ª³µ¢)óÔðN®æÊÉ\¦µÜ·BÔáÁ½ IRQ ªãÅù³³êÄæÊÉ\¦³êȯêÎA½©âèªN±ÁĢܷB æÁÄAIRQ 5 ÉÝè³êÄ¢é ttyS2 ª éêÅ ÁÄàALinux ÌN ®ÉÍ ttyS02 at 0x03e8 (irq = 4) is a 16550A Æ\¦³êÜ·(âJ[lÅÍ "ttyS02" ÌÆ±ëª "tty02" ÆÈèÜ ·)BÀÛÉg¤ IRQ ð Linux Émç¹éÉÍAsetserial ðgíȯêÎ ÈèܹñB 13.8. "Cannot open /dev/ttyS?: Permission denied" Æ¢¤G[ªoÜ · "ls -l /dev/ttyS?" ðÀsµÄ»Ì|[gÌt@CÌp[~bVð² ×ÄÝܵå¤BttyS? ÌLÒª©ªÅ êÎAÇÝ«Ìp[~bV ÆµÄ crw ªKvÅ·BÅÌ Í c (LN^foCX)Å·B|[gÌ LÒÅȯêÎA8 ÚÆ 9 Úª rw- ÅȯêÎÈèܹñBÂÜèN Åà»Ì|[gðÇݫūȯêÎÈèܹñBp[~bVðÏX· éÉÍ "chmod" ðg¢Ü·BANZX Àð¾éû@ƵÄÍAO[vp [~bVðÁÄ¢éuO[vvÉ®·éÆ¢Á½àÁÆ¡GÈàÌ à èÜ·B 13.9. ttyS? É墀 "Operation not supported by device" Æ¢¤G[ ªoé ±ÌG[ÍAJ[lªT|[gµÄ¢È¢½ßÉAsetserial â stty ªvµ½ìªs¦È¢Æ¢¤Ó¡Å·BÈOÍ "serial" W [ª [h³êÄÈ¢±Æª´öÌꪽ©Á½ÌÅ·ªAPnP ÌoêÉæèA± ÌG[ÍhCo(¨æÑ setserial)ªl¦Ä¢éAhXÉf ( é ¢Í¼ÌVAfoCX)ªÈ¢±Æ𦷱ƪ½Èèܵ½B±¤ ¢Á½AhXÉfªÈ¯êÎA»ÌAhXÉçê½(ìÌ½ß Ì)R}hÍRȪç³êܹñB ``VA|[gÌn[hEFA ÌÝèÍ?'' Ìßð²¾³¢B "serial" W [ª[h³êĢȩÁ½ª¡[hµ½Æ "lsmod" ª \¦·éêÍAW [Í¡[h³ê½¯êÇAG[ªo½ÉÍ [h³êĢȩÁ½Ì©àµêܹñB½ÌêAW [ÍKvÈ É©®IÉ[h³êÜ·(൩¯é±ÆªÅ«êÎ)B"serial" W [ð§IÉ[h³¹éÉÍA /etc/modules.conf Ü½Í /etc/modules ÉLqµÄ¨«Ü·BW [»ÌàÌÍ /lib/modules/.../misc/serial.o É é͸ŷB 13.10. "Cannot create lockfile. Sorry" (G[bZ[W) ½ç©ÌvOª|[gðuI[vv·éAbNt@Cª /var/lock/ ÉìçêÜ·Block fBNgÌp[~bVªÔáÁÄ¢ éÆA±±ÉbNt@CðìêܹñBp[~bVª³µ¢©Ç¤© ðmF·éÉÍ "ls -ld /var/lock" ðg¢Ü·BÊÍSõÉ뵀 rwx Å·(rwx ª 3 xJèÔ³êÜ·)Bp[~bVªÔáÁÄ¢éêÉ ÍA"chmod" R}hðgÁÄC³µÜ·Bà¿ëñA"lock" fBNg ªÈ¯êÎA»±ÉbNt@Cðìé±ÆÍūܹñBbNt@C ÉÖ·éAæèÚµ¢îñÉ¢ÄÍ ``bNt@CÆͽŷ©?''Ìß ð²¾³¢B 13.11. "Device /dev/ttyS? is locked." (foCX /dev/ttyS? ªbN³ êĢܷ) ±ÌbZ[Wªo½êÉͨ»çAN©¼Ìl( é¢Í¼ÌvZ X)ªVA|[gðgÁĢܷB±Ì|[gðugpvÌvZXð ©Â¯éû@Í¢Âà èÜ·BêÂÌû@ÍAbNt@C (/var/lock/LCK...)Ìgð©é±ÆÅ·B±êÍA|[gðgÁÄ¢év ZXÌ ID Ì͸ŷBvZX ID ª á¦Î 261 ÈçÎA"ps 261" ðÀ sµA»êª½©ð²×ܵå¤B»µÄA»ÌvZXªàÍâsvÅ ê ÎA "kill 261" ÅDµ kill µÄࢢŵå¤B±êÅI¹µÈ¢È çA "kill -9 261" ðÀsµÄ§IÉ kill µÄ¾³¢B½¾µA±Ì êÉÍbNt@CªÁ³ê¸ÉcéÌÅAèÅÁ·Kvª éÅµå ¤Bà¿ëñA261 Ìæ¤ÈvZXª¶ÝµÈ¯êÎPÉbNt@Cð ÁµÄ©Ü¢Ü¹ñBµ©µAbNt@Cª¦·vZX ID (261 )ª ³øÅ êÎA½Ìê»ÌbNt@CÍ©®IÉí³êé͸Š·B 13.12. "/dev/ttyS?: Device or resource busy" ±êÍANZX(ÂÜègp)µæ¤ÆµÄ¢éfoCXªrW[óÔ (gp )Æl¦çêé©AfoCXªKvƵĢé\[X(IRQ )ª¼Ìfo CXÉgíêÄ¢éÆl¦çêé±Æð¦µÜ·B{ÉurW[óÔv̱ Æà èÜ·ªA»¤ÅȯêÎÔáÁÄurW[óÔvÌæ¤É©¦Ä¢é ¾¯Å·B ``resource busy'' ̪ÍæA(á¦Î ttyS2 Å)u¼ÌfoCXª ttyS2 ÌèÝðgpÈÌÅAttyS2 Íg¦Ü¹ñvÆ¢¤Ó¡ÉÈèÜ ·B "setserial" ÌÝèÉæéèÝÌÕËÌÂ\«ªl¦çêÜ·B± ÌG[bZ[WðàÁƳmɾ¤ÆAuttyS2 ðg¦Ü¹ ñBsetserial Ìf[^(ÆJ[lÌf[^)ªA¼ÌfoCXª ttyS2 Ì èÝðgÁÄ¢éƦµÄ¢Ü·vÆÈéŵå¤B2 ÂÌfoCXª¯ ¶ IRQ ðgÁÄ¢ÄàA»Ì¤¿ÌÐûµ©N®µÄ¢È¯êνàâèÍ N«Ü¹ñBܾÕËÍN«Ä¢È¢©çÅ·Bµ©µAÉ(ÅÌfoC XðI¹³¹È¢ÜÜÅ) 2 ÔÚÌfoCXðN®µæ¤Æ·éÆA"... resource busy" ÌG[bZ[WªoÜ·B±¤ÈéÌÍAJ[lªÇ Õ·éÌÍÇÌ IRQ ªÀÛÉgíêĢ驾¯ÈÌÅAfoCXªgp(I [v)³êȯêÎÕËÍN«È¢©çÅ·B 2 ÊèÌêªl¦çêÜ·BܸA{ÉèݪÕ˵»¤ÈÌÅA» êðð¯æ¤ÆµÄ¢éÆ¢¤êà éŵå¤Bµ©µAsetserial ª¨ á¢ðµÄ¢éÆ¢¤êà èÜ·µA»¤¾Æ·éÆ(setserial ªÔ áÁ½ÕËð\ªµ½Æ¢¤ÈOÉÍ) ttyS2 ªg¦È¢RÍDZÉàÈ¢ ͸ŷB±±Å·×«±ÆÍAttyS2 ªgÁÄ¢éÆ setserial ªl¦Ä ¢éèÝÔð²×é±ÆÅ·B±ê;¤ÌÍÈPÅ·ªAttyS2 ÉÎ µÄ "setserial" ðg¦È¢½ßAÀÛÉâéÌÍÊ|Å·B"setserial" ªg¦È¢ÌÍAttyS2 Ì IRQ ÍurW[óÔvÆ¢¤±ÆÉÈÁĨèA ¯¶ "device busy" ÌG[bZ[Wðo·©çÅ·B±êðð·é ÉÍAÄN®·é©AÕ˵Ģ»¤ÈvZXðDµ kill µÄ¾³ ¢BÄN®·éÛÉÍ̱ÆðsÁľ³¢B 1. VA|[gÉÖ·éN®bZ[Wðæ©éB 2. N®É "setserial" ðÀs·ét@Cª(PÆÅ)¯¶ÕËðJèÔµ ÄN±³È¢±ÆðFéB ttyS2 ªgÁÄ¢é IRQ ðmÁÄ¢éÂàèÅ êÎA /proc/interrupts ð©ÄA»Ý»Ì IRQ ðgÁÄ¢é¼ÌfoCXð©Â¯éÆæ¢Åµå ¤B/proc/interrupts (â "setserial")ª¦·^íµ¢ IRQ ª³µ¢(n[ hEFAÌÝèƯ¶)©Ç¤©ðSÄ`FbNµ¼·Ìàæ¢Åµå¤B èݪÕ˵ĢéÂ\«ª é©Ç¤©ð²×éû@ÍA "setserial" ðgÁÄ IRQ É 0 (|[O)ðÝè·é±ÆÅ·B IRQ ɸÁÆ 0 ðÝ èµ½ÜÜÉ·éÌÍæ èܹñBÆ¢¤ÌàACPU ̹ð]vÉg¤ ©çÅ·B 13.13. guÎ̽ßÌc[ guÉηéÉg¤Ææ¢vOª¢Â© èÜ·: o "lsof /dev/ttyS*" ÉæèAI[v³êÄ¢éVA|[gªXg \¦³êÜ·B o "setserial" ÍAVA|[gÌáxn[hEFAÝèÌ\¦ÆÝ èðs¢Ü·(hCo¤ÌÝèÅ·)BÚµÍ ``setserial Æͽ ©?'' Ìßð©Ä¾³¢B o "stty" ÍVA|[gÌÝè("setserial" ªµ¤ªð)Ì\¦Æ Ýèðs¢Ü·B``stty'' Ìßð©Ä¾³¢B o "modemstat" Æ "statserial" ÍAfÌeíMü(DTR, CTS ÈÇ)Ì »ÝÌóÔð\¦µÜ·B o "irqtune" ðg¦ÎAVA|[gÌèÝÌDæxðã°Ä«\ð üã³¹é±ÆªÅ«Ü·B o n[hfBXNÌ` [jOðs¤ "hdparm" à¢ç©ðÉ§Â©à µêܹñB o "lspci" ÍAPCI oXãÌn[hEFAÌÀÛÌ IRQ ð\¦µÜ·B o "pnpdump --dumpregs" ÍAISA oXãÌ PnP foCXÉ¢ÄAn[h EFAÌÀÛÌ IRQ ð\¦µÜ·B o /proc fBNgÌut@Cv̢©(ioports â interrupts )B 14. èÝÌâèÉÖ·éÚµ¢à¾ ``guV [eBO''ÌÍÅÍÇóÊÉâè_ð°Ä¢Ü·ªA±Ì ÍÅÍèÝÌÝèðëÁÄ¢éêɽªN±éÌ©ðྵܷB±Ì ÍÍA½ª»ÌÇóðN±·Ì©A¯¶´öżÌÇñÈÇóªoéÌ©A± êçÉǤη׫ÈÌ©ðð·é¯ÉÈéŵå¤B 14.1. èÝÌâèÌíÞ "setserial" vOÍAVAhCoªl¦Ä¢éèÝÌÝèð \¦µÜ·BVAhCo(Æ setserial)ª³µ¢îñðÁÄ¢êÎA èÝÉÖ·é±ÆÍSĤÜs͸ŷBà¿ëñAfoCXÉÎ ·é /dev/ttyS t@CͶݵȯêÎÈèܹñµAvO&vC(Ü ½ÍWp)Ån[hEFAÉAhXÆ IRQ ðÝèµÄ¢È¯êÎÈèÜ ¹ñBLinux ÍèÝÌÕËðmÁĢķé±ÆÍÈ¢ÌÅAÕËð N±·æ¤ÈÝèðÝéÆ "Device or resource busy" Æ¢¤G[b Z[Wª\¦³êÜ·B [UªèÝðÕ˳¹»¤ÉÈéÆJ[lÍèÝÌÕËðð¯æ ¤ÆµÄ "resource busy" Æ¢¤bZ[WðoµÜ·B·éÆèÝÌ Õ˪N±é±ÆÍ è¾È¢Ìŵ天? ¢¢¦AÈPÉN±èÜ·B n[hEFAÌÝèª{ÉÕËðN±µ»¤ÈÆ«É setserial ª»fð ëèAuÕËÍÈ¢vÆRð±Æà éÌÅ·B±Ìæ¤ÈêA"... busy" Æ¢¤bZ[WÍoܹñªA«\ªµ«ÈèÜ·B 2 ÂÌ foCXͯ¶èÝMð¯¶MüÉéÌÅACPU Íèݪ 1 ÂÌfoCX©çµ©Ä¢È¢Æ¨á¢µÜ·B±êÉ¢ÄÍÈ~ÌߊڵྵܷB 2 ÂÌfoCXɯ¶ IRQ ðèÄÄàAÇ¿çÌfoCXàgíêÄ¢ ȯêÎ Linux Ͷåð¾¢Ü¹ñB»ê¼êÌfoCXÍJn(ú»)Ì ÛÉALinux Én[hEFAèÝðg¤ÂðßÜ·BLinux ÍÇÌ èݪÇÌfoCXÉèÄçêÄ¢é©ðǵĢéÌÅA»Ìè ݪùÉgíêÄ¢éÆA"... busy" ÌG[bZ[Wªoͳêé± ÆÉÈèÜ·Bµ½ªÁÄA2 ÂÌfoCXª¯¶ IRQ ðgÁÄ¢ÄàA 1 ÂÌfoCXµ©gíȯêÎA½àâèÍ èܹñBµ©µA(ÅÌf oCXðI¹³¹¸É)ÌfoCXðg¨¤Æ·éÆA"... busy" ÌG[ bZ[Wªoé±ÆÉÈèÜ·B 14.2. èÝÌëÝèâÕËÅN±éÇó N«éÇóÍAÅßÌ FIFO obt@ðÁÄ¢éVA|[gðgÁÄ¢ é©Ç¤©A é¢Í FIFO obt@ð½È¢Ã¢VA|[gðgÁÄ ¢é©Ç¤©ÅÏíÁÄ«Ü·BâVA|[gÅN±éÇóðð·é ±ÆàdvÅ·BȺÈçA¯¶±ÆªVµ¢VA|[gÅN±é±Æª X é椾©çÅ·B âVA|[gÌêÉÍAb²ÆÉ 1 ¶µ©ÊßūܹñB± êÍñíÉx¢ÌÅAÙÆñÇ®ìµÄ¢È¢æ¤É©¦Ü·(ÁÉAó¶ âüs¶ÈÇÌ©¦È¢¶ªÊß·éê)BFIFO obt@ðÂVµ ¢VA|[gÌêÉÍAbãÌÔÉ 16 ¶ÜŪ¬êĢ̪© ¦éŵå¤B |[gÉfªqªÁÄ¢ÄdbÔð_CAµÄàACONNECT bZ[ WªÊçÈ¢½ßAÚ±µÄ¢È¢æ¤É©¦Ü·Bµ©µ¸ÁÆÒÁÄ©ç Ú±µAOCbZ[W( é¢Í»ÌÞ)ÌêªÅIIÉ\¦³êé© àµêܹñBÚ±Ì È½¤©ç̪xêÄA褪 «çßÄÚ± ðØÁĵܢA"NO CARRIER" bZ[Wªoé©àµêܹñB minicom ðgÁÄ¢éêɤܮìµÄ¢é©Ç¤©²×é½ßÌêÊI ÈeXgû@ÍAêÔÈPÈR}hÅ é "AT" ðü͵A±êÉfª ½·é©Ç¤©ð²×é±ÆÅ·BPÉ at<enter> ðüÍ·éÆAÊ Í(èݪ OK ÈçÎ)¦ÀÉf©ç "OK" Æ¢¤Ôª é͸Š·BèÝÌÝ誨©µ¯êÎAat<enter> ðü͵Äà½àÔÁÄ±È ¢©àµêܹñBµ©µ 10 bç¢oÁÄ©çJ[\ª 1 sºªé© àµêܹñB½ªN±ÁÄ¢é©Æ¢¤ÆAFIFO ª 1 oCgµ©ÛÅ« È¢æ¤É®ìµÄ¢éÌÅ·Bü͵½ "at" Í FIFO ðI[o[³ ¹AÇ¿ç̶àÁ¦ÄµÜ¢Ü·Bµ©µAµÎçÒÁÄ¢½½ßÉÅ ãÌ <enter> ¾¯ÍÊèAJ[\ª 1 sºªé±ÆÉæÁÄA±Ì©¦È ¢¶ðu©év±ÆÉÈèÜ·B1 ¶ðü͵ĩç 10 bÒÄÎA»Ì ¶ªæÊÉGR[obN³êé͸ŷB Ƚª¶ðÅÄé¬xª 1 ªÔè 1 PêæèȯêÎA±êÅàåävÅµå¤ :-) 14.3. èÝÌÝè~X èÝÌ𪪩çȯêÎAæÉ ``èÝ''Ìßð©Ä¾³¢B VA|[gÌn[hEFAÉÍ IRQ ª 1 ÂÝè³êÄ¢é¯êÇAfo CXhCoɱêÆÙÈé IRQ ªÝè³êÄ¢éêAfoCXhCo ÍVA|[g©ççêéèÝðSߨµÜ¹ñBVA|[g ÍèÝðgÁÄfoCXðÄÑoµÄT[rX(16 oCgÌóMobt@ ©çÌoCgf[^Ìó¯æèâA16 oCgÌMobt@ÖÌoCgf[ ^Ì«Ý) ðv·éÌÅAVA|[gÍS®ìµÈ¢ÆvíêÜ ·B µ©µ»êÅà®-- é¢Í®¢Ä¢éæ¤É©¦é±Æà èÜ·B±ê ÍǤµÄŵ天? ÂÜèAVA|[gÉT[rXðñ·éû@É ÍAèÝÈOÉàx¢|[Oðg¤û@ª éÌÅ·B±Ìû@Í èÝðKvƵܹñB|[OÆÍAfoCXhCoªXVA |[gð²×ÄA½©KvƵĢé©Ç¤©(á¦ÎAóMobt@©çæ èÞKvª éoCgf[^ª¶Ý·é©Ç¤©)ð©éû@Å·Bè ݪg¦È¯êÎAVAhCoͱÌ|[O@ðÅIIÉg¢Ü ·Bµ©µA±Ì|[OÍèÝÌãíèÉg¤½ßÌû@ÅÍ èÜ ¹ñB|[OÍx¢ÌÅÀpIÅÍ èܹñµAobt@I[o[ ðN±·±Æà é©çÅ·B|[OÌÚIÍAèݪ 1 ¾¯³ Èé©A®ìª³µÈ©Á½Æ«ÉAJèÔµ³µ¢®ìðsí¹é±Æ ¾Á½Æv¢Ü·Bèݪ¸sµ½±Æð¦·ÛÉàÖÅ·B 16 oCgÌMobt@ÍA16 oCgð]·éÆÒ¿ÉüèAÌ|[ Oª(bãÉ)N±ÁÄ©ç³çÉ 16 oCgð辵ܷBµ½ªÁ ÄA]ÍñíÉxAܽ×ØêÉÈèÜ·BóMàxÈèÜ·BÈºÈ çAóMobt@ªó¯æÁ½oCgf[^ÍA|[OªsíêéÜÅÌ bÔÍobt@ɯÜé©çÅ·B ü͵½¶ª\¦³êéÜÅÉñíÉÔª©©éÌÍA±êªRÅ·B á¦ÎuATvÆ¢¤¶ñðfÉéÆAuATvÍVA|[gðoÄ fÉçêÜ·BfÍVA|[gðʶÄuATvðXN[É GR[obNµÜ·B±Ìæ¤ÉAuATvÆ¢¤¶ñÍVA|[gð 2 ñÊçȯêÎÈèܹñBÊͱ̮ìªñíɬÈÌÅAL[{[h Åü͵½ÌƯÉuATvÆ¢¤¶ñª\¦³êéæ¤É©¦Ü·B|[ O̽ßÉVA|[gªx¢êÉÍAü͵½¶Í½bàÒ½È ¢Æ\¦³êܹñB 16 oCgÌóMobt@ÌI[o[É¢ÄÍǤŵ天? ±êÍ Ot¯fðgÁÄ¢éêÉN±èÜ·BÆ¢¤ÌàAfÍVA |[gɬÉf[^ð龯ÈÌÅA16 oCgÌobt@ªI[o[ µÄµÜ¢Ü·Bµ©µà fÌêÉÍVA|[gÍfƯ ¶J[hãÉ éÌÅAóMµ½oCgf[^ð±ÌóMobt@ÉüêéO Éobt@Éó«ª é©Ç¤©ª½ª`FbN³êÜ·B±ÌêÉÍAó Mobt@ªI[o[·é±ÆÍ èܹñªAeLXgÍ 16 oCgÌ ÜÆÜè²ÆÉbÌÔuðu¢Ä\¦³êÜ·B Ot¯fÅ ÁÄàI[o[ªN±çÈ¢±Æª èÜ·B¶ (16 ¶Èº)µ©çêĢȢêÉÍI[o[ÍN±èܹñB obt@ÉÍåïA±ê¾¯Ìó«ª é©çÅ·Bµ©µ±êæè½¢oC gðf©çë¤Æ·éÆAæÊÅÍI[o[ªN±èÜ·B½¾ µA^C~O³¦Ç¯êÎI[o[鵃 16 oCg(Ô³µ)È㪠Êé±Æà èÜ·Bá¦Î 32 oCgªOt¯P[u©ç|[gÉêCÉ çê½êðl¦ÄÝܵå¤BO¼Ì 16 oCgª½ãÉA±Ì 16 o Cgð¤Üó¯æêéæ¤A|[OªN±é±Æà èÜ·B·éÆ Ì 16 oCgÜÅÉÍó«Ôª éŵ天çA32 rbgS̪¤Ü ÊèÜ·B±ÌViIÊèÉÈé±ÆÍ Üè èܹñªA¯lÌðÉ æè 17 oCg©ç 31 oCgªÊé±ÆÍàÁÆ¢Â\«ÅN±èÜ·B µ©µAf[^ðƵȪç 16 oCgÌf[^Ì©½Ü辯ªf±IÉ ÍÆ¢¤±ÆͳçÉæ èÜ·B 1 oCgÌobt@µ©½È¢Ã¢VA|[gÌê( é¢ÍÝèð ëÁÄ 1 oCgÌobt@Ìæ¤È®ìÉÈÁÄ¢éê)ÉÍAOÉ¢½ æèà¸ÁÆ«¢óµÉÈèÜ·BÂÜèA1 Â̶¾¯ªXVA| [gðÊéÆ¢Á½óÔÉÈèÜ·BÅãÉó¯æÁ½¶ðÆAó¯ æÁ½¶ÍSÄI[o[ðN±µÜ·(»µÄ¸íêÜ·)B±ÌÅãÌ ¶ÍPÈéüs¶Å é±Æªæ èÜ·BÆ¢¤ÌàAüs¶Íæ ÊÉêCÉçêé¶ÌÅÅã̶ÆÈé±Æª½¢©çÅ·Bµ½ ªÁÄA AT<return> ÆfÉü͵ÄàAæÊÉÍ AT Æ\¦³êÈ¢± ƪ èÜ·B»µÄbãÉN±éÌÍAJ[\ªêsºÉÚ®·é(ü s¶)±Æ¾¯Å·BMÒÉÍA16 oCgÌ FIFO obt@ª 1 oCgÌ obt@Ìæ¤É®ìµ½o±ª èÜ·B ÊMvOÍN®ÌÉAèݪ®ìµÄ¢é±ÆðúҵܷB| [OIÈ[hÌx¢®ìðg¤æ¤ÉÍÈÁĢܹñBµ½ªÁÄA VA|[gâfÌÝè~XÈÇAÇñÈëèðø«N±µÄ਩µ èܹñBÚ±ªm§µ½uÔ𩦵ĵܤ±Æà è¦Ü·BO C·é½ßÉXNvgðgÁÄ¢éêÉÍA|[OÌx̽ßÉ OCª(^CAEgÉæè)¸s·é©àµêܹñB 14.4. èÝÌÕË 2 ÂÌfoCXª¯¶ IRQ ÔðgÁÄ¢éÆAèÝð¤LµÄ¢éÆ ¾íêÜ·BðÉæÁÄÍA±Ì¤LͤܮìµÜ·Bo[W 2.2 È~ÌJ[lÍAêÉæÁÄÍAVA|[gÆÊÌVA|[gÅ èÝð¤LÅ«Ü·B PCI oXãÌfoCXÍAPCI oXã̼Ìfo CXÆ IRQ ð¤LÅ«Ü·B±êÈOÅÕËÌÂ\«ª éêÅàA¯¶ IRQ ÌfoCX 2 Âð¯Éug¤v±ÆªÈ¯êÎAâèÍN«È¢Í¸ Å·B³mÉÆAug¤vÆÍ(vO}¾tÅ)uI[v·évÆ¢ ¤Ó¡Å·BÈãÌáOðÆA(èݤLðÂ\É·éÁêÈ\tg EFAÆn[hEFAðgíÈ¢Àè)¤LͳêĨç¸A¤Lðs¨¤ Æ·éÆÕ˪N±èÜ·B IRQ ªÕ˵Ģé 2 ÂÌvZXª¯ÉÀs³ê½êÅ ÁÄàAÐ ûÌfoCXÌèݪfoCXhCoÉߨ³êA»¿ç¾¯Í¤Ü ®ì·é±Æàæ èÜ·B¼ûÌfoCXÌèÝͳµ¢hCoÉ ß¨³êÈ¢ÌÅAèÝÌÝè~Xª éÌvZXÆ¿å¤Ç¯¶æ ¤É®ì·éŵå¤BÚµÍ ``èÝÌÝè~X'' ÌÍð²¾³ ¢B 14.5. èÝÌâèÌð ãLÌæ¤ÉªñíÉx¢êÌeXgû@ÌêÂÍAIRQ ð 0 ÉÏX µÄ(èÝÌãíèɬÈ|[Oðp¢é)A±êÅâèªð·é ©Ç¤©ð²×ľ³¢BIRQ=0 Éæé|[OÍAs³ÈèÝÉæ éu|[OvÆä×Ä á¢É¬Å·BIRQ=0 Åâèªð·éæ¤Å êÎAèÝɽ©âèª éÆl¦çêÜ·BIRQ=0 Í\[XðåÊ ÉÁï·éÌÅAêIÈC³Ì½ß¾¯ÉgÁľ³¢BèÝÌâè Ì´öð©Â¯é׫ŠèA¢ÂÜÅà IRQ=0 ðgÁÄ¢ÄÍ¢¯Ü¹ ñB /proc/interrupts ð²×ÄA¼ÌvZXª»Ý»Ì IRQ ðgÁĢȢ© Ǥ©ð©Ä¾³¢B¼ÌVA|[gª»ÌèÝðgÁÄ¢éÈç ÎA"top" (f ðü굀 TTY \¦ðLøɵľ³¢)© "ps -e" ðgÁ ÄÇÌVA|[gªgíêÄ¢é©ð²×ľ³¢Bsetserial ÉÔ áÁ½ IRQ ªÝè³êÄ¢é^¢ª éêÉÍA ``VA|[gÌ»Ý Ì I/O AhXÆ IRQ ÌÝèÍ?'' Ìßð©Ä¾³¢B 15. UART Æͽŷ©? «\ÉÇÌæ¤Èe¿ð^¦éÌŵ天? 15.1. UART üå (±ÌßÍ Modem-HOWTO Éà èÜ·B) UART (Universal Asynchronous Receiver Transmitter) ÆÍAPC Ì}U[{[h( é¢Íà fJ[ h)ÉÚÁÄ¢éVAp`bv̱ÆÅ·BUART Ì@\ÍA¼ÌprÌ `bvªpÅÀ»µÄ¢é±Æà èÜ·B½Ì 486 }VÌæ¤Èà ¢Rs [^ÅÍA±Ì`bvÍfBXN I/O Rg[J[hÉÚÁ Ģܵ½B³çÉâRs [^ÌÉÍAܾêpÌVA{[hð ڹĢéàÌà èÜ·B UART ÌÚIÍAPC ÌpoX©çâÁÄéoCgf[^ðVAÌ rbgXg[ÉÏ··é±ÆÅ·BVA|[g©çoÄ¢éP[u Íf[^ðVA(¼ñ)Ééæ¤ÉÈÁĨèAf[^ª¬êéûü»ê ¼êÉ墀 1 µ©üª èܹñBVA|[gÍêxÉ 1 rbg¸ ÂrbgXg[ðèÜ·BtÉAOt¯P[uðoRµÄVA| [gÉüÁÄ«½rbgXg[ÍARs [^ªÅ«épÈ oCgf[^ÉÏ·³êÜ·BUART Íf[^ðoCgPÊŵ¢Ü·B±Ì PÊÍsª¢¢±ÆÉ ASCII ¶Ì嫳Åà èÜ·B PC ÉÔ纪ÁÄ¢é[ª éàÌƵܷB[Uª¶ðüÍ·é ÆA[ͻ̶ðgX~b^É(UART Éà)èÜ·BgX~b ^Í»ÌoCgf[^ðVAñüÉèAMÍ 1 oCg¸ÂAÁèÌ ¬xÅsíêÜ·BPC ¤ÅÍAóMðs¤ UART ªrbgñðSÄó¯æ èA(pÌ)oCgf[^ɳµA±êðobt@ÉüêÜ·B VAÆpÌÏ·ÉÁ¦ÄAUART ÍåÈÌY¨(ìp)Ƶ ļÌà¢Â©s¢Ü·Brbgñð\·½ßÉg¤d³àÏ·(ÏX) ³êÜ·BoCgf[^ªM³êéOÉ»ê¼êÌoCgÉεÄÇÁÌ rbg(¢íäéX^[grbgÆXgbvrbg)ªÁ¦çêÜ·BÚµÍ Serial-HOWTO Ì``d³Ìg`''Ìßð©Ä¾³¢BܽARs [^à ÌpoXãÌt[[g(oCg/b)ÍñíɢŷªAVA |[g¤Ì UART ©çoét[[gͱêæèà¸ÁÆá¢Å·BUART ͢©Ìßçê½t[[g(¬x)ÌgðÁÄ¢ÄA±êðVA |[gC^tF[XÅg¤±ÆªÅ«Ü·B 15.2. 2 íÞÌ UART UART Ìî{IÈíÞÍ 2 Â(_ UART Æ FIFO UART) èÜ·B_ UART Í 8250, 16450, ú^ 16550, ú^ 16650 Å·B±êçÍãxêÌà ÌÅ·ªA±êçÌ®ìÌdgݪí©êÎAFIFO UART(ÅßÌ 16550, 16550A, 16c552, ÅßÌ 16650, 16750, 16C950)Ì®ìðð·éÌàeÕÅ ·B 16550 É¢ÄÍ´çíµ¢_ª¢Â© èÜ·BúfÉÍoOª èA(FIFO ð½È¢)16450 Ƶĵ©³µ®ìµÜ¹ñBoOªC³³ ê½ÅßÌfÉÍ 16550A Æ¢¤¼Oªt¢Ä¢Ü·ªA½Ì[J[ ͼOðÏXµÄ¨ç¸A16550 ÆÄѱ¯Ä¢Ü·B»ÝgíêÄ¢é 16550 ÌåªÍ 16550A Ìæ¤Å·Bn[hEFAÌà¾É 16550 Å éÆ©êÄ¢Äà( é¢ÍxÉ»Ìæ¤Éó³êÄ¢Äà)ALinux Í 16550A Å éÆF¯µÄêÜ·B¯lÌîª 16650 Éà èÜ·(± ¿çÌûª[Å·BÆ¢¤ÌàA·¢½bÅÍ[J[ªoOðFßÈ©Á ½©çÅ·)BLinux ÍÅßÌ 16650 ð 16650V2 ƵÄF¯µÜ·B16650 ÆF¯³ê½êÉÍcOȪçA1 oCgÌobt@µ©ÁÄ¢È¢æ¤ É®ìµÜ·B 15.3. FIFO _Æ FIFO(L [Ì®ìªt@[XgCEt@[XgAEg(First In, First Out)Å é)Ìá¢ðྷé½ßÉAÜ¸Í UART ª 1 oCgÌf[ ^ðóMµ½ê̱Æð²×ÄÝܵå¤BUART {ÌÍ©ªðÊéf[ ^ÉÖµÄͽàsí¸APÉf[^ðóM·é¾¯Å·B³XÌ_ UART ÌêÍAoCgf[^ªóM³êéxÉ CPU ªVAfoCX© çèÝðó¯æèÜ·BCPU ͱêðó¯ÄAóMµ½oCgf[^ð UART Ìobt@©çæèoµÄãÌDZ©Éu©AM·×«Ì oCgf[^ð UART Én·©ÌÇ¿ç©®ìðs¢Ü·B8250 Æ 16450 UART ÉÍ 1 oCgµ©obt@ª èܹñBÂÜèA1 oCgÌf[^ð óM·éxÉ CPU Éèݪ©©èÜ·B]¬xªá¯êαêÅà åävÅ·Bµ©µ]¬xª¬Å éêÉÍAUART ÌÌת CPU É©©è·¬é½ßA¼Ìð¤Üs¦é¾¯ÌÔªÈÈÁĵ ܢܷBêÉæÁÄÍACPU ÌèݪÔÉíÈÈÁÄµÜ ¢AoCgf[^ªã«³êĵܢܷBȺÈçAf[^ªüÁÄé ̪¬ß¬é©çÅ·B±êÍuI[o[(overrun)v é¢ÍuI[o [t[(overflow)vÆÄÎêÜ·B ±êª FIFO UART ªð§ÂRÅ·B16550A( é¢Í 16550)Ì FIFO `b vÉÍ 16 oCgÌ FIFO obt@ªt¢Ä¢Ü·BÂÜèACPU ÉèÝ ª©©éÜÅÉ 14 oCgÜÅðó¯æêÜ·(16 oCgÜÅðêÜ·)B ½³ñÌoCgf[^ðÒÄ龯ÅÍÈACPU Í 14 oCgSÄ(ܽ Í»êÈã)ÌoCgf[^ð¯É]Å«Ü·B±êÍAobt@ð 1 o Cgµ©ÁĢȢ¼Ì UART ÉεÄÁÉDêÄ¢é_Å·BCPU ªó¯ éèÝàȼÌÉñ¹Ü·µAf[^ªÈÈé±ÆàÈFK ¹ÉÈêÜ·BFIFO obt@ÌèÝÌèl(gKx)ÉÍ 14 Ⱥ ÌlªÝèÅ«é_Éӵľ³¢B±Ì¼ÉÍ 1, 4, 8 ªI×Ü·B åïÌ PC ÉÍ 16 oCgÌobt@ð 16550 µ©t¢Ä¢Ü¹ñªA È UART ÉÍàÁÆå«Èobt@ª èÜ·BèÝÍobt@ª ¢ÁÏ¢ÉÈé¼O(á¦Î 16 oCgÌobt@ÅÍ 14 oCgÌugK xvÌ_)És³êé_Éӵľ³¢B±¤·é±ÆÉæèA èÝT[rXªÀs³êéÔÉà½oCg©Ìf[^ðó¯æêé]Tª cèÜ·B±ÌgKxÉÍAJ[lÌ\tgEFAªÂµ½FXÈ lðÝèÅ«Ü·BgKxð 1 É·éÆA_ UART ÆÙÚ¯¶ÉÈ èÜ·(½¾µAèÝðsµ½ãÉà³çÉ 15 oCgðó¯æéó« ªcÁÄ¢é_ªÙÈèÜ·)B BBS ÉüÁÄ¢éɽ©¶ðü͵½êAü͵½¶ÍVA|[ goRÅèo³êÜ·Bü͵½¶ªæÊÉ\¦³êéÌÍA»Ì¶ª dbñüEfEVA|[goRÅæÊÉGR[obN³êÄ¢é©ç Å·BàµVA|[gÉ 16 oCgÌobt@ªt¢Ä¢ÄA14 oCg WÜéÜŶðÁÄêȢƵ½çA¶ð½³ñü͵ȯêÎü ͵½¶ªÚÅmFÅ«È¢(æÊÉ\¦³êÈ¢)±ÆÉÈèÜ·B±êÅ ÍâⱵĽÜçÈ¢ÌÅ·ªA»ñÈÔðh®½ßÉu^CAE gvª èÜ·B¾©ç±»ÊÍü͵½¶ª¦ÀÉ\¦³êéÌÅ·B UART ÌóMobt@ÌêA±Ìu^CAEgvÍ ÈºÌæ¤É®ìµÜ ·: ¶ªXÆâÁÄéÈçAobt@Éá¦Î 14 ÂÚ̶ªob t@ɽƫɾ¯èݪs³êÜ·Bµ©µA 鶪͢½ã ɵÎç̶ªÍ©ÈÄàâÍèèݪs³êÜ·B±Ìè ÝͽƦobt@É 14 ¶ªüÁÄ¢ÈÄàs³êÜ·(1 ¶ ÅàüÁÄ¢êÎs³êÜ·)Bµ½ªÁÄA±Ìobt@ðʵĶð üÍ·éÆAobt@Ì嫳ªÀÛÉÍ 16 oCgÅ ÁÄà( Ƚª¶ ðÅ¿Þ¬³ªÊÌ 100 {ÅȯêÎ) 1 oCgÌobt@Ìæ¤É ®ìµÜ·B¯lÌu^CAEgvªMobt@Éà èÜ·B 15.4. UART ÌfÔ ÈºÉ UART Ìêð¦µÜ·BTL ÍgKx(Trigger Level) Å·B o 8250, 16450, úÌ 16550: obt@Ì嫳ª 1 oCgÅ éãx êÌ UART Å· o 16550, 16550A, 16c552: 16 oCgÌobt@ª èÜ· (TL=1,4,8,14) o 16650: 32 oCgÌobt@ª èÜ·B460.8 kbps ÜÅ̬xÉÎ µÄ¢Ü· o 16750: 64 oCgÌMobt@A56 oCgÌóMobt@ª èÜ ·B921.6 kbps ÜÅ̬xÉεĢܷ o Hayes ESP: 1k oCgÌobt@ª èÜ· ãxêÌ UART ª¤Ü®ì·éÌÍ 14.4k æèx¢f(DTE ¬xÍ 38400 bps ÜÅ)Ì꾯ŷBÅßÌfÅÍAÈÆà 16550 ( ú^ 16550 ÍÜÝܹñ)ªKvÅ·BV.90 KiÌ 56k fÌêÉ ÍA16650 ðg¤Æp[Zg¬Èé±Æª èÜ·(Áɳk³êÄ¢ È¢t@Cð_E[h·é)B16650 ðg¤åÈ_Íobt@ÌT CYªå«¢±ÆÅ·BÆ¢¤ÌàAf̳käªÈ¯êÎÁɬx ÍKvÈ¢©çÅ·BêÌ 56k à fÉÍ 16650 ªÚÁĢܷ(M ÒÍm©ßĢܹñ)B UART ÅÈCeWFgÈ}`|[g{[hÅÍADSP `bvðgÁ ijçÈéobt@OƧäðsÁĢܷBµ½ªÁÄACPU Ì×Í ³çÉyÈÁĢܷBá¦ÎACyclades »Ì Cyclom â Stallion »Ì EasyIO {[hÍ Cirrus Logic CD1400 RISC UART ðgÁÄA±êÈO̽ Ì{[hÍ 80186 CPU âÁêÈ RISC CPU ³¦gÁÄVA I/O ðµ Ü·B ÅßÌ PC ÌÙÆñÇ(486, Pentium È~Ì}V)ÉÍ 16550A (ÊÍPÉ 16550 ÆÄÎêÜ·)ªÚÁĢܷB{Éâ PC ð¨g¢ÉÌêÍA ù¶Ì 16450 `bvðOµÄAVµÁ½ 16550A `bvÆu«·¦é± ÆÉæèAbvO[hÅ«Ü·B¼Ì^CvÌ`bvªÚÁÄ¢½êÍA cOÈªç «çßľ³¢BUART ª\Pbg`®ÈçÎA(u«·¦é `bv³¦ êÎ)AbvO[hÍÈPŵå¤BVµ¢`bvÆâ`b vÌszuÍÝ·Å·BVµ¢VA{[hðC^[lbgÅwüÅ« é©àµêܹñ(»ÝÍVA{[hðµÁÄ¢é¬XÍÙÆñÇ è ܹñ)B 16. szuÆM 16.1. szu VA|[gÌszu (u¨v ª PC ©çOÖÌûüÅ·) (DCD Í CD ÆLÚ³êé±Æà èÜ·) sÔ sÔ ªÌ ³®¼Ì ûü ®ì¨æÑÚI 9s 25s 3 2 TxD Transmit Data ¨ PC ©çoCgf[^ðM·é 2 3 RxD Receive Data © PC ªoCgf[^ðó¯æé 7 4 RTS Request To Send ¨ RTS/CTS t[§ä 8 5 CTS Clear To Send © RTS/CTS t[§ä 6 6 DSR Data Set Ready © ÊMÂ\ÉÈÁ½±Æðmç¹é 4 20 DTR Data Terminal Ready ¨ ÊMÂ\ÉÈÁ½±Æðmç¹é 1 8 DCD Data Carrier Detect © fªèÆqªÁÄ¢é±Æ𦷠9 22 RI Ring Indicator © dbÌxªÂÁÄ¢éóÔ𦷠5 7 Signal Ground 16.2. MÍÜÁ½Ó¡ðÁĢȢ±Æª èÜ· 9 {Ìs̤¿AèĪÅè³êÄ¢éÌÍ 3 ¾¯Å· (transmit(M), receive(óM), signal ground(Ún))B±êÍn[hEF AÉÅè³êĨèAÏX·é±ÆÍūܹñBµ©µ¼ÌMüÍ\tg EFAŧä·é±ÆªÅ«AÙÆñǽÉÅàg¤±ÆªÅ«Ü·Bµ© µAzüÍ 2 ÂÌóÔµ©æêܹñB·Èí¿³(+12 V)Æ(-12 V) Å ·B³ÍuIvÅ èAÍuItvÅ·Bá¦ÎALinux pÌ\tgEF Aª DTR ÉÉÈéæ¤É½ßðo·ÆAn[hEFAÍPɱ̽ßðÀ sµADTR sÌd³ð -12 V ɵܷBDTR Mðó¯æéf( é¢ Í¼ÌfoCX)ÍFXÈ®ìðµÜ·BfÌÝèÉæÁÄÍADTR ª ÌóÔÉÈéÆdbðØèÜ·BDTR ª(It)ÉÈÁ½Æ«É³µ½èA ¼Ì®ìð·é±Æà èÜ·B ¯¶æ¤È±Æª 6 {ÌüSÄÉ¢ľ¦Ü·Bn[hEFAÍMð óM·é¾¯Å·ªA»êÉæÁÄÇñÈ®ìªsíêéÌ©ÍALinux Ì\ tgEFAâVA|[gÉÚ±µÄ¢éfoCXÌÝè/ÝvæÅ·B ܽAÙÆñÇÌsÉÍÊísíêéÁèÌ@\ª èÜ·ªA±êÍ OS âfoCXhCoÌÝèÉæÁÄÏíÁÄ«Ü·BLinux ÌêÍA\[X R[hðÏX·êÎA±êçÌMüÌ®ìðϦé±ÆªÅ«Ü·(»¤µ Ä¢élà¢Ü·)B 16.3. VA|[gÔÌP[uÚ± VA|[g©çÌP[uÍAK¸ÊÌVA|[gÉÚ±³êÜ·B fÌAVA|[gÉÚ±·éfoCXÉÍAàÉVA|[g ªgÝÜêĢܷBfÌêAP[uÍK¸Xg[gP[u (¯¶s¯mªÚ±³êé)Å·BfÍ DCE (Data Communications Equipment) ƾíêARs [^Í DTE (Data Terminal Equipment)ƾ íêÜ·B±Ìæ¤É DTE Æ DCE ðq®êÉÍXg[gP[uªgí êÜ·BDTE ¯mðq®ÉÍNXP[uðgíȯêÎÈèܹñB±Ì æ¤ÈP[uÌüÉͽ³ñÌíÞª èÜ·(Text-Terminal-HOWTO Ì "Direct Cable Connection" ßÉ©êÄ¢éáð²¾³¢)B ±Ìæ¤ÉFXÈP[uðg¤ÌÉÍRª èÜ·B»Ì 1 ÂÍAM ªÐûü«ð©çÅ·Bs 2 ªMðéêÍA(s 2 ÍMð ó¯æé±ÆÍÅ«È¢ÌÅ)s 2 ð¯¶íÞÌfoCXÌs 2 ÉÚ± Å«È¢Ì;ç©Å·BÚ±µÄµÜ¤ÆA¼ûÌsª¯¶üÉÝ¢ÉM ðéÌÉAÇ¿çàMðó¯æêȢƢ¤óÔÉÈÁĵܢܷB ±êðð·éû@Í 2  èÜ·B1 ÂßÌû@ÍA2 íÞÌÙÈé@í ðg¤û@Å èAÅÌ@íÌs 2 ª 2 ÔÚÌ@íÌs 2 (±êÍM ðóMÅ«Ü·)ÉMðéÆ¢¤àÌÅ·B±êÍ PC(DTE)ðf (DCE)Éq®Ìû@Å·B2 ÂßÌû@ÍAÙÈéíÞÌ@íðgí¸ÉÚ ±ðs¤û@Å·B·Èí¿Ms 2 ð¯¶íÞÌ@íÌs 3(óMs )Éq¬Ü·B±êÍ 2 äÌ PC ðÚ±·éâAPC ð[Éq®Ìû @Å·(DTE ¯mÌÚ±)B±ÌÚIÅgíêéP[uÍNXP[uÆÄ ÎêÜ·B±ÌáÍ 25 sRlN^ÌêÅ·ªA9 sRlN^ÌêÍ sÌÔÍ¿å¤ÇtÉÈèÜ·B VAÌswèͳXA_[ðfÉÚ±·é½ßÌàÌŵ½B [Í DTE (Data Terminal Equipment)ÅAfÍ DCE (Data Communication Equipment)ŵ½B»ÝÍÊÍ[ÅÍÈ PC ª DTE Æ µÄgíêÜ·(½¾µ{¨Ì[àܾ DTE ƵÄgíêĢܷ)Bs ̼OÍ DTE Åà DCE Å௶ŷB±ÌêÉÍuóM(receive)vu M(transmit)vÆ¢¤¾tÍ PC (DTE) ©ç©½§êŦ³êÜ·BPC Ì Ms©çÍfÌuMvsÉf[^ªçêÜ·(µ©µÀÛÉÍA fͱÌs©çf[^ðó¯æéÌÅAf̧ê©ç©éƱêÍ óMsƾ¦Ü·)B VA|[gͳXADTE ð DCE ÉÚ±·é½ßÌàÌÅ èA»Ìê ÉÍP[uÌüÍPÅ·BPÉXg[gP[uðgÁľ³¢B µ½ªÁÄfðg¤êÉÍAsÌzuðCÉ·éKvÍÙÆñÇ è ܹñBµ©µADTE ð DTE É(á¦ÎRs [^ð[É)q¬½¢Æ¢ ¤lXª¢ÄAFXÈÁêP[uªJ³êA³Ü´ÜÈÚ±û@ªlij êܵ½B±ÌêÉÍAsÌq°ûÍdvÅ·B 16.4. RTS/CTS Æ DTR/DSR Ìt[§ä ±êÍun[hEFAvÌt[§äÅ·Bt[§äÍùÉ ``t[§ ä''ÌßÅྵĢܷªAsÆd³ÉÖ·éà¾ÍµÄ¢Ü¹ ñBLinux Í»_ÅÍ RTS/CTS Éæét[§äµ©T|[gµÄ¢Ü¹ ñ(ÁèÌAvP[VpÌÁêhCoÅÍ DTR/DSR t[§äðT| [gµÄ¢éàÌà èÜ·)B±±ÅÍ RTS/CTS t[§äµ©à¾µÜ¹ ñBȺÈç DTR/DSR t[§äÌ®ìà¯l¾©çÅ·BRTS/CTS t[ §äðs¤ÉÍAAvP[VvOÅn[hEFAt[§äðI ð·é©A é¢Íustty crtscts < /dev/ttyS2vÆ¢¤R}h( é¢Í ¯lÌR}h) ðg¤Kvª èÜ·B±êÉæèALinux ÌfoCXh Coɨ¯éAn[hEFAÉæé RTS/CTS t[§äªLøÉÈèÜ·B »ê©ç DTE (PC )ªüÁÄéf[^ð~ß½¢ÉÍARTS ðItɵ Ü·BRTS(uRequest To Sendv)ðIt(-12 V)É·éÌÍuf[^ð±¿ç ÉçÈ¢ÅêÆ¢¤v(Request NOT To Send to me)v(Mâ~) Æ¢ ¤Ó¡Å·BPC ªÌoCgf[^ðó¯æéõªÅ«½ÍARTS ðI (+12 V)É·éÆAoCgf[^ªÄѬêÄéæ¤ÉÈèÜ·Bt[ §äMª¬êéü«ÍíÉêûüÅ èA§ä³êÄ¢éoCgf[^̬ êÌtü«Å·BDCE @í(f)à¯lÉ®ìµÜ·ªAâ~Mð CTS s©çèÜ·B±Ìæ¤ÉARTS/CTS t[§äÅÍüð 2 {ðg¢Ü ·B ±Ìâ~MÍÇÌsÅóM³êéÌŵ天? »êÍ DCE-DTE Ú±Æ DTE-DTE Ú±ÅÙÈèÜ·BDCE-DTE Ú±ÌêÉÍAXg[gP[uª gíêéÌÅAMªóM³êéÌÍRȪçMªçê½sƯ¶¼ OÌsÅ·B±ÌêÍ RTS¨RTS (PC ©çfÌü«)¨æÑ CTS©CTS(f©ç PC Ìü«)ÆÈèÜ·BDTE ¯mÌÚ±Ìêàà¾Í ÈPÅ·BíÉ RTS sªMðs¢ACTS sªóMðs¢Ü·B 2 äÌ PC (PC1 Æ PC2)ªVA|[goRÅÚ±³êéêðl¦ÄÝÜµå ¤B±ÌêÍ RTS(PC1)¨CTS(PC2) ¨æÑ CTS(PC1)©RTS(PC2) ÆÈèÜ ·B¾¢·¦êÎARTS Æ CTS ªð·µÄ¢Ü·B±Ìæ¤ÈP[uÍ(¼ ÌMàð·µÄ¢Ü·)AuNXvP[uÆÄÎêÜ·BÚµÍ ``V A|[gÔÌP[uÚ±''Ìßð²¾³¢B ³XÌ RTS Ìg¢ûÍæöÌà¾Æ½ÎÈÌÅAX´çíµÈèÜ·B ±Ì³XÌg¢ûÆÍuf[^ð»¿çÉéÆ¢¤v(I Request To Send to you)vÅ·B±ÌvÍ[(ܽÍRs [^)©çfÉé±Æ ðzèµ½àÌÅA±Ìvªó¯üêçêéÆAfÌ CTS s©çR s [^Ì CTS sÖ CTS MªèÔ³êÜ·(CTS Íuf[^𱿠çÉÁÄàæ¢(You are Cleared To Send to me)vÆ¢¤Ó¡Å·)BÅß Ì RTS/CTS oûüt[§äÆÙÈèA±êÍÐûüÌt[(Rs [ ^(ܽÍ[) ©çfÌûü)µ©ÛìµÜ¹ñB±Ì³XÌgp@ ÍA(fðÜß½) »ÝÌ@íÅÍÙÆñÇgíêĢȢæ¤Å·B 16.4.1. DTR Æ DSR Ìs RTS Æ CTS Ìg¹Æ¯lÉA±êçÌsàÎÉÈÁĢܷBDTE ¯m ÌÚ±ÌêA±êçÍð·µÄ¢éŵå¤B±êçÌsÌgp@Í 2 Êè èÜ·B1 ÂÍ RTS/CTS t[§äÌãíèƵÄg¤û@Å·BDTR sÍ RTS sƯlÉg¦Ü·µADSR sÍ CTS sÌæ¤É®ìµÜ ·B Linux Í DTR/DSR t[§äÍT|[gµÄ¢Ü¹ñªAPC Ì RTS/CTS sð DTR/DSR t[§äðg¤foCXÌ DSR/DTR sÉÚ±· é±ÆÉæèA±Ìæ¤Èt[§äðs¤±ÆªÅ«Ü·BDTR t[§ä Í DTR/DSR t[§äÆÙÚ¯¶Å·ªAÐûüÊMÅ èADSR sªg íêÈ¢_ªÙÈèÜ·B½ÌeLXg[âêÌv^ÅͱÌíÌ t[§äªgíêĢܷB DTR, DSR ÌÊíÌgp@ðȺɦµÜ·BDTR ªIÉÈÁÄ¢éfoC XÍAd¹ªüÁĨè®ìõªÅ«Ä¢é±Æð¦µÜ·BfÌê ÍAPC ªfÉé DTR MÌÓ¡ÍfÌÝèÉæÁÄÏíÁÄ«Ü ·BDTR Mð PC ©ç stty R}hðgÁÄè®ÅéÉÍA{[[g ð 0 ÉÝèµÄ¾³¢BDTR ðItÉ·é±ÆÍunOAbvvÆÄÎ êé±Æà èÜ·ªAíÉ»êªsíêéí¯ÅÍ èܹñB 16.5. |[gÌI[vðÖ~·éû@ "stty -clocal" ðÀs·é( é¢Í "local" tOð³øÉµÄ getty ð p¢é)ÆADCD ªI(+12 V)ÉÈéÜÅÍVA|[gðI[vÅ«Ü ¹ñB 17. d³Ìg` 17.1. rbg 1 Âð\·d³ EIA-232 ÌVA|[gÅÍAd³ÍñÉ®(Únd³Éεijܽ Í)Å èA»Ì嫳Íñ 12 V Å·(5 Ü½Í 10 V ÌàÌà èÜ ·)BMsÆóMsÅÍ +12 V ª 0 ð\·rbg(uspacevÆÄÎê é±Æà èÜ·)ÅA-12 V ª 1 ð\·rbgÅ·(umarkvÆÄÎêé± Æà èÜ·)B±êͽ]_ƵÄmçêĢܷBÆ¢¤ÌàAÊÍ 0 ð\·rbgÍU©ÂÅ èA1 Í^Ƴð\·©çÅ·BMsÆó Msͽ]_Å·ªA¼Ìs(f§äü) ÍÊíÌ_ðp¢Ä¨ èA³Ìd³ª^(ܽÍuIv)Å èAÌd³ªU(ܽÍuItv)ð \µÜ·Bd³ 0 ÍÓ¡ð¿Ü¹ñ(»Ì@íÌd¹ªØêÄ¢éÆ¢¤Ó ¡¾¯Í¿Ü·)B d³ÉÍÍð½¹é±ÆàÅ«Ü·Bdlɨ¢ÄÍAM³êéMÌ ³Í 5 V Æ 15 V ÌÔÅȯêÎÈç¸A25 V ð´¦ÄÍÈèܹñB3 V ¢Ìd³Í¢è`Å·(½¾µfoCXÉæÁÄÍd³ªáÄàLøÅ éƵÄó¯t¯Ü·)Bd³Í½¢Ä¢ 11-12 V ÈÌÅ·ªAuêÊIÉ 5 V ( é¢Í 3 V) Å évÆ·éëèðÆ«Ç«©©¯Ü·B½¾µ Macintosh Ì EIA-422 |[gð EIA-232 (ÁêÈP[uªKv)â EIA-423 ƵĨg¢ÈçÎAd³Íܳµí¸© 5 V Ì͸ŷB±±ÅÌྠÅÍ 12 V ðg¤àÌƵܷB ÊíÌRs [^Ì_ñHÍ V (©ÂÄÍ 5 V ªW¾Á½±Æà èÜ·ª)µ©gíÈ¢ÌÅA3-5 V ÌRs [^ñH(TTL)̱pÉÝv ³ê½eXg@íð 12 V ÌVA|[gÉεÄp¢éÆAeXg@íª óêĵܤ±Æª èÜ·B 17.2. oCgf[^ð\·d³V[PX Ms(TxD)ÍA½àÁĢȢAChóÔÌÉÍ -12 V (mark ó Ô)ð۵ĢܷBoCgf[^ðéÛÉÍAMsÍX^[grb gðé½ßÉ +12 V (space óÔ)ÆÈèAX^[grbgðéÔ(æÔ) Í +12 V ðÛ¿Ü·BÉoCgf[^̺ÊrbgªçêÜ·B0 ð\ ·rbgÌêÍA½àÏ»¹¸A±ÌoCgæÔÌÔÍMsÍ +12 V ÌÜÜÅ·B1 ð\·rbgÌêÍAd³Í +12 V ©ç -12 V ÉÏíèÜ ·BÌrbgÈ~à¯lÉçêÜ·(1 ÈçÎ -12 V, 0 ÈçÎ +12 V)B ÅãÌf[^rbgÌãÉÍpeBrbgâA»ÌãÌ -12 V (mark óÔ) ÌXgbvrbgªçêé±Æà èÜ·B»ÌãÍAÌX^[grbg ÜÅÍMsÍ -12 V(AChóÔ)ÌÜÜÅ·B 0 V ªÔÁÄé±Æ ªÈ¢±ÆÆA»Ì½ß¯¶É«ðÂrbgª 2 ±ê(0 ª±A é¢Í 1 ª±ê)ÉÍA érbgªIíÁÄÌrbgªnÜé±Æð \·ÈPÈû@ª(¯úMÈOÉÍ)È¢_Éӵľ³¢B 2 ÔÚÌXgbvrbgà -12 V ÉÈèÜ·B±êÍÅÌXgbvrbg Ư¶Å·B±êçÌrbgÔÌ«Eð¦·Mª³¢½ßA2 ÔÚÌXgb vrbgÌe¿ÍAMsª±¯Ä¢é -12 V ÌAChóÔÌ·³ª 2 {ÉÈéÈOÉÍ èܹñB2 ÔÚÌXgbvrbgÆoCgÔÌ·¢AC hÔÌæÊðt¯éû@ÍAóM¤ÉÍ èܹñBµ½ªÁÄA¤Ü ÊMÅ«éÌÍAÊMÌФªXgbvrbgð 1 Âp¢A»Ì½Î¤ªX gbvrbgð 2 Âp¢½êÅ·B½¾µA1 µ©Xgbvrbgðp ¢È¢ûª¾ç©É¬Å·BHÅ·ªA1 1/2 ÂÌXgbvrbgªgíê é±Æª èÜ·B±êÍMsª 1 1/2 æÔÌÔ -12 V ðÛÂÆ¢¤Ó ¡Å·(XgbvrbgÌ·³ªÊíÌ 5 µÉÈÁ½æ¤ÉÈèÜ·)B 17.3. peB¸ ¶ÍÊA7 rbgÜ½Í 8 rbgÌf[^ÅM³êÜ·B±êÉp eBrbgðÇÁ·éÆ(ÇÁµÈ¢±Æà èÜ·) 1 oCgÌ·³Í 7, 8, 9 rbgÌ¢¸ê©ÆÈèÜ·BêÌ[G~ [^ââ[Å ÍA9 rbgÍg¦Ü¹ñBXgbvrbgð 2 Âg¤Æ 9 rbgªg¦È Èé[à èÜ·(Æ¢¤ÌàAX^[grbgðÇÁµ½ãÌvÌ rbgª 12 rbgƽÈè·¬é©çÅ·)B peBÉÍuï(odd)vAuô(even)vAuȵ(none)vÌ¢¸ê©ð ÝèµÜ·(êÌ[âVAfoCXÅÍAmark peBâ space p eBªIvVƵÄg¦Ü·)BïpeBðg¤ÆAoCgf[^ Ålª 1 ÉÈÁÄ¢érbg̪(peBrbgàÜßÄ)ïÆÈé æ¤ÉpeBrbgªßçêÜ·BrbgªÐÁèÔÁÄA±Ìæ¤È oCgf[^ªóê½êA¾çêéf[^Ís³ÈôpeBÌf[^Æ ÈèÜ·B±ÌG[Ío³êéÌÅA±êª[ªó¯æÁ½oCgf[ ^Å Á½êÉÍA¶»¯ð\·LðæÊÉ\¦Å«Ü·Bôp eBÌ®ìà¯lÅ èALøÈoCgf[^Ì 1 Å érbgª(p eBrbgàÜßÄ)ôÆÈéæ¤ÉµÜ·BÝèÉÍÊíA¶½è ÌrbgÍoCg½èÌf[^rbg̾¯ðÓ¡µÜ·(³®È ASCII ÌêÉÍ 7 Å·µAeí ISO ¶WÌêÉÍ 8 Å·)B "mark" Ílª 1 Å érbg(ÂÜè_lÌ 1)Å èA"space" Ílª 0 Å érbg(ÂÜè_lÌ 0)Å·Bmark peBÌêÉÍApeB rbgÍíÉlª 1 Å érbgÅ·Bspace peBÌêÉÍA±êÍ íÉlª 0 Å érbgÅ·Bmark peBâ space peB (usticky peBvÆàÄÎêÜ·) ÍPÉohð³Êɷ龯ÈÌÅAÅ«é ÀègíÈ¢æ¤É·×«Å·B stty R}hÍ sticky peBðÝèÅ «Ü¹ñªAVA|[gÌn[hEFAͱÌpeBÉεĨ èAC ¾êÌvOŵ¤±ÆªÅ«Ü·BupeB³µvÍAp eBrbgðÇÁµÈ¢Æ¢¤Ó¡Å·B9 rbg©çÈéoCgf[^ðó ¯t¯È¢[ðg¤êA8 rbg¶Wðg¤ÈçÎupeB³µv ðIðµÈ¯êÎÈèܹñB±êÍpeBrbgðüêé󫪳¢©ç Å·B 17.4. oCgf[^Ì\¬ (t[ª) EIA-232 |[gðgÁ½oCgf[^ÌVA`ÅÍAíÉáÊÌrbg ©çæÉçêÜ·BPC ÌVA|[gÍñ¯úÊMðs¢Ü·B±Ìñ ¯úÊMÅÍAX^[grbgÆXgbvrbgªoCgf[^ÌnßÆIí èð¦µÜ·B±Ìæ¤ÈæØèûÍt[ªÆÄÎêAt[ª³ ê½oCgf[^Ít[ÆÄÎêé±Æª èÜ·BÊƵÄA1 oC g²ÆÉ 9  é¢Í 10, 11 ÂÌrbgf[^ªçêÜ·B±ÌÅÅ àêÊIÈÌÍ 10 ÂÅ·B8-N-1 ÆÍAf[^rbg 8 ÂApeB³ µAXgbvrbg 1 ÂÆ¢¤Ó¡Å·BX^[grbgðÉüêéÆ v 10 rbgÉÈèÜ·BXgbvrbg 1 ÂÍÙÚáOÈgíêÜ·B 110 rbg/b(300 rbg/bÌà èÜ·)ÅÍAXgbvrbgª 2  gíêÄ¢½±Æà èܵ½ªA»ÝÍ 2 ÂßÌXgbvrbgªgíê éÌͲáOÌ( é¢ÍA»ÌÝèÅà¤Ü®ì·é½ßÉÔáÁÄ gíêÄ¢é¯êÇAohð³ÊÉÁïµÄ¢é)¾¯Å·B 17.5. uñ¯úvÊMůúðs¤û@ PC ªõµÄ¢é EIA-232 ÌVA|[gÍñ¯úÅ·BÂÜèÀÛÉ ÍA»ê¼êÌrbgðéÉuÔðÞv½ßÌuNbNvMª çêȢƢ¤±ÆÅ·BM(óM)pÌüÉÍ 2 µ©óÔª èܹ ñB·Èí¿ mark óÔ(-12 V) Æ space óÔ(+12 V)Å·B0 V ÌóÔÍ èܹñBµ½ªÁÄ 1 rbgÌV[PXÍArbgÆrbgÌÔ𦷠}[J[ª³¢èíIÈ -12 V ¾¯ðgÁÄçêÜ·BóM¤ÅÂXÌ rbgðæÊ·é½ßÉÍAM¤ÌNbNƯúµÄ¢éNbNMª K¸KvÅ·B±Ìæ¤ÈNbNÍM(óM)³êéerbgƯúµÄ¢ éuÔÌÝv𶬵ܷB ñ¯úÌ`ɨ¢ÄÍAX^[grbgÆXgbvrbgðgÁÄeoCg ðt[ª·é±ÆÉæÁįúðÀ»µÜ·(±êÍn[hEFAªs ¢Ü·)BóM¤ÍÌd³ÌzüãųÌX^[grbgðÒ¿A±Ìrb gðo·éÆNbNðÝnßÜ·BóM¤Í±ÌNbNÝðgÁ ÄAÌ 7, 8, 9 ÂÌrbgðÇÝÞÔðvèÜ·(ÀÛÉͱêæèà व¡GÅ·BÆ¢¤ÌàAÊÍ 1 rbg©çTv_ð¢Â© æéÌÅA»Ì½ßÉÊÌ^C~OݪKvÉÈé©çÅ·)B»µÄX gbvrbgªÇÝÜêéÆAóM¤ÍNbNð~ßÄAÌX^[g rbgðÒ¿Ü·B±Ìæ¤ÉAPÆÌoCgf[^ðó¯æéÛÉÍñ¯ú `àÀÛÉͯú`ÉÈèÜ·ªA¡ÌoCgf[^ÌÔÅ̯úÍs íêܹñB 18. »Ì¼ÌVAfoCX (ñ¯ú EIA-232 ÈOÌàÌ) 18.1. EIA-232 Ìãp cCXgyA(½t^`)Zpðp¢Ä¬E·£ðÀ»·é½ßÉA½ ³ñÌ EIA Kiª¡ÜÅÉìçêܵ½B½t^Ì`ÍAêÉæÁÄÍ ñ½t^Ì EIA-232 æèàS{ଢ±Æª èÜ·B é¬xÌêA £(ÅåP[u·)ÍcCXgyAðgÁ½ûª½{à·Å«Ü·BÅ·ª PC ÅÍuãxêÈvEIA-232 ªgí걯ĢܷBÆ¢¤ÌàAf â}EXÍP[uªZ¢½ßA±êÅ\ª¾©çÅ·B±Ì HOWTO ¶ª ÅVÅÅ èA©ÂȺɦ·ñ EIA-232 ð Linux ªT|[gµÄ¢êÎA MÒɨmç¹¾³¢B 18.2. EIA-422-A (½t^) Æ EIA-423-A (ñ½t^) EIA-423 Íñ½t^Ì EIA-232 ÆÙÆñǯ¶Å·ªAd³ª 5 V µ©È¢ _ªÙÈèÜ·B±êÍ EIA-232 KiÉÜÜêéÌÅAEIA-423 Í EIA-232 |[gÉÚ±·é±ÆªÅ«Ü·B±ÌdlÍ EIA-232 æ转¢¬xð ßĢܷ(Å·ª·Ô®ì·éÆñ½t`ªÕËðN±·ÌÅA±ê ÍÙÆñÇðɧ¿Ü¹ñ)B Apple Ì Macintosh ̤¿A1998 NÌ æèâàÌÉÍ EIA-232/EIA-422 |[gªt¢Ä¨èAcCXgyA(½t^)ðóM(422 ƵÄgÁ½)Ég¤±ÆªÅ«Üµ½B±êÍ(dlãÍ) EIA-423(±ê© ÌÍ EIA-232 æ转ŷ) Ì¿å¤Ç 100 {¬Å·B Macintosh ͬ³ÄÛ¢ "~j DIN-8" RlN^ðgÁĢܵ½B]Ì EIA-232 |[gàt¢Ä¢Üµ½ªA±êÍ 5 V ŵ©g¦Ü¹ñŵ½(»êÅà³ È EIA-232 Å·)B±êð EIA-232 Ư¶æ¤Ég¤ÉÍA RxD+ (½ty AÌÐûÌ[)ðÚnµ½ÁêÈP[uðg¢A RxD- ðóMsƵÄg íȯêÎÈèܹñB TxD- ÍMsƵÄgíêÜ·ªA¢Â©Ì RÉæÁÄ TxD+ ÍÚnµÄÍÈèܹñBMacintosh Communications FAQ <http://www.modemshop.com/csm-comm-faq.html> àQƵľ³¢Bµ© µAMacintosh (¨æѱêðüǵ½àÌ)Í PC æèàliª¢½ ßALinux pÌzXgRs [^ƵÄÍ ÜègíêĢܹñB 18.3. EIA-485 ±êÍ EIA-422 (½t^) ÉĢܷB¼ñdÅ·B±êÍ point-to- point Ú±¾¯ÅÈA}`hbv LAN (32 m[hÜÅ)Éàg¤±Æª Å«Ü·BRlN^ÌdlͶݵܹñB 18.4. EIA-530 2M rbg/b(½t^) Ì EIA-530-A (½t^Å·ªAñ½t^ƵÄg¤± ÆàÅ«Ü·)Í EIA-232 ðu«·¦é½ßÌàÌŵ½ªAÙÆñÇgíê ܹñŵ½BEIA-232 Ư¶ 25 sRlN^ðg¢Ü·B 18.5. EIA-612/613 ¬VAC^tF[X (High Speed Serial Interface, HSSI = EIA-612/613)ÅÍ 50 sÌRlN^ðg¢Ü·Bñ 50 M rbg/b̬x ªoÜ·ªA[g̣ŵ©g¦Ü¹ñBLinux pÉà HSSI ðT| [gµÄ¢é PCI J[hª èÜ·B±Ìæ¤ÈJ[hð̵ĢéïÐ ª Linux pÌhCoðñµÄ¢é±Æ( é¢ÍhCoÌ è©ð¦µ Ä¢é±Æ)àæ èÜ·B±ÌbèÉ¢ÄÍAmini-HOWTO Ìæ¤ÈàÌ ªKvŵå¤B 18.6. ÄpVAoX (Universal Serial Bus, USB) ÄpVAoX(USB)ÍAPCI `bvÉgÝÜêĢܷBVµ¢ PC Í USB ðõ¦Ä¢Ü·BUSB Í 4 sRlN^ðÂcCXgyAP[u (2 ÂÌüÍd¹)ðgÁÄ 12M rbg/b̬xÅÊMÅ«Ü·B½¾µ Å· 5 [g(±ÌÍ\¬ÉæÁÄÏ»µÜ·)Æ¢¤Z¢£Åµ© ڱūܹñB USB ðྷéÉÍÊÌ HOWTO ¶ªKvÅ·BLinux Å USB ðT|[g· é½ßÌìÆÍ»ÝisÅ·(½¾µ HOWTO ¶Íܾ èܹñ)BUSB ͯúÊMðs¢Albg[NƯlÉÁêÈpPbgðgÁÄMðs¢ Ü·B¿å¤Çlbg[NƯ¶æ¤ÉAUSB ÉÍ¡ÌfoCXðÚ±· é±ÆªÅ«Ü·BUSB ãÌefoCXÉÍAr¼IÈgpðs¤½ßÌZ¢ ÔÌ^CXCXª^¦çêÜ·BfoCXÍAoXðÅèÌÔÔuÅ gpÅ«é±ÆªÛسêÜ·B¼ÌfoCXª USB oXðg¨¤ÆµÈ¯ êÎA1 ÂÌfoCXª USB oXðÆè·é±ÆªÅ«Ü·BUSB ðÚµ ྷé±ÆÍeÕÅÍ èܹñB 18.7. ¯úÊMƯú« EIA-232 Ìñ¯úÊM(ÈÇ)̼ÉA¯úVA|[gÊMÌKiª½³ ñ èÜ·BÀÛÍ EIA-232 ɯúÊMÌdlª èÜ·ªA±êÍÊÍ PC ÌVA|[gÉÍt¢Ä¢Ü¹ñBµ©µÜ¸Í¯úÊMªÇ¤¢¤ àÌ©ðྵܵå¤B 18.7.1. ñ¯úƯúÌè` ñ¯ú(async, asynchronous)ÆÍu¯úIÅÈ¢vÆ¢¤Ó¡Å·BÀÛÉ Íñ¯úMÍAñ¯úVA|[gªóM·éf[^Å èAX^[g rbgÆXgbvrbgÉæÁÄÍͪèßçê½oCgñÌXg[Å ·B¯ú(sync)ÆÍAñ¯úÅÈ¢àÌÙÆñÇSÄÅ·BÅ·ªA±êÅÍ î{IÈTOÌà¾ÉÈèܹñËB _IÉÍA¯úÊMÆÍêè̬xÅNbNMÌÝÉí¹ÄoCg ñªÉçêé±ÆÅ·BNbNMðé½ßÌzüâ`lªÊ ÉÈÁÄ¢é±Æàæ èÜ·Bñ¯úÊMÌêÉÍAoCgf[^ÌÔ ÌÔª(L[{[hŶðÅ¿±ÞêÌæ¤É)sK¥ÉÏ»µÄàM ªÅ«Ü·B ¯úÊM é¢Íñ¯úÊMÌÇ¿ç©Ö̪ުKvÆÈéêª èÜ ·Bñ¯úVA|[gÅàA½ÌêÍêè¬xÌXg[ðèÜ ·B±êͯúÊMÌæ¤Évíêé©àµêܹñªA»êÅàX^[g rbgâXgbvrbgª éÌÅ(±êÉæèf[^ðsK¥È¬xÅM Å«Ü·)ñ¯úÊMÆÄÎêÜ·BÊÌêƵÄÍA(X^[grbgâX gbvrbgðÜÜÈ¢)oCgf[^ªAsK¥ÈpPbgÔuð屮 ª épPbgÉüêçêé±Æª èÜ·B±êͯúÊMÅ·BÆ¢¤Ì àAepPbgÉüÁÄ¢éoCgñͯú³¹ÄMµÈ¯êÎÈçÈ¢© çÅ·B 18.7.2. ¯úÊM ÇÒÌF³ñÍAVA|[gpÌ 25 sRlN^Ì¢gpÌsªêÌ ½ÈÌ©ð^âÉvÁ½±ÆÍȢŵ天? ¢gpÌsÌÙÆñÇͯ úÊMpÈÌÅ·ªA¯úÊMð PC Ås¤±ÆÍÅ½É èܹñB¯ú^ C~OMâ¯ú½]`l̽ßÌsª èÜ·B EIA-232 Ìdl ÉͯúÊMÆñ¯úÊM̼ûªè`³êĢܷªAPC Í 16450, 16550A, 16650 Ì UART (Universal Asynchronous Receiver/Transmitter) `bvðgÁĨèA¯úÊMðµ¦Ü¹ñB¯úÊMðs¤ÉÍ USART `bv é¢Í»êƯÌ`bvðg¤Kvª èÜ·B USART Ì S ͯ ú(synchronous)ð\µÄ¢Ü·B¯úÊMÍ·«ÜsêÈÌÅA¯úVA |[gͽÌê©Èè«ܷB EIA-232 ̯úÉÖ·éªÌ¼ÉàAEIA ÉͯúÉÖ·éKiªFX è Ü·BEIA-232 ÅÍARlN^Ì 3 ÂÌsªNbN( é¢Í^C~ O) M̽ßÉ\ñ³êĢܷBܽAÆ«ÉÍfª½ç©Ì^C~ OM𶬵A¯úf ( é¢Í¯¶^C~OM𶬷é u¯úfG~l[^v) ȵÉͯúÊMªÅ«È¢æ¤É·é±Æà èÜ·B VA|[gª¯úÎÅ é±ÆÍÙÆñÇÈ¢ÌÅ·ªA V.42 G[ ù³ðg¤fðp¢½AdbñüãÅ̯úÊMÍæsíêÜ·B±Ì G[ù³ÍX^[grbgÆXgbvrbgðæè«ApPbgÉút oCgðüêéàÌÅA»ÌÊƵÄdbñüãůúìðÀ»µÜ·B 19. ¼Ìîñ¹ 19.1. Ð 1. Axleson, Jan: Serial Port Complete, Lakeview Research, Madison, WI, 1998. 2. Black, Uyless D.: Physical Layer Interfaces & Protocols, IEEE Computer Society Press, Los Alamitos, CA, 1996. 3. Campbell, Joe: The RS-232 Solution, 2nd ed., Sybex, 1982. 4. Levine, Donald: POSIX Programmer's Guide <http://www.ora.com/catalog/posix/>, (ISBN 0-937175-73-0; O'Reilly) 5. Putnam, Byron W.: RS-232 Simplified, Prentice Hall, 1987. 6. Seyer, Martin D.: RS-232 Made Easy, 2nd ed., Prentice Hall, 1991. 7. Stevens, Richard W.: Advanced Programming in the UNIX Environment <http://heg- school.aw.com/cseng/authors/stevens/advanced/advanced.nclk>, (ISBN 0-201-56317-7; Addison-Wesley) 8. Tischert, Michael & Bruno Jennrich: PC Intern, Abacus 1996. Chapter 7: Serial Ports ÐÉÖ·é: 1. "... Complete" ÉÍ(WX^ðÜÞ)n[hEFAÉ¢ÄÚµ©ê ĢܷªAvO~OÉ¢ÄÍ Windows ü¯É©êĢܷB 2. "Physical Layer ..." Í EIA-232 ÈOÌbèཱིñµÁĢܷB 19.2. VA|[gp\tgEFA Åàߢ~[TCgðg¤ÌªDܵ¢ÌÅ·ªA±±ÅÍCÌTCg ðÐîµÜ·: Serial Software <ftp://metalab.unc.edu/pub/Linux/system/serial/> É ÍAgetty â|[gj^ðÜÞVA|[gpÌ\tgEFA(Linux p)ª èÜ·B Serial Communications <ftp://metalab.unc.edu/pub/Linux/apps/serialcomm> ÉÍÊMvOª èÜ·B o irqtune ÍVA|[gÌèÝÌDæxðµA«\ðüã³¹ Ü·Bhdparm ðgÁ½n[hfBXNÌ` [jOàðɧÂÆv¢Ü ·B o modemstat Æ statserial Íeíf§äüÌ»ÝÌóÔð\¦µÜ ·B``VA|[gÌÄ/ffpÌvO''Ìßð©Ä¾³¢B 19.3. Linux ü¯Ì¶ o setserial(8) stty Ì}j Ay[W o libc (Ü½Í glibc) ÌhL gW: "áx[C^tF[X" o Modem-HOWTO: VA|[gÉÚ±·éfÉ墀 o PPP-HOWTO: (VA|[gÚ±Ìfðʶ½)PPP Ú±Ìèø« o Printing-HOWTO: VAv^ÌÝè o Serial-Programming-HOWTO: VA|[gðg¤vO~OÉÖ· ébè o Text-Terminal-HOWTO: eLXg[Ì®ìÆCXg[EÝèû@ o UPS-HOWTO: VA|[gÉÚ±·é UPS ZTÌÝèÉ墀 o UUCP-HOWTO: UUCP ÌÝèÉÖ·éîñ 19.4. Usenet Ìj [XO[v: o comp.os.linux.answers o comp.os.linux.hardware: Linux Åg¦én[hEFAÉ墀 o comp.os.linux.networking: Linux ɨ¯élbg[NÆÊMÉ墀 o comp.os.linux.setup: Linux ÌCXg[ÆVXeÇ 19.5. VA|[gÉÖ·é[OXg Linux VA[OXgª èÜ·BQÁ·éÉÍA[{¶ª ``subscribe linux-serial'' Å é[ð majordomo@vger.rutgers.edu ¶ÉÁľ³¢B[{¶ª ``help'' Å é[ðéÆAwv bZ[WªçêÄ«Ü·B±ÌT[oÍA¼Éà½Ì Linux ÖA[ OXgðǵĢܷB[OXgÌêðüè·éÉ ÍA``lists'' R}hðÁľ³¢B 19.6. C^[lbgãÌîñ o Vern Hoxie ³ñÉæé Serial Suite <ftp://scicom.alphacdc.com/pub/linux> ÍA Linux ÌVA|[gÌ µ¢ÉÖ·é¿ÆAÈPÈvOÌáðWß½àÌÅ·B'scicom' É "anonymous" ƵÄOC·éÉÍApX[hƵĮSÈdq [AhXðgíȯêÎÈèܹñBá¦Î greg.hankins@cc.gatech.edu ÈÇÅ·B o VAÊMÆ}`|[gVA{[hÌc_ðsÁ½ª Cyclades Ì WWW y[W http://www.cyclades.com ©çüèÅ«Ü·B 20. ú{êóÉ墀 ú{êóÍ Linux Japanese FAQ Project ªs¢Üµ½B|óÉÖ·é²Ó© Í JF vWFNg <JF@linux.or.jp> ¶ÉAµÄ¾³¢B üùððȺɦµÜ·B v1.10j, 30 June 1997 |ó: icõl <nagata-y@bnn-net.or.jp> v2.00j, 30 June 1999 v2.01j, 29 September 1999 v2.02j, 19 October 1999 v2.03j, 21 November 1999 v2.04j, 9 December 1999 v2.05j, 22 January 2000 v2.07j, 21 May 2000 |ó: ¡´Pà <fujiwara@linux.or.jp> Z³ & eNjJ`FbN: o ìÝÇ¡ <kawagisi@yk.rim.or.jp> o KcÍG <coda@post.kek.jp> o äLõ <takei@kondara.org> o Rº`V <dica@eurus.dti.ne.jp> Èã