Linux Serial HOWTO ¤¤Ä¶ª© §@ªÌ: Greg Hankins [1]greg.hankins@cc.gatech.edu ĶªÌ: [2]Asd L. Chen & [3]C.W.Huang v1.11, 15 November 1997 ½Ķ¤é´Á: 18 November 1997 _________________________________________________________________ ³o¥÷¤å¥ó±Ôz¦p¦ó¦b Linux ¾÷¾¹¤W³]©w¦ê¦C³q°T³]³Æ¡D _________________________________________________________________ 1. ²¤¶ * 1.1 ª©ÅvÁn©ú * 1.2 ³o¥÷¤å¥óªº³Ì·sª©¥» * 1.3 ¦^õX * 1.4 §K³dÁn©ú 2. ¤w¸g¤ä´©ªº¦ê¦CµwÅé * 2.1 ¼Ð·Ç PC ¦ê¦C°ð * 2.2 §Y´¡§Y¥Î«¬(PnP)¼Æ¾Ú¾÷ * 2.3 ¤@¯ë¦h°ð¦ê¦C¥d(ªþ 8250/16450/16550A UART ´¹¤ù) * 2.4 ´¼¼z«¬¦h°ð¦ê¦C¥d * 2.5 ¤£¤ä´©ªº¦ê¦CµwÅé 3. ¦ê¦C°ðªº¦WºÙ¬O¤°»ò? * 3.1 ¦b /dev ¸Ìªº¦ê¦C³]³Æ¤Î¥Dn©M¦¸n¸¹½X * 3.2 ¤@¯ë¦h°ðªOªºª`·N¨Æ¶µ * 3.3 ´¼¼z«¬¦h°ðªOªºª`·N¨Æ¶µ 4. §AÀ³ª¾¹Dªº¦³½ìµ{¦¡ * 4.1 ¤°»ò¬O getty? * 4.2 ¤°»ò¬O setserial? 5. §Ú«ç»ò¥Î¼Æ¾Ú¾÷¼·¸¹¥X¥h? * 5.1 µwÅé»Ý¨D * 5.2 »P§Aªº¼Æ¾Ú¾÷¥æ½Í * 5.3 ¼·¥X¥Îªº¼Æ¾Ú¾÷°t¸m * 5.4 µwÅé¬y¶q±±¨î 6. §Ún«ç»ò¼Ë¥Î¼Æ¾Ú¾÷¥H getty_ps ¼·¤J¤Î¼·¥X? * 6.1 ¼·¤J¤Î¼·¥Xªº¼Æ¾Ú¾÷°t¸m * 6.2 ¦w¸Ë getty_ps * 6.3 ³]©w uugetty * 6.4 ¦Ûq uugetty 7. §Ú«ç»ò³]©w²×ºÝ¾÷³s½u¨ì§Úªº PC ¤W? * 7.1 µwÅé»Ý¨D * 7.2 ³]©w getty * 7.3 ±N PC ³]©w¦¨²×ºÝ¾÷ªºª`·N¨Æ¶µ 8. §Ú¯à¨Ï¥Î¶W¹L¨âÓªº¦ê¦C¸Ë¸m¶Ü? * 8.1 ¿ï¾Ü¦ê¦C³]³Æªº¤¤Â_¦ì§} * 8.2 ³]©w¦ê¦C³]³Æªº¦ì§} 9. §Ú«ç¼Ë±N§Úªº¦ê¦C°ð³]¨ì¸û°ªªº³t«×? §Úªº¼Æ¾Ú¾÷¤SÀ³¸Ó¨Ï¥Î¤°»ò¼Ëªº³t«×? 10. ³q°Tµ{¦¡¤Î¤u¨ã 11. ¦ê¦C¨Ï¥Î¯µ³Z * 11.1 kermit ¥H¤Î zmodem * 11.2 ¦Û°Ê³]©w²×ºÝ¾÷«¬¦¡ * 11.3 ¦b¦ê¦C³s½u¤Uªº±m¦â ls * 11.4 ±q²×ºÝ¾÷©Ò³s±µªº¦Lªí¾÷¶i¦æ¦C¦L * 11.5 Linux ¯à¤£¯à°÷¦Û°Ê¦a°t¸m¦ê¦C³]³Æ? * 11.6 ¨Ï¥Î¦ê¦C±±¨î¥x * 11.7 §ó°ªªº¦ê¦C¬y¶q 12. §ó¶i¤@¨B... * 12.1 ¤°»ò¬OÂê©wÀÉ®×(lock files)? * 12.2 ``baud'' ¹ï ``bps'' * 12.3 ¤°»ò¬O UARTs? ¥¦Ì¦p¦ó¼vÅT®Ä¯à? 13. ¬G»Ù±Æ°£ * 13.1 §Ú¤£Â_¦a¦¬¨ì ``line NNN of inittab invalid'' * 13.2 ·í§Ú¸ÕµÛ¼·¸¹®É¡A¥¦»¡ ``/dev/cuaN: Device or resource busy'' * 13.3 §Ú«ùÄò±µ¨ì ``Id SN respawning too fast: disabled for 5 minutes'' * 13.4 ¦ê¦C³]³Æ«ÜºC©Î¬O¦ê¦C³]³Æ¥u¯à³æ¦V¶Ç°e * 13.5 §Úªº¼Æ¾Ú¾÷¦b¬Y¤HÂ_½u«áÅõºÈ©Î¬O uugetty ¨Ã¨S¦³«·s°õ¦æ * 13.6 §Ú±N§Úªº²×ºÝ¾÷³s¨ì§Úªº PC ¤W¡A¦ý¬O¦b§Ú¿é¤Jñ¤J¦WºÙ¤§«á¡A¥¦´NÂê ¦í¤£°Ê * 13.7 ¦b°ª³t¤U¡A§Úªº¼Æ¾Ú¾÷º|¥¢¸ê®Æ * 13.8 ¦b¨t²Î±Ò°Ê®É¡ALinux ¨S¦³¨Ì·Ó§Úªº°t¸m¦^³ø¦ê¦C³]³Æ¡D * 13.9 ·í§Ú¨Ï¥Î§Úªº¼Æ¾Ú¾÷¥s¥Î Linux ¾÷¾¹®É rz ¥H¤Î/©Î¬O sz ¤£°Ê * 13.10 §Úªº¿Ã¹õ¦L¥X¬Ý°_¨Ó«Ü¦nª±ªº¦r¤¸ * 13.11 getty ©Î uugetty ¤´µMµLªk¹B§@ 14. ¨ä¥¦ªº¸ê°T¨Ó·½ 15. »ÊÁ _________________________________________________________________ 1. ²¤¶ ³o¬O Linux Serial HOWTO¡D¥]§tÃö©ó¦p¦ó¦b Linux ¤U³]©w¼Æ¾Ú¾÷¥H¤Î²×ºÝ¾÷ªº ©Ò¦³²Ó¸`¡AÁÙ¦³¤@¨Ç¨Ï¥Î¦ê¦Cªº³Z¬¡A¥H¤Î¬G»Ù±Æ°£ªº¸ê®Æ¡D ³o¥÷¤å¥óµÛ«¦b Intel x86 µwÅé¤W°õ¦æªº Linux¡AÁöµM¦b¨ä¥¦¥¥x¤W¤]³\¤]¯à¹B§@¡D 1.1 ª©ÅvÁn©ú ¥»¤åª©Åv¬OÄÝ©ó Greg Hankins(copyright (C) 1993 - 1997)¡D¥»¤å¥ó¥i¥H¦b LDP ªºª©Åv³\¥i¤U´²§G: [4]http://sunsite.unc.edu/LDP/COPYRIGHT.html. ¥» ¤å¦b¥¼¸g§@ªÌ³\¥i¤U¤£±o¥Hק諸§Î¦¡´²§G¡D ì¤å Copyright (c) 1993 - 1997 by Greg Hankins. This document may be distributed under the terms set forth in the LDP license at [5]http://sunsite.unc.edu/LDP/COPYRIGHT.html. This document may not be distibuted in modified form without consent of the author. 1.2 ³o¥÷¤å¥óªº³Ì·sª©¥» ·sª©ªº Serial HOWTO ·|©ñ¨ì [6]ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO/Serial-HOWTO ¥H¤Î¬M®g¸`ÂI ¡D¦³¤@¨Ç¨ä¥¦¹³¬O Postscript ¥H¤Î DVI ®æ¦¡ªºª©¥»©ñ¦b other-formats ¥Ø¿ý ¸Ì¡D ³o¤@¥÷ Serial HOWTO ¤]¥i¦b [7]http://sunsite.unc.edu/LDP/HOWTO/Serial-HOWTO.html ¨ú±o¡D¥¦¤]·|¨C¤ë ©w´Áªº¶K¨ì [8]comp.os.linux.answers¡D 1.3 ¦^õX ½Ð±N¥ô¦óªº°ÝÃD¡Aµû½×¡A«Øij©Î¸É¥R¤º®e±H°eµ¹§Ú¡D§Ú¥Ã»·´÷±æÅ¥¨ì§A¹ï³o¥÷ HOWTO ªº·Qªk¡D §Ú¤]Á`¬O¤p¤ß¦aª`·N§ï¶i! ½T¹ê¦a§i¶D§Ú§A¦³¤°»ò¤£À´ªº¦a¤è¡A ©ÎªÌ¬O¦³¤°»ò¦a¤è¥i¥H¼g±o§ó²M·¡¡D §A¥i¥H¸g¥Ñ³oÓ¹q¤l¶l¥ó¦ì§} [9]greg.hankins@cc.gatech.edu »P§Ú³sô¡D ©Ò¦³ªº¶l¥ó§Ú³£·|¦^ÂСA¤£¹L¥i¯à nªá¤@Ó¬P´Á©Î§óªøªº®É¶¡¡A¬Ý§Ú¦h¦£¦Ó©w¡D §Ú¦¬¨ì¤@¤j°ï¨Ó¦Û root ¤Î¿ù»~³] ©wªº¯¸¥x¡D ½Ð¥H¯u¹ê¨¥÷±H«Hµ¹§Ú¡A¨Ã¥B½T©w§Aªº¹q¤l¶l¥ó¨t²Î¬O¥¿±`¹B§@¨Ï±o §Ú¯à°÷¦^«Hµ¹§A¡D ¦pªG¨âÓ¬P´Á¤§¤º§AÁÙ¨S¦¬¨ì§Úªº¦^µ¡A½Ð¹Á¸Õ¦A±H¤@¦¸¡D ¤]¥i¥HÂǥѤU±ªº¦a§}¥H¿ð½wªº¶Ç²Î«H¥óÁpµ¸§Ú: Greg Hankins College of Computing 801 Atlantic Drive Atlanta, GA 30332-0280 ¥H¤Î¸g¥Ñ¥þ²y¸ê°Tºô¨ì§Úªººô¶ [10]http://www.cc.gatech.edu/staff/h/Greg.Hankins/. ¼¶¼g®É½Ð±N Serial HOWTO ¤å¥óªºª©¥»½s¸¹§t¤J¡A³o¥÷¬O 1.11 ª©¡D 1.4 §K³dÁn©ú §Aªºª¬ªp¥i¯à«Ü¤£¤@¼Ë¡D³o¸Ìªº¦^µª¥i¯àµLªk¦b©Ò¦³ªº¨t²Î¤Î¦UºØ³]©wªº²Õ¦X¤U ¹B§@¡D 2. ¤w¸g¤ä´©ªº¦ê¦CµwÅé ¥Hª¾ Linux ¥i¥H»P¤U¦Cªº¦ê¦CµwÅé°t¦X¹B§@¡D 2.1 ¼Ð·Ç PC ¦ê¦C°ð * ¼Ð·Ç PC ¦ê¦C°ð (COM1 - COM4)¡A¯à°÷Åý¥~±µªº¦ê¦C¸Ë¸m(¼Æ¾Ú¾÷¡A¦ê¦C·Æ¹« µ¥)³s±µªº * ¼Ð·Ç PC ¤º±µ¦¡¼Æ¾Ú¾÷ (COM1 - COM4) * Quickpath Systems Port-Folio 550e (¥i¥Îªº IRQ ¬° 3, 4, 5, 9, 10, 11, 12, ¤Î 15) ª`·N: ¥Ñ©ó¦ì§}½Ä¬ð¡A§A¤£¯à¦P®É¨Ï¥Î COM4 ¤Î IBM8514 µø°T¥d¡D³o¬O IBM8514 µø°T¥dªº¤@Ó bug¡D 2.2 §Y´¡§Y¥Î«¬(PnP)¼Æ¾Ú¾÷ §Y´¡§Y¥Î«¬¼Æ¾Ú¾÷¯à°÷¦b Linux ¤W¹B§@¡DµM¦Ó¡A§Ú¤£«Øij¨Ï¥Î¥¦Ì¡A¦]¬°¦³§xÃø ¡D §A¦³¦n¦h¨Æ±¡n¸Õ: * ¸ÕµÛÃö±¼§A¹q¸£ BIOS ¤Î¼Æ¾Ú¾÷¤Wªº PnP ¥\¯à¡D * ±Ò°Ê Windows 95¡A³]©w¼Æ¾Ú¾÷¡AµM«á¬Ý¬Ý¦b§A±Ò°Ê Linux «á³o¨Ç³]©w¯à§_ «O¯d¤U¨Ó¡D ¦pªG¤£¦æªº¸Ü¡A¦A¨Ó: * ±Ò°Ê Windows 95¡A³]©w¼Æ¾Ú¾÷¡AµM«á¨Ï¥Î·x¶}¾÷±Ò°Ê Linux ¥H«KÅý³]©w¯à «O¯d¤U¨Ó¡D §A¥i¥H¨Ï¥Î loadlin ¸ü¤J¾¹¨Ó±Ò°Ê¡D * ±q [11]http://www.redhat.com/linux-info/pnp ¨ú¦^ PnP ¤u¨ã¡D * µM«á§A´N¦³Ó¥i¥Îªº¼Æ¾Ú¾÷¡D 2.3 ¤@¯ë¦h°ð¦ê¦C¥d(ªþ 8250/16450/16550A UART ´¹¤ù) * AST FourPort and clones (4 ports) * Accent Async-4 (4 ports) * Arnet Multiport-8 (8 ports) * Bell Technologies HUB6 (6 ports) * Boca BB-1004 (4 ports), BB-1008 (8 ports), BB-2016 (16 ports) * Boca IOAT66 (6 ports) * Boca 2by4 (4 serial ports, 2 parallel ports) * Computone ValuePort V4-ISA (AST FourPort compatible) * Digi PC/8 (8 ports) * GTEK BBS-550 (8 ports) * Longshine LCS-8880, Longshine LCS-8880+ (AST FourPort compatible) * Moxa C104, Moxa C104+ (AST FourPort compatible) * PC-COMM (4 ports) * [12]Sealevel Systems COMM-2 (2 ports), COMM-4 (4 ports) and COMM-8 (8 ports) * SIIG I/O Expander 2S IO1812 (4 ports) * STB-4COM (4 ports) * Twincom ACI/550 * Usenet Serial Board II (4 ports) ¤@¯ë¨Ó»¡¡A Linux ¯à°÷¤ä´©©Ò¦³¨Ï¥Î 8250, 16450, 16550, 16550A¡]©Î»P¨ä¬Û ®e¡^UART ´¹¤ùªº¦ê¦C¥d¡A ©ÎªÌ¬O¯à°÷ºNÀÀ¤W¦C UARTs ¤§¤@ªº¤º±µ¦¡¼Æ¾Ú¾÷¡D ª`·N: BB-1004 ¥H¤Î BB-1008¡A¥¦Ì¨Ã¤£¤ä´© DCD ¤Î RI ½u¸ô¡A¦]¦ÓµLªkÅý±µ¨ü ¼·±µªº¼Æ¾Ú¾÷¨Ï¥Î¡D ¥¦Ì¦b¨ä¥¦¥Î³~¤W«hªí²{¥¿±`¡D 2.4 ´¼¼z«¬¦h°ð¦ê¦C¥d * Comtrol RocketPort (36MHz ASIC; 4, 8, 16 or 32 ports) contact: [13]info@comtrol.com or [14]http://www.comtrol.com driver status: supported by Comtrol driver location: [15]ftp://tsx-11.mit.edu/pub/linux/packages/comtrol * Computone IntelliPort II (16MHz 80186; 4, 8, or 16 ports), IntelliPort II EXpandable (20MHz 80186; 16 - 64 ports) contact: Michael H. Warfield, [16]mhw@wittsend.atl.ga.us driver status: pre-ALPHA * Cyclades Cyclom-Y (Cirrus Logic CD1400 UARTs; 8 - 32 ports), Cyclom-Z (25MHz MIPS R3000; 8 - 128 ports) contact: [17]sales@cyclades.com or [18]http://www.cyclades.com driver status: supported by Cyclades driver location: [19]ftp://ftp.cyclades.com/pub/cyclades and included in Linux kernel since version 1.1.75 * Decision PCCOM8 (8 ports) contact: [20]pccom8@signum.se driver location: [21]ftp://ftp.signum.se/pub/pccom8 * Digi PC/Xi (12.5MHz 80186; 4, 8, or 16 ports), PC/Xe (12.5/16MHz 80186; 2, 4, or 8 ports), PC/Xr (16MHz IDT3041; 4 or 8 ports), PC/Xem (20MHz IDT3051; 8 - 64 ports) contact: [22]mailto:sales@dgii.com or [23]http://www.dgii.com driver status: supported by Digi driver location: [24]ftp://ftp.dgii.com/drivers/linux and included in Linux kernel since version 2.0 * Digi COM/Xi (10MHz 80188; 4 or 8 ports) contact: Simon Park, [25]si@wimpol.demon.co.uk driver status: ALPHA note: Simon is often away from email for months at a time due to his job. Mark Hatle, [26]fray@krypton.mankato.msus.edu has graciously volunteered to make the driver available if you need it. Mark is not maintaining or supporting the driver. * Equinox SuperSerial Technology (30MHz ASIC; 2 - 128 ports) contact: [27]sales@equinox.com or [28]http://www.equinox.com driver status: supported by Equinox driver location: [29]ftp://ftp.equinox.com/library/sst * GTEK Cyclone (16C654 UARTs; 6, 16 and 32 ports), SmartCard (24MHz Dallas DS80C320; 8 ports), BlackBoard-8A (16C654 UARTs; 8 ports), PCSS (15/24MHz 8032; 8 ports) contact: [30]spot@gtek.com or [31]http://www.gtek.com driver status: supported by GTEK driver location: [32]ftp://ftp.gtek.com/pub * Hayes ESP (COM-bic; 1 - 8 ports) contact: Andrew J. Robinson, [33]arobinso@nyx.net or [34]http://www.nyx.net/~arobinso driver status: supported by author driver location: [35]http://www.nyx.net/~arobinso and included in Linux kernel since version 2.1.15 * Maxpeed SS (Toshiba; 4, 8 and 16 ports) contact: [36]info@maxpeed.com or [37]http://www.maxpeed.com driver status: supported by Maxpeed driver location: [38]ftp://maxpeed.com/pub/ss * Moxa C218 (12MHz 80286; 8 ports), Moxa C320 (40MHz TMS320; 8 - 32 ports) contact: [39]info@moxa.com.tw or [40]http://www.moxa.com.tw driver status: supported by Moxa driver location: [41]ftp://ftp.moxa.com.tw/drivers/c218-320/linux * SDL RISCom/8 (Cirrus Logic CD180; 8 ports) contact: [42]sales@sdlcomm.com or [43]http://www.sdlcomm.com driver status: supported by SDL driver location: [44]ftp://ftp.sdlcomm.com/pub/drivers * Specialix SIO (20MHz Zilog Z280; 4 - 32 ports), XIO (25MHz Zilog Z280; 4 - 32 ports) contact: Simon Allen, [45]simonallen@cix.compulink.co.uk driver status: BETA driver location: [46]ftp://sunsite.unc.edu/pub/Linux/kernel/patches/serial * Stallion EasyIO-4 (4 ports), EasyIO-8 (8 ports), and EasyConnection (8 - 32 ports) - each with Cirrus Logic CD1400 UARTs, Stallion (8MHz 80186 CPU; 8 or 16 ports), Brumby (10/12 MHz 80186 CPU; 4, 8 or 16 ports), ONboard (16MHz 80186 CPU; 4, 8, 12, 16 or 32 ports), EasyConnection 8/64 (25MHz 80186 CPU; 8 - 64 ports) contact: [47]sales@stallion.com or [48]http://www.stallion.com driver status: supported by Stallion driver location: [49]ftp://ftp.stallion.com/drivers/ata5/Linux and included in linux kernel since 1.3.27 ¨ä¤¤ Comtrol, Cyclades, Digi, ¤Î Stallion ªº²£«~¦b 1995 ¦~¤»¤ë¥÷ªº Linux Journal ¤W¦³½g¦^ÅU¤å³¹¡D ³o½g¤å³¹¥i¦b [50]http://www.ssc.com/lj/issue14 §ä¨ì¡D 2.5 ¤£¤ä´©ªº¦ê¦CµwÅé «ÅºÙ``Winmodems''ªº¼Æ¾Ú¾÷¡A¨Ò¦p USR Sportster Winmodem ¤Î IBM Aptiva MWAVE¡A µLªk¦b Linux ¤W¨Ï¥Î¡D³o¨Ç¼Æ¾Ú¾÷¨ã¦³±Mªùªº³]p»Ýn¯S§Oªº Windows ÅX°Êµ{¦¡¡D ÁקK¨Ï¥Î³o¼Ëªº¼Æ¾Ú¾÷¡D°£¦¹¤§¥~¡A°ò©ó¬Û¦P²z¥Ñ¤]§O¨Ï¥Î »Ýn Rockwell RPI ÅX°Êµ{¦¡ªº¼Æ¾Ú¾÷¡D ¨S¦³ Linux ©Ò»ÝÅX°Êµ{¦¡ªº´¼¼z«¬¦ê¦C°ð¤]¤£¯à¨Ï¥Î¡D 3. ¦ê¦C°ðªº¦WºÙ¬O¤°»ò? ¤@Ó¿é¥X/¤J(I/O)°ð¬O¥Î¨Ó±N¸ê®Æ°e¤J¹q¸£¤Î±q¹q¸£¨ú¥Xªº³q¸ô¡D ¦³³\¦hºØÃþªº ¿é¥X/¤J°ð¡A¨Ò¦p¦ê¦C°ð¡A¥¦æ°ð¡AºÏºÐ±±¨î¾¹¡A¤A¤Óºô¸ô¥dµ¥µ¥¡D §ÚÌn³B²z ªº¬O¦ê¦C°ð¡A¦]¬°¼Æ¾Ú¾÷¤Î²×ºÝ¾÷¬O¦ê¦C¸Ë¸m¡D ¨C¤@Ó¦ê¦C°ð¥²¶·¦³¤@Ó¿é¥X/ ¤J¦ì§}¡A¥H¤Î¤@Ó´¡Â_¸¹½X(IRQ)¡D ¦³¥|Ó¦ê¦C³]³Æ¹ïÀ³¨ì COM1 - COM4: ttyS0 (COM1) address 0x3f8 IRQ 4 ttyS1 (COM2) address 0x2f8 IRQ 3 ttyS2 (COM3) address 0x3e8 IRQ 4 ttyS3 (COM4) address 0x2e8 IRQ 3 ¦pªG Linux ±Ò°Ê®É¨S¦³°»´ú¨ì¥ô¦ó¦ê¦C¸Ë¸m¡A½Ð½T©w¦b½sĶ®Ö¤ß®É¦³¥[¤J¦ê¦C¤ä ´©¡D ¦b³o¥÷¤å¥ó¤¤¡A§Ú¬O¥H ttyS0 °Ñ·Ó COM1¡AttyS1 °Ñ·Ó COM2¡A¥H ttyS2 °Ñ ·Ó COM3 ¡A¦Ó¥H ttyS3 °Ñ·Ó COM4¡D ª`·N³o¨Ç¸Ë¸m¹w³]ªº IRQ ¬O«Å|ªº¡D§AµL ªk¥Ñ³o¨Ç¹w³]ȨϥΩҦ³ªº¦ê¦C°ð¡A§A¥²¶·«·s«ü©w¤£¦Pªº IRQ¡D °Ñ¨£ [51]§Ú ¯à¨Ï¥Î¶W¹L¨âÓªº¦ê¦C¸Ë¸m¶Ü? ¤@¸`»¡©ú¦p¦ó³]©w IRQ¡D ¬Y¨Ç¦w¸Ë¤è¦¡·|«Ø¥ß¨âÓÃB¥~ªº³]³Æ¡Aµ¹§A¼Æ¾Ú¾÷¨Ï¥Îªº /dev/modem ¥H¤Îµ¹§A ·Æ¹«¨Ï¥Îªº /dev/mouse¡D ¥¦Ì³£¬OÃìµ²¨ì§A¦b¦w¸Ë®É©Ò«ü©w¾A·í /dev ¸Ìªº³] ³Æªº²Å¸¹Ãìµ²¡]°£«D§A¥Îªº¬O¶×¬y±Æ·Æ¹«(bus mouse) ¡A¨º»ò /dev/mouse ±N·| «ü¨ì¶×¬y±Æ·Æ¹«³oÓ³]³Æ¡^¡D ¤w¸g¦³¨ÇÃö©ó¨Ï¥Î /dev/mouse ¥H¤Î /dev/modem Àu¯ÊÂIªº°Q½×¡D §Ú±j¯P¦a¤Ï¹ï ¨Ï¥Î³o¨ÇÃìµ²¡A¦pªG§A¥´ºâ¥Î§Aªº¼Æ¾Ú¾÷±µ¨ü¼·±µªº¸Ü¡An¬O§A¨Ï¥Î¤F /dev/modem ¨º»ò§A±N·|¦]¬°Âê©wÀÉ®×(lock files)µLªk¥¿½T¹B§@¦Ó¾D¹J¨ì§xÃø¡D ¦pªG§A³ßÅw¥¦Ìªº¸Ü´N¥Î§a¡A¦ý¬On½T©w¥¦Ì«ü¦V¥¿½Tªº³]³Æ¡D µM¦Ó¡A¦pªG§A§ï Åܩΰ£¥h³oÓ³sµ²¡A¬Y¨ÇÀ³¥Îµ{¦¡(¨Ò¦p minicom)¥i¯àn«·s³]©w¡D 3.1 ¦b /dev ¸Ìªº¦ê¦C³]³Æ¤Î¥Dn©M¦¸n¸¹½X /dev/ttyS0 major 4, minor 64 /dev/cua0 major 5, minor 64 /dev/ttyS1 major 4, minor 65 /dev/cua1 major 5, minor 65 /dev/ttyS2 major 4, minor 66 /dev/cua2 major 5, minor 66 /dev/ttyS3 major 4, minor 67 /dev/cua3 major 5, minor 67 nª`·N¨ì©Ò¦³ªºµo¦æ®M¥ó³£À³¸Ó¤w¸g¥¿½T¦a«Ø¥ß¤F³o¨Ç³]³Æ¡D §A¥i¥H¥Î¤UªkÀË ¬d: linux% ls -l /dev/cua* linux% ls -l /dev/ttyS* ¦b /dev ¤¤«Ø¥ß³]³Æ ¦pªG§A¨S¦³¨ä¤¤ªº¤@Ó³]³Æ¡A§A¥²¶·¦Û¤v¥Î mknod «ü¥O«Ø¥ß¥¦¡D ¨Ò¦p¡A°²©w§A »Ýn«Ø¥ß ttyS0 ³]³Æ¡G linux# mknod -m 666 /dev/cua0 c 5 64 linux# mknod -m 666 /dev/ttyS0 c 4 64 §A¤]¥i¥H¨Ï¥Î MAKEDEV ³oÓ«ü¥O½Z¡A¦b /dev ¤UÀ³¸Ó·|¦³¡D ³o²¤Æ¤F³]³Æªº«Ø ¥ß¡D¨Ò¦p¡A¦pªG§A»Ýn«Ø¥ß ttyS0 ³]³Æ«hÀ³¸Ó¿é¤J¡G linux# cd /dev linux# ./MAKEDEV ttyS0 ³o±N·|³B²zÃö©ó³s½u¶i¨Ó¥H¤Î³s½u¥X¥hªº³]³Æ¤§«Ø¥ß¡A¨Ã³]©w¥¿½TªºÅv¡D 3.2 ¤@¯ë¦h°ðªOªºª`·N¨Æ¶µ §Aªº¦h°ðªO©Ò¨Ï¥Îªº³]³Æµø§A¨Ï¥Î¨º¤@ºØ¦h°ðªO¦Ó©w¡D ³o¨Ç²Ó¸`¸Ô²Ó¦C¦bÀHªþ©ó setserial µ{¦¡ªº rc.serial ¸Ì±¡D ¦pªG§A¹Á¸Õ¨Ï¥Î¦h°ðªOªº¸Ü§Ú±j¯P«Øij§A ¨ú±o³Ì·sª©¥»ªº setserial¡D §A¥i¯à·|»Ýn«Ø¥ß³o¨Ç³]³Æ¡DµL½×¬O¥Î mknod «ü ¥O©Î¬O MAKEDEV «ü¥O½Z³£¥i¥H¡D ¦h°ðªO©Ò¥Î³]³Æ¬O¥H¥[¤W ``64 + °ð¸¹'' ¨Ó«Ø ¥ßªº¡D©Ò¥H¡A¦pªG§A·Q¬° ttyS17 «Ø¥ß³]³Æ¡A§AÀ³¸Ó¿é¤J¡G linux# mknod -m 666 /dev/cua17 c 5 81 linux# mknod -m 666 /dev/ttyS17 c 4 81 nª`·N¨ì ''64 + 17 = 81''¡D¨Ï¥Î MAKEDEV «ü¥O½Zªº¸Ü¡A§AÀ³¸Ó¿é¤J¡G linux# cd /dev linux# ./MAKEDEV ttyS17 ª`·N: SIIG ªº IO1812 ¤â¥U¤W¦C¥Xªº COM5-COM8 ¬O¿ùªº¡D¥¦ÌÀ³¸Ó¬O COM5=0x250, COM6=0x258, COM7=0x260, ¥H¤Î COM8=0x268¡D ª`·N: Digi PC/8 Interrupt Status Register ¬O 0x140¡D ª`·N: ¹ï©ó AST Fourport¡A§A¥²¶·¦b rc.serial ¤¤«ü©w skip_test¡D 3.3 ´¼¼z«¬¦h°ðªOªºª`·N¨Æ¶µ ¾\ŪÀHªþÅX°Êµ{¦¡¦Ó¨Óªº¸ê°T¡D ³o¨ÇªO¨Ï¥Î¤F¯S®íªº¸Ë¸m¡A¦Ó«D¼Ð·Çªº¡D³o¨Ç¸ê °Tµø§AªºµwÅé¦Ó©w¡D 4. §AÀ³ª¾¹Dªº¦³½ìµ{¦¡ 4.1 ¤°»ò¬O getty? getty ¬O¦b§Añ¤J Unix ¾÷¾¹ªº®ÉÔ³B²zñ¤Jµ{§Çªº¤@¤äµ{¦¡¡D ¦pªG§A§Æ±æ§Aªº Linux ¾÷¾¹¯à°÷¨Ï¥Î¼Æ¾Ú¾÷¼·¤Jªº¸Ü§A·|»Ýn getty¡D ¦pªG§A¥u»Ýn¥Î¼Æ¾Ú¾÷¼· ¥Xªº¸Ü§A¤£»Ýn¥Î getty¡D ¦³¤TºØ¸g±`°t¦X Linux ¨Ï¥Îªºª©¥»: getty_ps, mgetty ¥H¤Î agetty¡D ³o¨Çµ{¦¡ªº»yªk¬O¤£¦Pªº¡A©Ò¥H¤£½×§A¥Î¤°»ò getty ½Ð ½T©w§A¨Ï¥Î¤F¥¿½Tªº»yªk¡D Ãö©ó getty_ps ¤j³¡¤À Linux ¦w¸Ë®M¥ó³£¦w¸Ë¤F getty_ps ®M¥ó¡D¥¦¥]§t¤F¨âÓµ{¦¡: getty ¬O ¥Ñ¥D±±¥x¡A¥H¤Î²×ºÝ¾÷³]³Æ©Ò¨Ï¥Î¡A¦Ó uugetty «h¬O¥Ñ¼Æ¾Ú¾÷©Ò¨Ï¥Îªº¡D ¦]¬° §Ú¥»¨¬O¨Ï¥Î³oÓª©¥»ªº getty¡A©Ò¥H¦b³o¥÷¤å¥ó¤¤§Ú±N·|µÛ«©ó¦¹®M¥ó¡D Ãö©ó mgetty mgetty ¬O¤@Ó¦b¼Æ¾Ú¾÷¤W¨Ï¥Îªº getty ª©¥»¡D °£¤F¯à°÷¤¹³\ñ¤J¤§¥~¡A mgetty ¤]´£¨Ñ¶Ç¯u(FAX)¤ä´©¤Î¦Û°Ê PPP °»´ú¡D ³o®M mgetty ªº¤å¥ó¼g±o¬Û·í ¦a¦n¡A¦]¦Ó¤£»Ýn¦A¸É¥R¤°»ò¡D½Ð°Ñ¦Ò¥¦ªº¦w¸Ë»¡©ú¡D §A¤]¥i¥H¦b [52]http://www.leo.org/~doering/mgetty/ §ä¨ì mgetty ªº³Ì·s¸ê°T¡D Ãö©ó agetty agetty ¬O²Ä¤TºØ getty ÅÜ«¬¡D ¥¦¬O getty ¤@Ó²³æªº¡A§¹¾ãªº¥\¯à¹ê§@¡A¾A ¦X¥Î¦bµêÀÀ¥D±±¥x©Î²×ºÝ¾÷¦Ó«D¼Æ¾Ú¾÷¤W¡D 4.2 ¤°»ò¬O setserial? setserial ¬O¤@¤ä¥i¥HÅý§A¬d¬Ý¨Ãקï¦ê¦C³]³Æ¦UºØÄݩʪºµ{¦¡¡A¥]¬A¥¦Ì©Ò¨Ï ¥Îªº°ð¦ì§}¡A¤¤Â_¡A¥H¤Î¨ä¥¦¦ê¦C°ð¿ï¶µ¡D §A¥i¥HÂǥѰõ¦æ¤£¥[°Ñ¼Æªº setserial ¨ÓÀò¨úª©¥»°T®§¡D ¦b§Aªº Linux ¨t²Î±Ò°Ê®É¡A¥u¦³ ttyS{0-3} ·|¥H¹w³]ªº IRQ 4 ¥H¤Î 3 ¨Ó¶i¦æ °t¸m¡D ©Ò¥H¡A¦pªG§A¦³¥ô¦ó¥Ñ¨ä¥¦¬É±¥d´£¨Ñªº¦ê¦C°ð©Î¬O ttyS{0-3} ¨Ï¥Î«D ¼Ð·ÇªºµwÅ餤Â_(IRQ)ªº¸Ü¡A §A¥²¶·¥Î³o¤äµ{¦¡¨Ó°t¸m³o¨Ç¦ê¦C°ð¡Dnª¾¹D©Ò¦³ ªº¿ï¶µ½Ð°Ñ¦Ò½u¤W¤â¥U¡D 5. §Ú«ç»ò¥Î¼Æ¾Ú¾÷¼·¸¹¥X¥h? 5.1 µwÅé»Ý¨D º¥ý¡An½T©w§A¾Ö¦³¥¿½Tªº³s±µ½u¡D§Aªº¼Æ¾Ú¾÷»Ýn¤@±øª½±µªº (straight through) ³s±µ½u¡A¨S¦³¥ô¦ó¸õ½u (no pins crossed)¡D ¥ô¦ó¤@®a¹q¸£°Ó©±³£¦³ ¡Dn½T©w±µÀYªº§Î¦¡¬O¹ïªº¡D¦pªG§A¨Ï¥Îªº¬O DB25 ¦ê¦C°ð¡A¥¦À³¸Ó¬O¤½ªº DB25 ±µÀY¡D §â§Aªº¼Æ¾Ú¾÷±µ¨ì¨ä¤¤¤@Ó¦ê¦C°ð¤W¡D¦pªG§A»ÝnÃö©ó³oӰʧ@ªº »²§U»¡©ú½Ð°Ñ¦Ò§Aªº¼Æ¾Ú¾÷¤â¥U¡D ¤º±µ¦¡¼Æ¾Ú¾÷ª`·N¨Æ¶µ ¹ï©ó¤º±µ¦¡¼Æ¾Ú¾÷¦Ó¨¥¡A§A¤£»Ýn³s±µ½u¡D¤º±µ¦¡¼Æ¾Ú¾÷¤£»Ýn¦ê¦C°ð¡A¥¦¦Û¤v ¦³¤º«Ø¤@Ó¡D §A¥un°t¸m¤@Ó¨S¦³³Q¨Ï¥ÎªºµwÅ餤Â_µ¹¥¦¡A¨Ã¥B°t¸m¸Ó°ðªº¿é¥X ¤J¦ì§}¡D¦pªG§A¥d¦b¬YÓ°ÝÃD¤W½Ð°Ñ¦Ò§Aªº¼Æ¾Ú¾÷¤â¥U¡D ¦P¼Ë¡A¦pªG§A»ÝnÃö©ó ¿ï¾Ü¤¤Â_¥H¤Î¦ì§}¤WªºÀ°§U¡A°Ñ¾\ [53]§Ú¯à¨Ï¥Î¶W¹L¨âÓªº¦ê¦C¸Ë¸m¶Ü? ¤@¸`ªº »¡©ú¡D ¦b¬Y¨Ç¥D¾÷ªO¤W§A¥²¶·Ãö±¼³Q¼Æ¾Ú¾÷¨ú¥Nªº¦ê¦C°ð¥HÁקK½Ä¬ð¡D ³o¥i¸g¥Ñ¸õ½u©Î BIOS ªº³]©w¨Ó¿ì¨ì¡Aµø§Aªº¥D¾÷ªO¦Ó©w¡D¬d¾\§Aªº¥D¾÷ªO¤â¥U¡D ¥Ñ©ó IBM8514 µø°T¥dªº¤@Ó¿ù»~¡A¦pªG§A·Qn±N§Aªº¤º±µ¦¡¼Æ¾Ú¾÷³]¦b ttyS3 ªº¸Ü¥i¯à·|¾D¹J¤@¨Ç°ÝÃD¡D ¦pªG Linux ¨S¦³°»´ú¨ì§A³]¦b ttyS3 ¤Wªº¤º±µ¦¡¼Æ ¾Ú¾÷¡A§A¥i¥H¨Ï¥Î setserial µ{¦¡¨Ó³]©wµM«á¼Æ¾Ú¾÷±N·|¥¿±`¹B§@¡D ³]¦b ttyS{0-2} ¤Wªº¤º±µ¦¡¼Æ¾Ú¾÷¦b°»´ú¤WÀ³¸Ó¤£·|¦³¥ô¦ó°ÝÃD¡D ¥Ñ©ó¦¹µø°T¥dªº¿ù »~ Linux ¦b ttyS3 ¨S¦³¥ô¦ó¦Û°Ê°»´úªº°Ê§@¡D 5.2 »P§Aªº¼Æ¾Ú¾÷¥æ½Í ¦b§A¨Ï¥Î½ÆÂøªº³q°Tµ{¦¡¦p SLIP ©Î PPP ¤§«e¥ý¥H kermit ©Î¨ä¥¦Â²³æªº³q°Tµ{ ¦¡¨Ó´ú¸Õ³o¨Ç³]©w¡D §A¥i¥H±q [54]http://www.columbia.edu/kermit/ ¥H¤Î¬M ®g¸`ÂI¤W§ä¨ì³Ì·sªº kermit ª©¥»¡D ¨Ò¦p¡An¬O§Aªº¼Æ¾Ú¾÷³]¦b ttyS3 ¤W¡A¦Ó ¥B¥i¥H±µ¨ü 115200 bps ªº¸Ü¡A§A¥i¥H³o¼Ë°µ: linux# kermit C-Kermit 6.0.192, 6 Sep 96, for Linux Copyright (C) 1985, 1996, Trustees of Columbia University in the City of New York. Default file-transfer mode is BINARY Type ? or HELP for help. C-Kermit>set line /dev/ttyS3 C-Kermit>set carrier-watch off C-Kermit>set speed 115200 /dev/ttyS3, 115200 bps C-Kermit>c Connecting to /dev/ttyS3, speed 115200. The escape character is Ctrl-\ (ASCII 28, FS) Type the escape character followed by C to get back, or followed by ? to see other options. ATE1Q0V1 ; ³o¬O§AÁä¤Jªº¨Ã«ö¤U Enter Áä OK ; ¼Æ¾Ú¾÷À³¸Ó¦^À³³oÓ ¦pªG§Aªº¼Æ¾Ú¾÷¹ï AT «ü¥O¸s¦³¦^À³¡A¨º»ò§A¥i¥H°²©w§Aªº¼Æ¾Ú¾÷¦b Linux ³o¤@ ºÝ¯à¥¿½T¹B§@¡D ²{¦b¸ÕµÛ¼·µ¹¥t¤@¥x¼Æ¾Ú¾÷: ATDT7654321 ¨ä¤¤ 7654321 ¬O¤@Ó¹q¸Ü¸¹½X¡D¦pªG§Aªº¬O¯ß½Ä½u¸ô(pulse line)ªº¸Ü¥Î ATDP ¦Ó¤£¬O ATDT¡D ¦pªG¥i¥H¼·±o¥X¥h¡A§Aªº¼Æ¾Ú¾÷´N¥i¥¿±`¹B§@¡D ¦^¨ì kermit ªº´£¥Ü²Å¸¹¤U¡A«ö¦í Ctrl Áä¡A«ö¤U \ (backslash) ¿ý¡AµM«á©ñ¶} Ctrl ¿ý¡A¦A«ö¤U C Áä: Ctrl-\-C (Back at linux) C-Kermit>quit linux# ³oÓ¤£¹L¬O¥Î"¤â°Ê"¤è¦¡ªº¼·¸¹´ú¸Õ¡D¥¿±`ªº¤èªk¬OÅý kermit ¥Î¥¦¤º«Øªº¼Æ¾Ú ¾÷¸ê®Æ®w¦Û°Ê¬°§A¼·¸¹¡A¨Ò¦p¡A¨Ï¥Î US Robotics (USR) modem: linux# kermit C-Kermit 6.0.192, 6 Sep 1997, for Linux Copyright (C) 1985, 1996, Trustees of Columbia University in the City of New York. Default file-transfer mode is BINARY Type ? or HELP for help C-Kermit>set modem type usr ; ¿ï¾Ü¼Æ¾Ú¾÷«¬¦¡ C-Kermit>set line /dev/ttyS3 ; ¿ï¾Ü³q°T¸Ë¸m C-Kermit>set speed 115200 ; ³]©w³q°T³t«× C-Kermit>dial 7654321 ; ¼·¸¹ Number: 7654321 Device=/dev/ttyS3, modem=usr, speed=115200 Call completed.<BEEP> Connecting to /dev/ttyS3, speed 115200 The escape character is Ctrl-\ (ASCII 28, FS). Type the escape character followed by C to get back, or followed by ? to see other options. Welcome to ... login: ¦pªG§A»Ýn¤@¨Ç«ü¤Þ¡A¬d¾\¦³Ãö [55]³q°T³nÅé ¤@¸`»¡©ú¡D ·í§A¥Î§Aªº¼Æ¾Ú¾÷¼·¸¹¥X¥h®É¡A±N§Aªº¼Æ¾Ú¾÷³]¨ì¥¦©Ò¯à¤ä´©ªº³Ì°ª³t«×¡D Linux ªº libc 5.x ª©¥H¤W¤w¸g¤ä´©¨ì 115200 bps¡D libc ³q±`©ñ¦b /lib¡A¦] ¦¹¨ì¨º¸Ì¬Ý¤@¤U§A¥Î¤°»òª©¥»¡D ¦pªG Linux µLªk»{±o 57600 ©Î 115200 bps¡A ¨º»ò§A¥²¶·¥Î setserial µ{¦¡¨Ó±N§Aªº¦ê¦C°ð³]¨ì§ó°ªªº³t«×¡D Ãö©ón«ç»ò³] ©w°Ñ¾\ [56]¦p¦ó±N§Úªº¦ê¦C°ð³]©w¬°§ó°ª³t«×? ¸Ó¸`»¡©ú¡D µM«á¦b³q°Tµ{¦¡¸Ì ±N³t«×³]¨ì 38400 bps¡D 5.3 ¼·¥X¥Îªº¼Æ¾Ú¾÷°t¸m ¥un¼·¸¹¥X¥hªº¸Ü¡A§A¥i¥H¥ô·N¥H§A·Qnªº¤è¦¡°t¸m§Aªº¼Æ¾Ú¾÷¡D ¦pªG§Apµe¥Î §Aªº¼Æ¾Ú¾÷¨Ó±µ¨ü¼·±µ¡A¨º»ò§A¥²¶·±N§Aªº¼Æ¾Ú¾÷°t¸m¦¨»P§A·Qn°õ¦æªº getty ¦b¬Û¦P³t«×³]©w¤U¡D ©Ò¥H¡A¦pªG§A·Qn¦b 38400 bps ªº³t«×¤U°õ¦æ getty ªº¸Ü ¡A¦b°t¸m§A¼Æ¾Ú¾÷ªº®ÉÔ±N³t«×³]¦¨ 38400 bps¡D ³o¼Ë°µ¬O¬°¤FÁקK§Aªº¹q¸£»P ¼Æ¾Ú¾÷¤§¶¡ªº³t«×µLªk°t¦X¡D ¤@¯ë¨Ó»¡¡A¶}±Ò¿ù»~®Õ¥¿¤ÎµwÅé¬y¶q±±¨îªº¥X¼t³] ©wȬO³Ì¾A¦X¼·¥X¥Îªº¼Æ¾Ú¾÷¡A³o¨Ç³]©wÈ¥i¬d¾\§Aªº¼Æ¾Ú¾÷¤â¥U¡D 5.4 µwÅé¬y¶q±±¨î ¦pªG§Aªº¼Æ¾Ú¾÷¤ä´©µwÅé¬y¶q±±¨î(RTS/CTS)ªº¸Ü¡A §Ú±j¯P¦a«Øij§A¥h¨Ï¥Î¥¦¡D ³o¹ï©ó¤ä´©¸ê®ÆÀ£ÁYªº¼Æ¾Ú¾÷±N®æ¥~«n¡Dº¥ý¡A§A¥²¶·¦b¦ê¦C°ð¥»¨¤W±±Ò°Ê RTS/CTS ¬y¶q±±¨î¥\¯à¡D ³o³Ì¦n¬O¦b±Ò°Ê¨t²Îªº®ÉÔ°µ¡A¹³¬O©ñ¦b /etc/rc.d/rc.local ©Î¬O /etc/rc.d/rc.serial ¸Ì±¡D n½T©w³o¨ÇÀÉ®×·|³Q¥D nªº rc.sysinit ÀÉ®×°õ¦æ¡I§A»Ýn¹ï¨C¤@Ó§A·Qn±Ò°ÊµwÅé¬y¶q±±¨îªº¦ê¦C°ð °õ¦æ¤U¦C¾Þ§@¡G stty crtscts < /dev/ttyS3 §A¤]¥²¶·¦b§Aªº¼Æ¾Ú¾÷¤W±Ò°Ê RTC/CTS ¬y¶q±±¨î¡Dn«ç»ò°µ½Ð°Ñ¦Ò§Aªº¼Æ¾Ú¾÷¤â ¥U¡A¦]¬°³o¦b¤£¦Pªº¼Æ¾Ú¾÷»s³y°Ó¤§¶¡¬O¤£¦Pªº¡D ¦pªG§Aªº¼Æ¾Ú¾÷¤ä´©³]©wÀx¦s ªº¸Ü«hn½T©w±N°t¸m¦s¤J§Aªº¼Æ¾Ú¾÷¡D 6. §Ún«ç»ò¼Ë¥Î¼Æ¾Ú¾÷¥H getty_ps ¼·¤J¤Î¼·¥X? Åý§Aªº¼Æ¾Ú¾÷¯à°÷¥¿½T¦a¼·¸¹¥X¥h¡D¦pªG§AÁÙ¨S¦³Åª¹L [57]§Ú«ç»ò¥Î¼Æ¾Ú¾÷¼·¸¹ ¥X¥h ¤@¸`ªº¸Ü²{¦b¥hŪ¡I ¥¦¥]§t¦³«D±`«nªº³]©w¸ê°T¡D¦pªG§A¥u·Q¥Î¼Æ¾Ú¾÷ ¨Ó¼·¥Xªº¸Ü§A¤£»ÝnŪ¦¹¸`¡D 6.1 ¼·¤J¤Î¼·¥Xªº¼Æ¾Ú¾÷°t¸m n¥Î¨Ó±µ¨ü¼·±µ¥H¤Î¼·¸¹¥X¥hªº¸Ü¡A¨º»ò§A¥²¶·½T¹ê¦a³]©w§Aªº¼Æ¾Ú¾÷¡]¦A¤@¦¸ ¹ï§Aªº¼Æ¾Ú¾÷¨Ï¥Î AT «ü¥O¸s¡^¡G E1 ¥»¦a¦^À³«ü¥O Q0 ¦^³øµ²ªG¦^À³ V1 ¶}±Ò¤¾ªø¼Ò¦¡ S0=0 ¤£n±µÅ¥ (uugetty ¥H WAITFOR ¿ï¶µ¨Ó³B²z) ¦pªG§A¨S¦³¥¿½T¦a³]©w¡A©ñ¦b§A°t¸mÀɸ̪º°_©l(INIT)¦r¦ê¥i¯à·|¥¢±Ñ¡A¦]¦Ó°± ¦í¾ãÓµ{§Ç¡D ¦ý¬O¡A¤U±¦³§ó¦h°t¸mÀɪº¿ï¶µ... &C1 DCD ¥u¦³¦b³s½u¥H«á¤~¶}±Ò &S0 DSR ¥Ã»·¬°¶}±Ò DTR ¶}±Ò/Ãö³¬ «¸m¼Æ¾Ú¾÷¡]¬O¼Æ¾Ú¾÷»s³y°Ó¦Ó©w - RTFM) ³o¨Ç·|¼vÅT§A¼Æ¾Ú¾÷¦³Ãö¶}©l¥H¤Îµ²§ô¼·¸¹ªº°Ê§@¡D ¦pªG§Aªº¼Æ¾Ú¾÷¤£¤ä´©Àx¦s³]©w¡A§A¥i¥H³z¹L¦b§A°t¸mÀɸ̪º°_©l¦r¦ê¨Ó³]©w³o ¨ÇªF¦è¡D °Ñ¾\¤U±©Òz¡D¦³¤@¨Ç¼Æ¾Ú¾÷¬O¥H DIP ¶}Ãö¨Ó¼vÅT¼È¦s¾¹ªº³]©w¡A¤] n½T©w³o¨Ç³]©w¬O¥¿½Tªº¡D §Ú¤w¸g¶}©lµÛ¤â¦¬¶°¤£¦PºØÃþ¼Æ¾Ú¾÷ªº³]©w¡D ¨ì¥Ø«e¬°¤î¡A§ÚÁÙ¥u¦³¥¦Ìªº¤@¤p ³¡¤À¡A¦pªG§A·Qn±H°eµ¹§Ú§A¥Ø«e©Ò¥Î°t¸m¡A«D±`Åwªï! §A¥i¥H±q³o¨Ç¨ú±o³]¨Ç ³]©w: [58]ftp://ftp.cc.gatech.edu/pub/people/gregh/modem-configs¡D ª`·N: ¬°¤FÅý§Úªº USR Courier V.34 ¼Æ¾Ú¾÷¦b DTR °T¸¹±¼¤U¥h«á¥¿±`¦a«¸m¡A §Ú¥²¶·³]©w &D2 ¤Î S13=1(³o¬O³]©w¼È¦s¾¹ S13 ªº bit 0)¡D³o½T©w¯à¦b USR Sportster V.34 ¤W¹B§@¥¿±`¡D ª`·N: ¬Y¨Ç Supra ¼Æ¾Ú¾÷³B²z DCD °T¸¹ªº¤è¦¡²§©ó¨ä¥¦ªº¼Æ¾Ú¾÷¡D ¦pªG§A¦b¥Î Supra ¼Æ¾Ú¾÷¡A¸ÕµÛ³]©w¬° &C0 ¦Ó¤£¬O &C1¡D §A¤]¥²¶·³]©w &D2 ¨Ï¤§¥¿±`¦a³B ²z DTR °T¸¹¡D 6.2 ¦w¸Ë getty_ps ±q [59]ftp://sunsite.unc.edu/pub/Linux/system/serial ³Ì·sªºª©¥»¡D ¯S§O ¦a¡A¦pªG§A·Q¨Ï¥Î°ª³t³q°T(57600 ©Î 115200 bps)¡A§A¥²¶·¨ú±o 2.0.7j ©Î¥H«á ªºª©¥»¡D §A¤]¥²¶·¦³ libc 5.x ©Î¤§«áªºª©¥»¡D ¨Ì·Ó¹w³]È¡Agetty_ps ±N·|·Ó Linux ªºÀɮרt²Î¼Ð·Ç(FSSTND, File System Standard)¨Ó°t¸m¡A³oÓ·N«ä¬O¤G¶i¦ì½X±N·|©ñ¦b /sbin ¤U¡A¦Ó°t¸mÀɱN·|¥H /etc/conf.{uu}getty.ttySN ¨Ó©R¦W¡D ³oÂI¨Ã¤£¯à±q¤å¥ó±Ôz¤¤§ä¨ì¡I¥¦¤]·|°² ©w lock files ±N±on©ñ¨ì /var/lock ¥Ø¿ý¸Ì¡Dn½T©w§A¦³ /var/lock ³o ¿ý¡D ¦pªG§A¤£·Q¨Ì·Ó FSSTND ªº¸Ü¡A¤G¶i¦ì½X±N·|©ñ¨ì /etc ¸Ì±¡A¦Ó°t¸mÀɱN·|©ñ ¨ì /etc/default/{uu}getty.ttySN ¸Ì±¡A¦Ó lock files «h±N·|©ñ¨ì /usr/spool/uucp ¸Ì±¡D ¦pªG§A¦³¨Ï¥Î UUCP ªº¸Ü¨º»ò§Ú«Øij³o¼Ë°µ¡A¦]¬°¦pªG §A§â lock files ·h¨ì UUCP µLªk§ä¨ìªº¦a¤è¥h¨º»ò¥¦±N·|¥X°ÝÃDªº¡D getty_ps ¤]¥i¨Ï¥Î syslogd ¨Ó°O¿ý°T®§¡D¦pªG§A¥Ø«e¨S¦³°õ¦æ¥¦ªº¸Ü¡A°Ñ¾\ syslogd(1) ¥H¤Î syslog.conf(5) ªº½u¤W¤â¥U¨Ó³]©w syslogd¡D °T®§·|Àu¥ý¥H LOG_AUTH °O¿ý¡A¿ù»~¨Ï¥Î LOG_ERR °O¿ý¡A¦Ó°£¿ù¨Ï¥Î LOG_DEBUG¡D ¦pªG§A¤£·Q ¨Ï¥Î syslogd ªº¸Ü¨º»ò§A¥i¥H½s¿è¦b getty_ps ì©lÀɮ׸̪º tune.h ¥Î¤@Ó°O ¿ýÀɨӨú¥N¡A¹w³]ÀɦW¬° /var/adm/getty.log¡D ¨M©w¦n¬O§_n¨Ì·Ó FSSTND ¥H¤Î¨Ï¥Î syslog¡D§A¤]¥i¥H¿ï¾Ü¨âªÌªº²Õ¦X¡D ½s¿è Makefile¡Atune.h ¥H¤Î config.h ¨Ó¤ÏÀ³§A©Ò§@ªº¨M©w¡D µM«á¡A®Ú¾Ú®M¥ó¸Ìªº »¡©ú½sĶ¤Î¦w¸Ë¡D ±q²{¦b°_¡A©Ò¦³½Í¨ì getty ªº¦a¤è³£¬O«ü getty_ps ¦Ó¨¥¡D ½Í¨ì uugetty «h¬O «ü getty_ps ®M¥ó¸Ìªº uugetty ¦Ó¨¥¡D ³o¨Ç«ü¥O¦b mgetty ©Î agetty ¤W±N¤£ ¯à¹B§@¡D 6.3 ³]©w uugetty ¬°¤Fn¯à±q§Aªº¼Æ¾Ú¾÷¼·¤J¤Î¼·¥X¡A§ÚÌ·Qn¥Î uugetty¡Duugetty °õ¦æ«Ü«n ªº lock file Àˬd¡D ¦pªG¨S¦³ªº¸Ü§ó·s /etc/gettydefs ¥H«K¬°¼Æ¾Ú¾÷¼W¥[¶µ ¥Ø(ª`·N¨ì³o¸Ìªº¶µ¥Ø¤¬¬Û°Ñ¦Ò¡A¥¦Ì¨Ã«D©T©w³t«× - ¨CÓ¶µ¥Ø¤§¶¡ªºªÅ¥Õ¦æ¬O ¥²nªº): # Modem entries 115200# B115200 CS8 # B115200 SANE -ISTRIP HUPCL #@S @L @B login: #57600 57600# B57600 CS8 # B57600 SANE -ISTRIP HUPCL #@S @L @B login: #38400 38400# B38400 CS8 # B38400 SANE -ISTRIP HUPCL #@S @L @B login: #19200 19200# B19200 CS8 # B19200 SANE -ISTRIP HUPCL #@S @L @B login: #9600 9600# B9600 CS8 # B9600 SANE -ISTRIP HUPCL #@S @L @B login: #2400 2400# B2400 CS8 # B2400 SANE -ISTRIP HUPCL #@S @L @B login: #115200 ¦pªG§A¦³ 9600 bps ©Î§ó§Ö¥B¨ã¸ê®ÆÀ£ÁY¥\¯àªº¼Æ¾Ú¾÷¡A§A¥i¥HÂê©w§Aªº¦ê¦C°ð ³t«×¦ÓÅý¼Æ¾Ú¾÷¥h³B²z¶Ç¿éªº¨ä¥¦³t«×¡D µM«á¡A¤£¹³¤W±¦b /etc/gettydefs ¸Ì ªº¤@³s¦ê¦Cªí¡A¥u»Ý¬°¼Æ¾Ú¾÷¥[¤W¤@¦æ¡A¨Ò¦p: # 115200 fixed speed F115200# B115200 CS8 # B115200 SANE -ISTRIP HUPCL #@S @L @B login: #F115200 ¦pªG§A±N§Aªº¼Æ¾Ú¾÷³]¦¨ RTS/CTS °õ¦æµwÅé¬y¶q±±¨îªº¸Ü¡A¨º»ò§A¥i¥H±N CRTSCTS ¥[¨ì³o¨Ç¶µ¥Ø¸Ì¡G # 115200 fixed speed with hardware flow control F115200# B115200 CS8 CRTSCTS # B115200 SANE -ISTRIP HUPCL CRTSCTS #@S @L @B log in: #F115200 ¦pªG§Anªº¸Ü¡A§A¥i¥HÅý uugetty ¦bñ¤J®Éªº¼ÐÃD¤W¦L¥X¨Ç¦³½ìªºªF¦è¡D ¦b§Ú ªº¨Ò¤l¸Ì¡A§Ú¦L¥X¨t²Î¦WºÙ¡A¦ê¦C½u¸ô¡A¥H¤Î¥Ø«eªº¨C¬í¦ì¤¸¶Ç¿é²v¡D §A¥i¥H¥[ ¤J¨ä¥¦ªºªF¦è¡G @B ¥Ø«eªº¨C¬í¦ì¤¸¶Ç¿é²v(bps, ¦b¬Ý¨ì @B ®É¦ôpªº)¡D @D ²{¦b¤é´Á, ®æ¦¡ MM/DD/YY¡D @L getty ©Ò³s±µªº¦ê¦C½u¸ô¡D @S ¨t²Î¦WºÙ¡D @T ²{¦b®É¶¡¡A®æ¦¡ HH:MM:SS (24 ¤p®É¨î)¡D @U ¥Ø«eñ¤Jªº¨Ï¥ÎªÌ¡D³o¬O¦b /etc/utmp Àɤ¤«DªÅ ut_name Äæ¦ì¶µ¥Øªºp¼Æ È¡D @V ª©¥»È¡A¦b¹w³]Àɤ¤µ¹©wªº¡D ¦pªGnÅã¥Ü '@' ²Å¸¹ªº¸Ü¡A¥Î '\@' ©Î '@@'¡D ±µ¤U¨Ó¡A½T©w§A¼Æ¾Ú¾÷©Ò±µªº¦ê¦C°ð¦³¿é¥X¤Î¿é¤Jªº³]³Æ¡D ¦pªG§Aªº¼Æ¾Ú¾÷³]¦b ttyS3 ªº¸Ü§A±N·|»Ýn /dev/cua3¡A¥H¤Î /dev/ttyS3 ³o¨âÓ³]³Æ¡D ¦pªG§A¨S¦³ ¥¿½Tªº³]³Æ¡A°Ñ¾\ [60]¦b /dev ¤¤«Ø¥ß³]³Æ ¸Ó¸`»¡©ú¦p¦ó«Ø¥ß³]³Æ¡A¨Ã¥B«Ø¥ß ³o¨Ç³]³Æ¡D ¦pªG§A§Æ±æ¦b§Aªº uugetty ¥¿¦bºÊµø³oÓ¦ê¦C°ð¬O§_¦³¤Hñ¤J®ÉÁÙ ¯à°÷¥Î¼Æ¾Ú¾÷¼·¥Xªº¸Ü¡A¥Î /dev/cuaN ³]³Æ¦Ó¤£n¥Î /dev/ttySN¡D ·í§A¥¿¦b½s¿è /etc/gettydefs ®É¡A§A¥i¥H³o¼Ë¨ÓÀˬd¥¦ªº»yªk¬O§_¥¿½T: linux# getty -c /etc/gettydefs 6.4 ¦Ûq uugetty §A¦³³\¦h°Ñ¼Æ¥i¥H¥Î¨Ó§ïÅܧA©Ò¾Ö¦³ªº¨C¤@Ó°ð¡D³o¨Ç¬O¥H¤À§O¹ï¨C¤@Ó°ð¨Ï¥Î ¤£¦P°t¸mÀɪº¤è¦¡¨Ó¹ê§@ªº¡D ³oÓ /etc/conf.uugetty ÀÉ®×·|³Q©Ò¦³ªº uugetty ¦æµ{©Ò¨Ï¥Î¡A¦Ó /etc/conf.uugetty.ttySN ¥u¥Ñ¨ºÓ°ð¨Ï¥Î¡D ¹w³]ªº °t¸mÀɽd¨Ò¥i¥H¦b getty_ps ªºì©lÀɮ׸̧ä¨ì¡A³o¦bµ´¤j³¡¤Àªº Linux µo¦æ®M ¥ó¸Ì±³£·|¦³¡D ¦]¬°½g´Tªº¦Ò¶q¡A¨S¦³§â¥¦Ì¦C¦b³o¸Ì¡D nª`·Nªº¬O¦pªG§A¥Î ªº¬O¤ñ¸ûªº getty ª©¥»(¤ñ 2.0.7e ª©ÁÙÂÂ)¡A©ÎªÌ¬O§A¨S¦³¨Ì·Ó FSSTND ªº¸Ü ¡A¨º»ò¹w³]ªºÀÉ®×±N·|¬O /etc/default/uugetty.ttySN¡D §Úªº /etc/conf.uugetty.ttyS3 ¬Ý°_¨Ó¹³³o¼Ë: # sample uugetty configuration file for a Hayes compatible modem to allow # incoming modem connections # # alternate lock file to check... if this lock file exists, then uugetty is # restarted so that the modem is re-initialized ALTLOCK=cua3 ALTLINE=cua3 # line to initialize INITLINE=cua3 # timeout to disconnect if idle... TIMEOUT=60 # modem initialization string... # format: <expect> <send> ... (chat sequence) INIT="" AT\r OK\r\n WAITFOR=RING CONNECT="" ATA\r CONNECT\s\A # this line sets the time to delay before sending the login banner DELAY=1 #DEBUG=010 ±N¤U±¨º¤@¦æ¥[¨ì§Aªº /etc/inittab ¸Ì¥h¡A¨º»ò uugetty ´N·|¦b§Aªº¦ê¦C°ð¤W °õ¦æ(¥Î§AÀô¹Òªº¥¿½T¸ê°T¨Ó¨ú¥N - °t¸mÀɪº¦ì¸m¡A¦ê¦C°ð¦W¡A³t«×¡A¤Î¹w³]²× ºÝ¾÷§Î¦¡): S3:456:respawn:/sbin/uugetty -d /etc/default/uugetty.ttyS3 ttyS3 F115200 vt100 «·s±Ò°Ê init: linux# init q ¹ï©ó¦b§A /etc/inittab ¸Ì±ªº³t«×°Ñ¼Æ¡A§A·|§Æ±æ¨Ï¥Î§A¼Æ¾Ú¾÷©Ò¯à¤ä´©ªº³Ì °ª¨C¬í¦ì¤¸¶Ç¿é²v¡D ²{¦b Linux ±N·|ÀH®ÉºÊµø§Aªº¦ê¦C°ð¬O§_¦³³s½u¡D±q§Oªº¦a¤è¼·¸¹¨Ãñ¤J§Aªº Linux ¾÷¾¹¡D uugetty ÁÙ¦³§ó¦hªº¿ï¶µ¡A°Ñ¾\ getty (lm) ½u¤W¤â¥UÀò±o§ó§¹¾ãªº±Ôz¡D §Oªº ¤£´£¥¦ÁÙ¦³±Æµ{(scheduling)ªº¥\¯à¡A¥H¤Î¦^¼·ªº¯à¤O¡D 7. §Ú«ç»ò³]©w²×ºÝ¾÷³s½u¨ì§Úªº PC ¤W? ¥»¸`ªº«ü¥Ü¯àÅý²×ºÝ¾÷¤Î¨ä¥¦¹q¸£³s¤W§Aªº Linux ¾÷¾¹ªº¦ê¦C°ð¡D 7.1 µwÅé»Ý¨D n½T©w§A¦³¤@±ø¥¿½Tªº³s±µ½u¡D¦b¹q¸£°Ó©±¶Rªº null modem ³s±µ½u´N¥i¥H³Ó¥ô ¡D ¦ý¬O¥¦¤@©w±on¬O¤@±ø null modem ½u¡I³\¦hªº¹q¸£¯¸±N³oÃþªº³s±µ½u»¡¦¨¬O ¦ê¦C¦Lªí±µ½u¡D ½T©w§A¬O¨Ï¥Î§Aªº¦ê¦C°ð¡A¤½ªº DB25 ©Î¬O DB9 ±µÀY¡A¦Ó¤£¬O §Aªº¨Ã¦C°ð(¥Àªº DB25 ©Î centronics)¡D ¹ï DB-25 ±µÀY¦Ó¨¥¡A¦Ü¤Ö§A±on¦³: PC male DB25 Terminal DB25 TxD Transmit Data 2 --> 3 RxD Receive Data RxD Receive Data 3 <-- 2 TxD Transmit Data SG Signal Ground 7 --- 7 SG Signal Ground ¦pªG§A·Qn¾Ö¦³¬y¶q±±¨î¥H¤ÎµwÅé³s½u¨ó°Ó(handshaking)ªº¸Ü¡A§A¥²¶·n¦³¤@±ø §¹¾ãªº null modem ±µ½u¡G PC male DB25 Terminal DB25 TxD Transmit Data 2 --> 3 RxD Receive Data RxD Receive Data 3 <-- 2 TxD Transmit Data RTS Request To Send 4 --> 5 CTS Clear To Send CTS Clear To Send 5 <-- 4 RTS Request To Send DSR Data Set Ready 6 | DCD Carrier Detect 8 <-- 20 DTR Data Terminal Ready SG Signal Ground 7 --- 7 SG Signal Ground 6 DSR Data Set Ready | DTR Data Terminal Ready 20 --> 8 DCD Carrier Detect ¦pªG§Aªº¦ê¦C°ð¤W¦³¤@Ó DB9 ªº±µÀY¡A¸Õ¸Õ¬Ý¤U±³oÓ: PC DB9 Terminal DB25 RxD Receive Data 2 <-- 2 TxD Transmit Data TxD Transmit Data 3 --> 3 RxD Receive Data SG Signal Ground 5 --- 7 SG Signal Ground ©ÎªÌ¡A¤@±ø§¹¾ãªº DB9 ¹ï DB25 null modem ³s±µ½u¡G PC DB9 Terminal DB25 RxD Receive Data 2 <-- 2 TxD Transmit Data TxD Transmit Data 3 --> 3 RxD Receive Data 6 DSR Data Set Ready | DTR Data Terminal Ready 4 --> 8 DCD Carrier Detect GND Signal Ground 5 --- 7 GND Signal Ground DCD Carrier Detect 1 | DSR Data Set Ready 6 <-- 20 DTR Data Terminal Ready RTS Request To Send 7 --> 5 CTS Clear To Send CTS Clear To Send 8 <-- 4 RTS Request To Send (RI Ring Indicator 9 not needed) (¨S¿ù! ²Ä¤G¤ä¤Î²Ä¤T¤ä¸}¦b DB9 ³s±µÀY¤W½T¹ê©M DB25 ±µÀY·N¸q¬Û¤Ï!) ¦pªG¨Ï¥Îªº¨Ã¤£¬O§¹¾ãªº null modem ³s±µ½uªº¸Ü¡A§A¥i¯à±on°µ¤U±³oÓ´ÛÄF ªº§Þ¥©: ¦b§A¹q¸£³oÃ䪺±µÀY¤W¡A§â RTS ¸ò CTS ±µ¦b¤@°_¡A¦Ó¥B¤]§â DSR, DCD ¥H¤Î DTR ±µ¦b¤@°_¡D ¥Î³oÓ¤èªk¡A·í¹q¸£n¨D¤@Ó¥¿½TªºµwÅé³s½u¨ó°Ó«H ¸¹®É¡A¥¦´N¥i¥H±o¨ì(±q¥¦¦Û¤vµo¥Xªº)¡D ²{¦b§A¤w¸g¦³¥¿½Tªº³s±µ½u¡A§â§Aªº²×ºÝ¾÷³s±µ¨ì§Aªº¹q¸£¤W¡D ¦pªG§A¥i¥Hªº¸Ü ¡A§i¶D§Aªº²×ºÝ¾÷©¿²¤¼Æ¾Ú¾÷±±¨î«H¸¹¡D ¸Õ¸Õ¬Ý¥Î 9600 bps, 8 data bits, 1 stop bit, no parity bits ¨Ó³]©w²×ºÝ¾÷¡D 7.2 ³]©w getty ¦b /etc/gettydefs ¸Ì±¼W¥[¤@Óµ¹ getty ¥Î¨Ó³s±µ§A²×ºÝ¾÷¶µ¥Ø¡A¦pªGÁÙ¨S¦³ ³o¶µªº¸Ü: # 38400 bps Dumb Terminal entry DT38400# B38400 CS8 CLOCAL # B38400 SANE -ISTRIP CLOCAL #@S @L login: #DT38400 # 19200 bps Dumb Terminal entry DT19200# B19200 CS8 CLOCAL # B19200 SANE -ISTRIP CLOCAL #@S @L login: #DT19200 # 9600 bps Dumb Terminal entry DT9600# B9600 CS8 CLOCAL # B9600 SANE -ISTRIP CLOCAL #@S @L login: #DT9600 ¦pªG§Anªº¸Ü¡A§A¥i¥HÅý getty ¦bñ¤Jªº¼ÐÃD¤W¦L¥X¤@¨Ç¦³½ìªºªF¦è¡D ¦b§Úªº ¨Ò¤l¸Ì¡A§Ú¦L¥X¨t²Î¦WºÙ¥H¤Î¦ê¦C½u¸ô¡D§A¥i¥H¥[¤J¨ä¥¦ªºªF¦è: @B ¥Ø«eªº¨C¬í¦ì¤¸¶Ç¿é²v(bps, ¦b¬Ý¨ì @B ®É¦ôpªº)¡D @D ²{¦b¤é´Á, ®æ¦¡ MM/DD/YY¡D @L getty ©Ò³s±µªº¦ê¦C½u¸ô¡D @S ¨t²Î¦WºÙ¡D @T ²{¦b®É¶¡¡A®æ¦¡ HH:MM:SS (24 ¤p®É¨î)¡D @U ¥Ø«eñ¤Jªº¨Ï¥ÎªÌ¡D³o¬O¦b /etc/utmp Àɤ¤«DªÅ ut_name Äæ¦ì¶µ¥Øªºp¼ÆÈ¡D @V ª©¥»È¡A¦b¹w³]Àɤ¤µ¹©wªº¡D ¦pªGnÅã¥Ü '@' ²Å¸¹ªº¸Ü¡A¥Î '\@' ©Î '@@'¡D ·í§A¥¿¦b½s¿è /etc/gettydefs ®É¡A§A¥i¥H³o¼Ë¨ÓÀˬd¥¦ªº»yªk¬O§_¥¿½T: linux# getty -c /etc/gettydefs ½T©w¨S¦³ getty ©Î uugetty ªº³]©wÀÉ(/etc/default/{uu}getty.ttySN ©Î /etc/conf.{uu}getty.ttySN)¦b§Aªº²×ºÝ¾÷³s±µªº¦ê¦C°ð¤W¡A ¦]¬°³o¤]³\·|¤zÂZ ¨ì¦b²×ºÝ¾÷¤W°õ¦æªº getty¡D¦pªG¦³ªº¸Ü½Ð²¾°£¥¦¡D ½s¿è§Aªº /etc/inittab Åý getty ¦b§Aªº¦ê¦C°ð¤W°õ¦æ(¥Î§AÀô¹Òªº¥¿½T¸ê°T¨Ó ¨ú¥N - °t¸mÀɪº¦ì¸m¡A¦ê¦C°ð¦W¡A³t«×¡A¤Î¹w³]²×ºÝ¾÷§Î¦¡): S1:456:respawn:/sbin/getty ttyS1 DT9600 vt100 «·s°_©l init: linux# init q ²{¦b§AÀ³¸Ó·|¦b§Aªº²×ºÝ¾÷¤W¬Ý¨ìñ¤J´£¥Ü¡D¤]³\§A±o«öªð¦^Áä(return)´X¦¸Åý ²×ºÝ¾÷ª`·N¨ì¡D 7.3 ±N PC ³]©w¦¨²×ºÝ¾÷ªºª`·N¨Æ¶µ ³\¦h¤H±N¨ä¥¦ PC ³]©w¦¨²×ºÝ¾÷³s±µ¨ì Linux ¾÷¾¹¤W¡D¨Ò¦p¡Aªº 8088 ©Î¬O 286 PC «D±`¾A¦X³oӥγ~¡D §A»Ýnªº¥u¬O¤@±i¥]§t¾A¦XÅý§Aªº²×ºÝ¾÷-Ó¤H¹q¸£ (Terminal-PC) ¨Ï¥Îªº DOS ºÏ¤ù¡A¥H¤ÎÅý§Aªº²×ºÝ¾÷-Ó¤H¹q¸£°õ¦æªº³q°Tµ{¦¡ ¡D kermit ¦b³oӥγ~¤Wªí²{±o«D±`¦n¡D §A¥i¥H¦b³o¥x¾÷¾¹ [61]http://www.columbia.edu/kermit/ ¤W§ä¨ì´X¥G¥i¥HÅý¥ô¦ó²{¦sªº§@·~¨t²Î ¨Ï¥Îªº¤w½sĶªº kermit ª©¥»¡D ¨ä¥¦¬y¦æªº DOS ³q°Tµ{¦¡¹³¬O telix ¥H¤Î procomm ¤]±N·|¦³¤@¼Ë¦nªºªí²{¡D n½T©w¿é¤J¥¿½Tªº¦ê¦C°ð¸ê°T¨ì§A²×ºÝ¾÷-Ó ¤H¹q¸£ªº³q°T³]©w¸Ì¥h¡D 8. §Ú¯à¨Ï¥Î¶W¹L¨âÓªº¦ê¦C¸Ë¸m¶Ü? §A¤£»Ýn¾\Ū³o¤@¸`¡A°£«D§A·Qn¨Ï¥Î¤TөΧó¦hªº¦ê¦C³]³Æ...(°²©w§A¨S¦³¦h °ð¥dªº¸Ü)¡D °²¦p§A¦³¥t¤@Ó¦h¾lªº¦ê¦C°ð¡A¬Oªº¡A§A¥i¥H¡D §A¥i¥H¨Ï¥Îªº¦ê¦C°ð¼Æ¥Ø¨ü©ó §ÚÌ¥²¶·¨Ï¥ÎªºµwÅ餤Â_n¨D¥H¤Î°ð¿é¥X¤J¦ì§}ªº¼Æ¥Ø¡D ³o¨Ã¤£¬O Linux ªº ¨î¡A¦Ó¬O PC ¶×¬y±Æªº¨î¡D¥²¶·«ü©w¤¤Â_¸ò¦ì§}µ¹¨C¤@Ó¦ê¦C³]³Æ¡D ¦ê¦C³]³Æ ¥i¥H¬O¦ê¦C°ð¡A¤º±µ¦¡¼Æ¾Ú¾÷©Î¬O¦h°ð¥d¡D ¦h°ð¥d¬O¬°¤F¾Ö¦³³\¦hÓ¦ê¦C°ð¨Ó¤À¨É¥d¤W©Ò¦³¦ê¦C°ð©Ò¨Ï¥Îªº¬Û¦P IRQ ¦Ó¯S§O ³]pªº¡D Linux ¹ï¥d¤Wªº¨C¤@Ó°ð¨Ï¥Î¤£¦Pªº¿é¥X¤J¦ì§}¥H«K±q¥¦ÌÀò¨ú¸ê®Æ¡D 8.1 ¿ï¾Ü¦ê¦C³]³Æªº¤¤Â_¦ì§} §Aªº PC ¤@¯ë·|±N ttyS0 ¥H¤Î ttyS2 ³]¦b IRQ 4 ¦Ó±N ttyS1 ¥H¤Î ttyS3 ³]¦b IRQ 3¡D ¸g¥ÑÀ˵ø /proc/interrupts §A¥i¥Hª¾¹D¨º¨Ç IRQs ¥¿³Q¨Ï¥Î¡D n¨Ï¥Î ¨âÓ¥H¤Wªº¦ê¦C³]³Æªº¸Ü¡A§A¥²¶·«·s«ü©w¤@Ó¤¤Â_¡D ¤@Ó¦n¿ï¾Ü¬O±q§Aªº¨Ã¦C °ð¨ºÃä«·s«ü©w¤@Ó¤¤Â_¡D§Aªº PC ¤@¯ë·|³]©w IRQ5 ©Î¬O IRQ7 ·í§Aªº¨Ã¦C°ð ¡A¦ý¬O«Ü¤Ö¤H·|¨Ï¥Î¨âӨæC°ð¡D §A¥i¥H«·s«ü©w¨ä¤¤¤@Ó¤¤Â_µ¹¦ê¦C³]³Æ¡A¨Ã ¦Ó¤´µM¯à¶¶§Q¦a¨Ï¥Î¤@ӨæC°ð¡D §A±N·|»Ýn¥Î¨ì setserial µ{¦¡¨Ó°µ³o¥ó¨Æ ¡D¦¹¥~¡A§A¥²¶·½Õ¾ã§AªO¤l¤Wªº¸õ±µ³]©w(Jumpers)¡A¬d¬Ý§A¥D¾÷ªOªº»¡©ú¤å¥ó¡D ¸õ±µ§A·Qnµ¹¨CÓ°ð¨Ï¥Îªº IRQ¡D §A±N±on°µ¨Ç³]©wÅý¨CÓ¦ê¦C³]³Æ³£¦³¤@Ó¡A¨Ã¥B¬O°ß¤@ªº¤@Ó¤¤Â_¡D ³o¸Ì¬O§Ú ¦b /etc/rc.d/rc.local ¸Ì©Ò¥Îªº³]©w - §AÀ³¸Ó¦b±Ò°Ê¨t²Î®Éªº¬YÓ¦a¤è°µ³o¥ó ¨Æ¡D /sbin/setserial /dev/ttyS0 irq 3 # my serial mouse /sbin/setserial /dev/ttyS1 irq 4 # my Wyse dumb terminal /sbin/setserial /dev/ttyS2 irq 5 # my Zoom modem /sbin/setserial /dev/ttyS3 irq 9 # my USR modem ¼Ð·Çªº IRQ «ü©w: IRQ 0 Timer channel 0 IRQ 1 Keyboard IRQ 2 Cascade for controller 2 IRQ 3 Serial port 2 IRQ 4 Serial port 1 IRQ 5 Parallel port 2 IRQ 6 Floppy diskette IRQ 7 Parallel port 1 IRQ 8 Real-time clock IRQ 9 Redirected to IRQ2 IRQ 10 not assigned IRQ 11 not assigned IRQ 12 not assigned IRQ 13 Math coprocessor IRQ 14 Hard disk controller 1 IRQ 15 Hard disk controller 2 ¦b¿ï¾Ü¤¤Â_®É¯uªº¨S¦³¤°»ò¥¿½Tªº¡D¥un½T©w¥¦¤£¬O¤w¸g³Q¥D¾÷ªO¡A©Î¬O¨ä¥¦¬É ±¥d©Ò¨Ï¥Î¡D 2, 3, 4, 5 ©Î¬O 7 ¬O¦n¿ï¾Ü¡D``not assigned''ªº·N«ä¬O¥Ø«e¨Ã ¨S¦³¤°»òªF¦è¦b¼Ð·Ç±¡ªp¤U·|©T©w¨Ï¥Î³o¨ÇµwÅ餤Â_n¨D¡D ¤]nª`·N¨ì IRQ 2 ¸ò IRQ 9 ¬O¤@¼Ëªº¡D§A¥i¥HºÙ¥¦¬° 2 ©Î 9¡A¦ê¦CÅX°Êµ{¦¡«D±`¤F¸Ñ³o¤@ÂI¡D ¦p ªG§A¦³¤@¶ô 16-bit ¶×¬y±Æ³s±µÀYªº¦ê¦C¥d¡A§A¤]¥i¥H¨Ï¥Î IRQ 10, 11, 12 ©Î 15¡D ¥un½T©w§A¨Ï¥Îªº¨Ã«D¬O IRQ 0, 1, 6, 8, 13 ©Î¬O 14! ¥¦Ì¬O¥Ñ§Aªº¥D¾÷ªO©Ò ¨Ï¥Îªº¡D ¦pªG§A®³¨«¦oªº IRQs ªº¸Ü¡A·|¨Ï±o¦o«Ü¤£°ª¿³¡D §¹¦¨¤§«á¡A¦A¦¸ÀË ¬d /proc/interrupts ¥H½T©w¨S¦³½Ä¬ðµo¥Í¡D 8.2 ³]©w¦ê¦C³]³Æªº¦ì§} ±µ¤U¨Ó¡A§A¥²¶·³]°ð¦ì§}¡D¬d¬Ý§A¥D¾÷ªO¤â¥Uªº¸õ±µ³]©w¡D´N¹³¤¤Â_¡A¨CÓ¦ì§} ¥u¯à¦³¤@Ó¦ê¦C³]³Æ¡D §Aªº°ð³q±`·|°t¸m¦¨¹³¤U±³o¼Ë¡G ttyS0 address 0x3f8 ttyS1 address 0x2f8 ttyS2 address 0x3e8 ttyS3 address 0x2e8 ¿ï¾Ü§A·Qnµ¹¨C¤@Ó¦ê¦C³]³Æ¨Ï¥Îªº¦ì§}¨Ã¥B¨Ì¦¹¨Ó³]©w¸õ±µ¡D §Ú±N§Úªº¼Æ¾Ú¾÷ ³]¦b ttyS3 ¡A§Úªº·Æ¹«¦b ttyS0¡A¦Ó§Úªº²×ºÝ¾÷¦b ttyS2¡D ·í§A«·s±Ò°Ê®É¡A Linux À³¸Ó·|¦b§A©Ò³]©wªº¦ì§}¬Ý¨ì§Aªº¦ê¦C°ð¡D Linux ©Ò ¬Ý¨ìªº IRQ ¥i¯à¤£·|¸ò§A¸õ±µ³]©wªº¬Û²Å¡D ¤£¥²¾á¤ß³o¤@ÂI¡D Linux ¦b¥¦±Ò°Ê ªº®ÉԨèS¦³°µ¥ô¦óªº IRQ °»´ú¡A ¦]¬° IRQ °»´ú¬O¦MÀI¨Ã¥B¦³¥i¯à³Q´ÛÄFªº¡D ¨Ï¥Î setserial ¨Ó§i¶D Linux ¨ºÓ°ð¨Ï¥Î¨ºÓ IRQ¡D §A¤]¥i¥HÀˬd /proc/ioports ¨Ó¬Ý¬Ý¦b Linux ±Ò°Ê«á¨º¨Ç¿é¥X¿é¤J°ð¦ì§}³Q¨Ï¥Î¡D 9. §Ú«ç¼Ë±N§Úªº¦ê¦C°ð³]¨ì¸û°ªªº³t«×? §Úªº¼Æ¾Ú¾÷¤SÀ³¸Ó¨Ï¥Î¤°»ò¼Ëªº³t«×? ³o¤@¸`À³¸Ó¥i¥HÀ°§A§ä¥X·í§A³z¹L³q°Tµ{¦¡¡A©Î¬O getty µ{¦¡¨Ï¥Î§Aªº¼Æ¾Ú¾÷®É À³¸Ó¨Ï¥Î¤°»ò³t«×¡D * ¦pªG§A©Ò¦³ªº¬O¤ñ 9600 bps (V.32) ¼Æ¾Ú¾÷ÁÙnºCªºªF¦è¡A±N§Aªº³t«×³]¨ì §Aªº¼Æ¾Ú¾÷©Ò¯à¤ä´©ªº³Ì°ª³t«×¡D ¨Ò¦p 300 (V.21/Bell 103), 1200 (V.22/Bell 212A), ©Î 2400 bps (V.22bis)¡D * ¦pªG§A¦³ 9600 bps (V.32) ªº¼Æ¾Ú¾÷¡A¨Ã¥B¤ä´© V.42bis ¸ê®ÆÀ£ÁY¡A¨Ï¥Î 38400 ¨Ó·í§@§Aªº³t«×¡D V.42bis À£ÁY¨ã¦³ 4:1 ªº²z½×È¡A¤]´N¬O``4 * 9600 = 38400''¡D * ¦pªG§A¦³ 14400 bps (V.32bis) ªº¼Æ¾Ú¾÷¡A¨Ã¥B¤ä´© V.42bis ¸ê®ÆÀ£ÁY¥\ ¯àªº¸Ü¡A¨Ï¥Î setserial µ{¦¡¡A¥[¤W spd_hi ºX¼Ð±N§Aªº¦ê¦C°ð°t¸m¦¨¨Ï¥Î 57600 bps (4 * 14400 = 57600) ªº³t«×¡D ¦pªG§A¦³ 28800 ©Î 33600 bps (V.FC ©Î¬O V.34) ªº¼Æ¾Ú¾÷«h¨Ï¥Î spd_vhi ºX¼Ð (4 * 28800 = 115200)¡D µM«á¡A¦b§Aªº³q°Tµ{¦¡¡A©Î¬O /etc/inittab ¸Ì¨Ï¥Î 38400 ·í§@³t«×³]©w¡D ³o¬O²{¦b§A¯à³]ªº³Ì°ª³t«×¡Dn½T©w§A¦³ 16550A ³q¥Î«D¦P¨B±µ¦¬Âà´« ¾¹(UART)¡D ¦pªG§Aªº libc ª©¥»¦Ü¤Ö¬O 5.x¡A¨º»ò·|¦³¥s°µ 57600 ¤Î 115200 ªº³t«×¡D libc ©ñ¦b /lib¡A©Ò¥H¦b¨º¸Ì¬Ý¤@¤U§A¥Îªºª©¥»¬O¤°»ò¡D ¦pªG§AªºÀ³¥Îµ{¦¡ ¤w¸g½sĶ¥H¨ú¥Î¦¹ÀuÂI¡A§A¥i¥Hª½±µ¨Ï¥Î¥¦Ì(¤£¥²¥Î setserial)¡A ³\¦hªº ®M¥ó³£¤w¸g¦³¤F¡A¦]¦¹¦pªG§A¦³³Ìªñª©¥»ªº Linux ®M¥ó¡A³Ì¦nªº¤èªk´N¬O¹Á ¸Õ¨Ï¥Î³o¨Ç§ó°ªªº³t«×¡D ¥ý¦b©R¥O¦C¤U¥Î setserial «ü¥O´ú¸Õ¡AµM«á¦b§A½T©w¥¦Ì¥i¥H¹B§@«á¡A±N§A©Ò§@ ªº×§ï©ñ¶i /etc/rc.d/rc.serial ©Î /etc/rc.d/rc.local ¥H«K¦b¨t²Î±Ò°Ê°õ¦æ ¥¦Ì¡D ¦b§Úªº /etc/rc.d/rc.local ¸Ì¡A§Ú¬O³o¼Ë³]©w§Úªº ttyS3 ¨ì 115200 bps ªº: /sbin/setserial /dev/ttyS3 spd_vhi ½T©w§A¥H¦Xªkªº¸ô®|¨Ï¥Î setserial¡A¥H¤Î¦Xªkªº¸Ë¸m¦WºÙ¡D §A¥i¥H¤UªkÀˬd¤@ Ó¦ê¦C°ðªº³]©w: setserial -a /dev/ttyS3 10. ³q°Tµ{¦¡¤Î¤u¨ã ³o¸Ì¦³¤@Ó³q°Tµ{¦¡ªº¦Cªí¡A¦pªG§A©Ò¨Ï¥Îªºµo¦æ®M¥ó¸ÌÀY¨Ã¨S¦³ªº¸Ü¡A³o¨Ç³£ ¥i¥H¦b¤@¯ëªº FTP ¯¸§ä¨ì¡D * ecu - ¤@®M³q°Tµ{¦¡ * [62]C-Kermit - ¥iÄ⪺¡A¥iµ{§Ç¤Æªº¦ê¦C¤Î TCP/IP ³q°Tµ{¦¡¡A¥]§t¶ÇÀɤΠ¦r§¹Âà´«¥\¯à * minicom - Ãþ¦ü telix ªº³q°Tµ{¦¡ * procomm - ¥]§t zmodem¡AÃþ¦ü procomm ªº³q°Tµ{¦¡ * seyon - ¥H X ¬°°ò¦Àô¹Òªº³q°Tµ{¦¡ * xc - xcomm ³q°T®M¥ó * ¨ä¥¦¦³¥Îªºµ{¦¡¬O term ¤Î SLiRP¡D¥¦Ì´£¨Ñ¨Ï¥Î shell ±b¸¹ªº TCP/IP ¥\ ¯à¡D * screen ¬O¥t¤@Ó¦h°Ï¬q§@·~(multi-session)ªºµ{¦¡¡D³oÓµ{¦¡´N¹³ªº°Ê§@ ´N¹³µêÀÀ±±¨î¥x¡D * callback ³o¤äµ{¦¡·|¨Ï§Aªº¼Æ¾Ú¾÷¦^¼·µ¹§A¡D * mgetty+fax ³B²z¶Ç¯u¨Æ°È¡A¨Ã¥B´£¨Ñ¤@Ó¤£¦Pªº getty¡D * ZyXEL ¬O ZyXEL U-1496 ¼Æ¾Ú¾÷ªº±±¨îµ{¦¡¡D¥¦³B²z±µ¨ü¼·±µ¡A¼·¸¹¡A¦^¼· «O±K¡A¶Ç¯u¡A¥H¤Î»yµ«H½c¥\¯à¡D * SLIP ¤Î PPP ªº³nÅé¥i¦b [63]ftp://sunsite.unc.edu/pub/Linux/system/network/serial §ä¨ì¡D * ¨ä¥¦ªF¦è¥i¥H¦b [64]ftp://sunsite.unc.edu/pub/Linux/system/serial ¥H ¤Î [65]ftp://sunsite.unc.edu/pub/Linux/apps/serialcomm ©Î³\¦hªº¬M®g ¸`ÂI¤§¤@§ä¨ì¡D³o¨Ç¬O«O¯d©Ò¦³¦ê¦Cµ{¦¡ªº¥Ø¿ý¡D 11. ¦ê¦C¨Ï¥Î¯µ³Z ³o¸Ì¦³¤@¨Ç§A¥i¯àµo²{«Ü¦³¥Îªº¦ê¦C¯¦³Z... 11.1 kermit ¥H¤Î zmodem n¦b kermit ¤U¨Ï¥Î zmodem ªº¸Ü¡A±N¤U¦C¤º®e¥[¨ì§Aªº .kermrc ¸Ì¥h: define rz !rz < /dev/ttyS3 > /dev/ttyS3 define sz !sz \%0 > /dev/ttyS3 < /dev/ttyS3 n½T©w¥¿½T¦a©ñ¤J§A¼Æ¾Ú©Ò¦bªº¦ê¦C°ð¡DµM«á¡An¨Ï¥Îªº¸Ü¡A¥un¦b kermit ªº ´£¥Ü²Å¸¹¤UÁä¤J rz ©Î sz <ÀɦW> §Y¥i¡D 11.2 ¦Û°Ê³]©w²×ºÝ¾÷«¬¦¡ n¦b·í§Añ¤Jªº®ÉԦ۰ʳ]©w§Aªº²×ºÝ¾÷§Î¦¡ªº¸Ü¡A§â²×ºÝ¾÷ªº§Î¦¡¥[¨ì /etc/inittab ªº¶µ¥Ø¸Ì¥h¡D ¦pªG§Ú¦³¤@¥x vt100 ²×ºÝ¾÷¦b ttyS1 ¤W ¡A§Ún¹ï getty «ü¥O¥[¤W ``vt100'': S1:456:respawn:/sbin/getty ttyS1 DT9600 vt100 §A¤]¥i¥H¨Ï¥Î tset¡A¥i¥H¦b§Añ¤Jªº®Éԫإ߲׺ݾ÷ªº¯S©Ê¡A¦Ó¥B¤£»Ýn¨Ì¿à¥ô ¦óªº¹w³]È¡D 11.3 ¦b¦ê¦C³s½u¤Uªº±m¦â ls ¦pªG ls ¦]¬°±m¦â¯S©Ê¦ÓÂZ¶Ã¤F§Aªº²×ºÝ¾÷¼ÒÀÀ¡A§â¥¦Ãö±¼¡D ls --color ¥H¤Î ls --colour ³£¨Ï¥Î±m¦â¯S©Ê¡D¦³¨Ç¦w¸Ë¤è¦¡¨Ï±o ls ¹w³]¬°¨Ï¥Î±m¦â¡D Àˬd /etc/profile ¥H¤Î /etc/csh.cshrc ¸Ìªº ls §O¦W¡D ¦pªG§A¤£·Qקï¨t²Î¹w³] Ȫº¸Ü¡A§A¤]¥i¥H³]µ¹ ls §O¦W ls --no-color¡D 11.4 ±q²×ºÝ¾÷©Ò³s±µªº¦Lªí¾÷¶i¦æ¦C¦L ¦³¤@Ó¥s°µ vtprint ªºµ{¦¡¥i¥H°µ±o¨ì¡A¦b [66]ftp://ftp.sdsu.edu/pub/vtprint ¤Î [67]http://www.sdsu.edu/~garrett ¥i¨ú±o¡D ¥t¥~¤@¤ä¥s xprt ªºµ{¦¡¤]¯à°µ¨ì¡D¥¦¥i¦b [68]ftp://sunsite.unc.edu/pub/Linux/system/printing §ä¨ì¡D 11.5 Linux ¯à¤£¯à°÷¦Û°Ê¦a°t¸m¦ê¦C³]³Æ? ¥i¥H¡DnÅý Linux ¦b±Ò°Êªº®ÉԦ۰ʦa°»´ú¨Ã¥B³]©w¦ê¦C³]³Æªº¸Ü¡A§â³o¤@¦æ: /sbin/setserial /dev/ttyS3 auto_irq skip_test autoconfig ¥[¨ì§Aªº /etc/rc.d/rc.local ©Î¬O /etc/rc.d/rc.serial Àɮ׸̱¡D ¹ï¨C¤@ Ó§A§Æ±æ¦Û°Ê°t¸mªº¦ê¦C°ð³£n°µ¡Dn½T©w©Òµ¹ªº¬O¤@Ó¯u¥¿¦s¦b©ó§A¹q¸£¤Wªº ³]³Æ¦WºÙ¡D ¦h°ð¥dªºª`·N¨Æ¶µ ¹ï©ó¥dªº¦ì§}¡A¥H¤Î IRQs ¬d¾\ setserial µ{¦¡ÀHªþªº rc.serial¡D ¥¦¦³«Ü¦h Ãö©ó¦h°ð¥dªº²Ó¸`¡A¥]¬A¿é¥X¤J¦ì§}¥H¤Î³]³Æ¦WºÙ¡D 11.6 ¨Ï¥Î¦ê¦C±±¨î¥x ¦b²Ä¤T¤Q¤»´Áªº Linux Journal ¦b [69]http://www.ssc.com/lj/issue36/index.html ¦³½g¤å³¹¸ÑÄÀ¦p¦ó¨Ï¥Î¦ê¦C±± ¨î¥x(serial console)¡D ¤£©¯ªº¬O¡A±H¹q¤l¶l¥óµ¹§@ªÌ³£³Q°h¦^¡D§Ú§Æ±æ³o½g¤å ³¹·|«Ü§Ö¦a¤Wz URL ªº Linux Journal ºô¯¸¤¤¡D 11.7 §ó°ªªº¦ê¦C¬y¶q ¦pªG¦b¤@³¡¨Ï¥Î (E)IDE ºÏºÐ¾÷ªº¨t²Î¤W§Aµo²{¬y¶q«ÜºC¦Ó¥B¦ê¦C°ð±`·¸º¡¡A§A ¥i¥H¨ú±o hdparm¡D ³o¬O¤@Ó¥i¥Hקï (E)IDE °Ñ¼Æ¡A¥]§tÅý¤@ºÏºÐ IRQ °Ê§@´Á ¶¡¨ä¥¦ IRQs ¤´¥i¤u§@¡D ³o·|§ïµ½¤ÏÀ³³t«×¨ÃÀ°§U®ø°£·¸º¡¡D½T©w¤p¤ß¦aŪ¹L¤F ½u¤W¤â¥U¡A¦]¬°¬Y¨ÇºÏºÐ/±±¨î¥d²Õ¦X¤£³ßÅw¥¦¨Ã¥B¥i¯à·l·´Àɮרt²Î¡D ¤]¥i¥H¬Ý¤@¤U¤@Ó¥s irqtune ªº¤u¨ã¡A¥i¥H§ïÅܤ@Ӹ˸m IRQ ªºÀu¥ý¶¶§Ç¡A¨Ò ¦p§A¼Æ¾Ú¾÷©Ò¦bªº¦ê¦C°ð¡D³o¤]¥i¯à§ïµ½§A¨t²Îªº¦ê¦C¬y¶q¡D irqtune ªº±`¨£°Ý ÃD¸Ñµª(FAQ)¥i¦b [70]http://www.best.com/~cae/irqtune §ä¨ì¡D 12. §ó¶i¤@¨B... ³o¤@¸`¨Ã¤£»Ýn¾\Ū¡A¦ý¬O¥i¯à±aµ¹§A¤@¨Ç¹ï©ó Unix ¥H¤Î¹q¤l³q°T¥@¬É§ó¶i¤@ ¨Bªº¤F¸Ñ¡D 12.1 ¤°»ò¬OÂê©wÀÉ®×(lock files)? Lock files ¥u¬O³æ¯Âªº¤@ÓÀɮץΨӪí¥Ü¬YÓ¯S©wªº³]³Æ¥¿¦b¨Ï¥Î¤¤¡D ¥¦Ì«O ¦s¦b /usr/spool/uucp ©Î¬O /var/lock ¸Ì±¡D Linux ªº lock files ¦W¦r³£¬O LCK..name¡A¨ä¤¤ªº name ¤£¬O³]³Æ¦WºÙ´N¬O¤@Ó UUCP ¸`ÂI¦WºÙ¡D ¦³¨Çµ{§Ç«Ø ¥ß³o¨Ç locks ¥H«KÅý¥¦Ì¦Û¤v¥i¥H¿W¦û¸Ó³]³Æªº¦s¨úÅv¡D ¨Ò¦p¦pªG§A±q§Aªº¼Æ ¾Ú¾÷¼·¸¹¥X¥h¡A±N·|¥X²{¤@Ó lock §i¶D¨ä¥¦µ{§Ç²{¦b¤w¸g¦³¤H¥¿¦b¨Ï¥Î¼Æ¾Ú¾÷ ¡D Lock files ¸Ì±¥Dn¬O¥]§tÂê¦í¸Ó³]³Æªºµ{§Çªº¦æµ{¸¹½X(PID)¡D ¤j³¡¥÷ªº µ{¦¡·|¬d¾\ lock¡AµM«áÀˬd¦æµ{ªí(process table)¤¤Âê©w¸Ó³]³Æªº¦æµ{¨Ó¸ÕµÛ ¨M©w³oÓ lock ¬O§_¤´µM¦³®Ä¡D ¦pªGµo²{³oÓ lock ¬O¦³®Äªº¸Ü¡A³oÓµ{¦¡(À³ ¸Ó)nµ²§ô¡D ¦pªG¤£¬O¡A¬Y¨Çµ{¦¡·|§R°£¹L®Éªº lock¡AµM«á¨Ï¥Î¸Ó³]³Æ¡A¨Ã¦b¦æ µ{°õ¦æ®É«Ø¥ß¥L̦ۤvªº lock¡D ¨ä¥¦ªºµ{¦¡´N¥u¦nµ²§ô¨Ã§i¶D§A¸Ó³]³Æ¥¿¦b¨Ï ¥Î¤¤¡D 12.2 ``baud'' ¹ï ``bps'' ``baud'' ¸ò ``bps'' ¥i¯à¬O¹q¸£/¹q¤l³q°T³oÓ»â°ì¸Ì³Ì±`³Q¿ù¥Îªº³N»y¤§¤@¡D ·í¥¦Ì¨Æ¹ê¤W¨Ã¤£¬Û¦Pªº®ÉÔ¡A«Ü¦h¤H¤´¥æ´À¨Ï¥Î³o¨Ç³N»y¡D Àj²v(baud) Àj²v¬O¨C¬íÄÁ¼Æ¾Ú¾÷(½ÕÅܸѽվ¹¡Amodulator-demodulator)°e¥X¦h¤Ö¦¸ °T¸¹§ïÅܪº«×¶q¡D ¨Ò¦p¡AÀj²v¬° 1200 ªº§t·N¬O«H¸¹¨C¹j 833 ·L ¬í(microsecond)§Y§ïÅܤ@¦¸¡D ´¶¹MªºÀj²v¦³ 50, 75, 110, 300, 600, 1200 ¥H¤Î 2400¡D¤j³¡¥÷ªº°ª³t¼Æ¾Ú¾÷©Ò¨Ï¥ÎªºÀj²v¬° 2400¡D ¦]¬°»yµ ¯Å(voice-grade)¹q¸Ü½u¸ôªºÀW¼e¨î¡A¶W¹L 2400 ªºÀj²v«ÜÃø¹Fªº¨ì¡A ¦Ó¥u¯à¦b«D±`¯Â²bªº¹q¸Ü½u«~½è¤U¤~¯à¹B§@¡D ``baud''¤@µü¦b Emile Baudot ¤§«á¤~¦³¡A¥L¬O«D¦P¨B¹q³ø¦Lªí¾÷(asynchronous telegraph printer)ªºµo©úªÌ¡D ¨C¬í¶Ç¿é¦ì¤¸(bps) ¨C¬í¦ì¤¸¶Ç¿é²v¬O¨C¬íÄÁ¶Ç¿é¦h¤Ö¦ì¤¸ªº«×¶q¡D´¶¹M¨C¬í¦ì¤¸¶Ç¿é²v¦³ 50, 75, 110, 300, 1200, 2400, 4800, 9600, ... 115200¡D ¦b¨Ï¥Î V.42bis À£ÁY(À£ÁY³Ì¤j²v 4:1)ªº¼Æ¾Ú¾÷¤U¡A²z½×¤W¨C¬í¦ì¤¸¶Ç¿é²v¥i¥H °ª¹F 115200¡D ³o¬O³\¦h¤H¦b¿ù¥Î ``baud'' ³oÓ¦r®É©Ò«üªº·N«ä¡D ©Ò¥H¡A¦pªG°ª³t¼Æ¾Ú¾÷¥H 2400 baud ¹B§@¡A¥¦Ì¦p¦ó¯à°÷¶Ç°e 14400 bps? ¼Æ¾Ú ¾÷¹ï¨CÓ baud ½s½X¨Óªí¥Ü¬Y¤@¼Æ¶qªº¦ì¤¸¦Ó¨Ï±o bps ¯à¤j©ó baud¡D ³o¼Ë¤@¨Ó ¡A·í¤GөΧó¦h¦ì¤¸½s½X¦¨¤@Ó baud ªº®ÉÔ¡Abps ´N·|¶W¶V baud¡D ¦pªG§Aªº ¼Æ¾Ú¾÷¬O¥H 14400 bps ³s½uªº¸Ü¡A¥¦±N·|¥H 2400 baud ªº³t«×¨CÓ baud ¶Ç°e ¤»Ó¦ì¤¸¡D ³oÓ²V²c¬O«ç»ò¼Ë¶}©lªº? ¶â¡A¦^¨ì¤µ¤Ñªº§C³t¼Æ¾Ú¾÷ÁÙ¬O¬Q¤Ñªº°ª³t¼Æ¾Ú¾÷¨º ӮɥN¡A¨C¬í¦ì¤¸¶Ç¿é²v¸ò«H¸¹§ïÅܲv¹ê»Ú¤W¬O§¹¥þ¬Ûµ¥ªº¡D ¨CÓ bit ½s½X¦¨ ¤@Ó baud¡D¤HÌ¥æ´À¨Ï¥Î bps ¥H¤Î baud ¬O¦]¬°¥¦Ìªº¼Æ¦r¬Û¦P¡D ¨Ò¦p¤@¥x 300 bps ªº¼Æ¾Ú¾÷¨ä«H¸¹§ïÅܲv¤]¬O 300¡D ·í°ª³t¼Æ¾Ú¾÷´¶¤Î«á¤@¤Á³£§ïÅܤF¡A ¦Ó¥B¨C¬í¦ì¤¸¶Ç¿é²v¶W¹L¤F«H¸¹§ïÅܲv¡D 12.3 ¤°»ò¬O UARTs? ¥¦Ì¦p¦ó¼vÅT®Ä¯à? UARTs (³q¥Î«D¦P¨B±µ¦¬Âà´«¾¹¡AUniversal Asyncronous Receiver Transmitter)¬O§A PC ¦ê¦C¥d¤Wªº´¹¤ù¡D ¥¦Ìªº¥\¥Î¬O§â¸ê®ÆÂন¦ì¤¸¡A±N³o¨Ç ¦ì¤¸°e¤W¦ê¦C½u¸ô¡AµM«á¦b¥t¤@ºÝ«·s«Ø¥ß¸ê®Æ¡D UARTs ¬O¥H¦ì¤¸²Õ¬°³æ¦ì³B²z ¸ê®Æ¡A«Ü¤è«K¦a¤]¬O¬ü°ê¼Ð·Ç¥æ´«½X(ASCII)ªº¦r¤¸¤j¤p¡D °²©w¬O§A¦³¤@¥x³s±µ¨ì§A PC ªº²×ºÝ¾÷¡D·í§AÁä¤J¤@Ó¦r¤¸®É¡A²×ºÝ¾÷§â¥¦¥æµ¹ ¥¦ªºÂà´«¾¹(¤]¬O UART ªº¤@ºØ)¡D ¸ÓÂà´«¾¹¥H«ü©wªº³t²v§â³oӦ줸²Õ°e¨ì¦ê¦C ½u¸ô¤W¡A¨C¦¸¤@Ӧ줸¡D ¦b PC ³o¤@ºÝ¡A±µ¦¬¦ì¤¸ªº UART ®³¨«©Ò¦³ªº¦ì¤¸¡AµM «á«·s²Õ¦¨¦ì¤¸²Õ¨Ã¥B©ñ¨ì½w½Ä°Ï¸Ì¥h¡D ¦³¨âºØ¤£¦Pªº UARTs Ãþ«¬¡D§A¥i¯à¦³Å¥¹L·MÄøªº(dumb)UARTs - 8250 ÁÙ¦³ 16450¡A¥H¤Î¥ý¶i¥ý¥X¦¡ UARTs - 16550A¡D n¤F¸Ñ¥¦Ìªº¤£¦P¡Aº¥ýÅý§Ų́ÓÀË Åç·í UART °e¥X©Î±µ¦¬¤@Ӧ줸²Õ®É©Òµo¥Íªº¨Æ¡D ³o UART ¥»¨¨Ã¤£¯à¹ï¸ê®Æ°µ¤°»ò³B²z¡A¥¦¥u¬O°e¥X¥H¤Î±µ¦¬¥¦¡D ¨C¦¸°e¥X©Î±µ ¦¬¤@Ӧ줸²Õ®É¡ACPU ³£·|±q¦ê¦C³]³Æ±µ¨ì¤@Ó¤¤Â_¡D µM«á CPU ´N§â±µ¦¬¨ìªº ¦ì¤¸²Õ±q UARTs ªº½w½Ä°Ï·h¨ì°O¾ÐÅ骺¬Y³B¡A©Î¬O´£¨Ñ¥t¤@Ӧ줸²Õµ¹ UART ¶Ç °e¡D 8250 ¥H¤Î 16450 UARTs ¥u¦³¤@Ӧ줸²Õªº½w½Ä°Ï¡D³oÓ·N«ä¬O¡A¨C°e¥X©Î ±µ¦¬¤@Ӧ줸²Õ´N·|¤¤Â_ CPU ¤@¦¸¡D ¦b§C³tªº±¡ªp¤U³o¼Ë¨S¦³°ÝÃD¡D¦ý¬O¦b°ª ³tªº¶Ç¿é²v¤U¡ACPU ·|¦£©ó³B²z UART ¦Ó¨S¦³®É¶¡·Ó®Æ¨ä¥¦¤u§@¡D ¦b¬Y¨Ç±¡ªp¤U ¡ACPU ¨S¦³¨¬°÷ªº¾l¸Î¤Î®É³B²z¤¤Â_ªA°È¡A¸Ó¦ì¤¸²Õ±N¦]¸ê®Æ¦p¦¹§Ö³t¦a¶Ç¤J¦Ó ³QÂмg¡D ³o´N¬O 16550A UARTs ¦³¥Îªº¦a¤è¡D³o¨Ç´¹¤ù¨ã¦³ 16 Ӧ줸²Õªº¥ý¶i¥ý¥X¦î¦C ¡D ³oÓ·N«ä¬O¥¦¦b¥²¶·¤¤Â_ CPU ¤§«e¥i¥H±µ¦¬©ÎÂà´«¹F 16 Ӧ줸²Õ¡D ¥¦¤£¶È ¬O¯àµ¥¡A¦Ó¥B CPU ²{¦b¤]¥i¥H¦P®É¶Ç°e¥þ³¡ 16 Ӧ줸²Õªº¸ê®Æ¡D ÁöµM¤¤Â_¬É (threshold)«Ü¤Ö¦³³]¨ì 16 ªº¡A³o¹ï©ó¨ä¥¦¥u¦³¤@Ӧ줸²Õ½w½Ä°Ïªº UARTs ¦Ó¨¥¤´µM¬O¤@Ó«nªºÀuÂI¡D CPU ¦¬¨ì¸û¤Öªº¤¤Â_¡A¦]¦¹¥i¥H¦Û¥Ñ¦a°µ¨ä¥¦¨Æ±¡ ¡D¸ê®Æ¤£·|º|¥¢¡A¨CÓ¤H³£«Ü°ª¿³¡D (¤]¦³ 16550 ³oÓ UART¡A¦ý¬O¥¦¸ò 16450 ¤@¼Ë¦]¬°¥¦¦³°ÝÃD¡D) ¤@¯ë¨Ó»¡¡A 8250 ¥H¤Î 16450 UARTs À³¸Ó¯à°÷³Ó¥ô°ª¹F 38400 bps ªº¤u§@³t²v ¡D ¦b°ª©ó 38400 bps ªº³t²v¤U¡A§A¥i¯à¶}©l¨£¨ì¸ê®Æº|¥¢¡D ¨ä¥¦ªº PC §@·~¨t ²Î(³o¸Ìªº©w¸q«Ü¼eÃP)¡A¹³ DOS ¨Ã«D¬O¦h¤uªº¡A©Ò¥H¥¦Ì¦³¥i¯à¥i¥H¥Î 8250 ©Î 16450s «oÀ³¥Iªº§ó¦n¡D ³o´N¬O¬°¤°»ò¦³¨Ç¤H¨Ã¨S¦³¬Ý¨ì¸ê®Æº|¥¢¡Aª½¨ì¥LÌ§ï ¥Î Linux ¤~µo¥Í¡D µL-UART(Non-UART)¥H¤Î´¼¼z«¬¦h°ð¥d¨Ï¥Î¼Æ¦ì³B²z¾÷(DSP)´¹¤ù¨Ó³B²zÃB¥~ªº½w ½Ä¥H¤Î±±¨î¡A¦p¦¹§ó¯à´î»´ CPU ªºt¾á¡D ¨Ò¦p¡ACyclades Cyclom ¤Î Stallion EasyIO ³o¨Ç¥d¨Ï¥Î Cirrus Logic CD-1400 RISC ´¹¤ù¡AÁÙ¦³³\¦h¥d¨Ï ¥Î 80186 CPU ©Î§ó¯S§Oªº RISC CPU ¨Ó³B²z¦ê¦C¿é¥X¤J¡D ¤ß¸Ìn°O±o¡A³o¨Ç·MÄø«¬ªº UART ¨Ã«D¬OÃaªº¡A¥u¬O¥¦Ì¤£¾A¦X°µ°ª³t¶Ç¿é¡D ·í §A±N²×ºÝ¾÷©Î·Æ¹«³s±µ¨ì³o¨Ç UARTs ®ÉÀ³¸Ó¤£·|¾D¹J§xÃø¡D ¦ý¬O¹ï°ª³t¼Æ¾Ú¾÷ ¦Ó¨¥¡A16550A ¥i¥H»¡¬O¥²¶·ªº¡D §A¥i¥Hªá¦h¤@ÂIÂIªº¿úÁʶR¦³ 16550A UARTs ªº¦ê¦C¥d¡A¥un¸ß°Ý¹q¸£°Ó¸Ó¥d©Ò ¨Ï¥Îªº¬O¤°»ò«¬¸¹ªº UARTs §Y¥i¡D ©ÎªÌ§A·Q¤É¯Å§A²{¦bªº¥d¡A§A¥i¥H¥un²³æ ¦aÁʶR 16550A ´¹¤ù¨Ã¥B¸m´«§A²{¦bªº 16450 UARTs ´¹¤ù¡D ¥¦Ìªº¸}¦ì¬Û ®e(pin-to-pin compatible)¡D¦³¨Ç¥d¦³ UARTs ´¡¼Ñ¨Ó§@³oӥγ~¨Ï¥Î¡D ¦pªG¤£ ¬Oªº¸Ü§A¥i¥H²k±µ¡Dª`·N¡A¦pªG§A¦³¿ú¡A¶R¤@±i·s¥d±N¥i¯à·|¬Ù±¼§A³\¦h³Â·Ð¡A ¥¦Ì¦b $50 ¤¸¬üª÷¥H¤U¡D 13. ¬G»Ù±Æ°£ 13.1 §Ú¤£Â_¦a¦¬¨ì ``line NNN of inittab invalid'' n½T©w§A¹ï§Aªº init ª©¥»¨Ï¥Î¥¿½Tªº¤åªk¡D³o¸Ì©Ò¨S¦³ªº¤@¨Ç init ·|¦b /etc/inittab Àɮ׸̨ϥΤ£¦Pªº¤åªk¡D n½T©w§A¹ï§Aªº getty ª©¥»¨Ï¥Î¥¿½Tªº ¤åªk¡D 13.2 ·í§Ú¸ÕµÛ¼·¸¹®É¡A¥¦»¡ ``/dev/cuaN: Device or resource busy'' ³oÓ°ÝÃD¥i¯àµo¥Í¦b DCD ©Î DTR ¨S¦³³]©w¥¿½Tªº®ÉÔ¡D DCD À³¸Ó¥u¦b¯uªº¦³³s ½u®É(¹³¬O¦³¤H¼·±µ¶i¨Ó)¤~³Q³]©w¡A¦Ó¤£¬O¦b getty «ùÄòºÊ¬Ý¸Ó°ðªº®ÉÔ¡D ÀË ¬d¨Ã½T©w§Aªº¼Æ¾Ú¾÷¥¿½T¦a°t¸m¦¨¥u¦b¯u¥¿³s½u®É¤~³]©w DCD¡D DTR À³¸Ó¦b¥ô¦ó ªF¦è¨Ï¥Î©ÎºÊ¬Ý½u¸ô®É³]©w¡A¹³¬O getty, kermit, ©Î¨ä¥¦³q°Tµ{¦¡¡D ¥t¤@Ó¤Þ°_ ``device busy'' ¿ù»~ªº´¶¹Mì¦]¬O§A³]©w§Aªº¦ê¦C°ð¨Ï¥Î¤@Ó¤w¸g ³Q¬YºØ¨ä¥¦ªF¦è¨Ï¥Îªº¤¤Â_¡D ¦b¨C¤@Ó³]³Æªì©l¤Æªº®É«á¡A¥¦·|n¨D Linux ¤¹ ³\¥¦¨Ï¥Î¥¦ªºµwÅ餤Â_¡D Linux «ùÄò°lÂܨºÓ¤¤Â_³Q«ü©wµ¹½Ö¡A¦Ó¦pªG§Aªº¤¤Â_ ¤w¸g³Q¦û¥Î¡A§Aªº³]³Æ±N¤£¯à¾A·í¦aªì©l¤Æ¡D ¸Ó³]³Æ¯uªº¨Ã¨S¦³¤°»ò¿ìªk§i¶D§A µo¥Íªº³o¥ó¨Æ¡A°£¤F·í§A¹Á¸Õ¥h¨Ï¥Î¥¦ªº®ÉÔ¡A¥¦·|¦^À³ ``device-busy'' ¿ù»~ °T®§¡D Àˬd§A©Ò¦³ªº¥d(¦ê¦C¡A¤A¤Óºô¸ô¡ASCSI ¬É±µ¥µ¥)¡D§ä´MµwÅ餤Â_½Ä¬ð ªº¦a¤è¡D 13.3 §Ú«ùÄò±µ¨ì ``Id SN respawning too fast: disabled for 5 minutes'' ½T©w§Aªº¼Æ¾Ú¾÷¦³¥¿½Tªº°t¸m¡D¬d¬Ý¼È¦s¾¹ E ©M Q¡D ³o¥i¯àµo¥Í¦b§Aªº¼Æ¾Ú¾÷ ¸ò getty ·¾³qªº®ÉÔ¡D ½T©w§A¥¿½T¦a±q /etc/inittab ©I¥s getty¡D ¨Ï¥Î¿ù»~ªº¤åªk©Î³]³Æ¦WºÙ±N·|¤Þ °_ÄY«ªº°ÝÃD¡D ¥H¤UªkÀˬd§Aªº /etc/gettydefs ¤åªk¬O§_¥¿½T: linux# getty -c /etc/gettydefs ³o¤]¥i¯àµo¥Í¦b uugetty ªì¨Ï¤Æ¥¢±Ñ®É¡D°Ñ¾\ [71]getty ©Î uugetty ¤´µMµLªk ¹B§@ ¤@¸`¡D 13.4 ¦ê¦C³]³Æ«ÜºC©Î¬O¦ê¦C³]³Æ¥u¯à³æ¦V¶Ç°e §AªºµwÅ餤Â_¥i¯à¦³½Ä¬ð¡D½T©w¨S¦³µwÅ餤Â_¬O³Q¤À¨Éªº¡D Àˬd§A©Ò¦³ªº¥d(¦ê ¦C¥d, ¤A¤Óºô¸ô¥d, SCSI µ¥µ¥)½T©w§A¦ê¦C³]³Æ°tªº¸õ±µ³]©w¥H¤Î setserial °Ñ ¼Æ¬O¥¿½Tªº¡D ¦P®ÉÀˬd /proc/ioports ¤Î /proc/interrups ¥H½T©w¬O§_¦³½Ä¬ð µo¥Í¡D 13.5 §Úªº¼Æ¾Ú¾÷¦b¬Y¤HÂ_½u«áÅõºÈ©Î¬O uugetty ¨Ã¨S¦³«·s°õ¦æ ³o¦b DTR °T¸¹±¼¤U¦Ó§Aªº¼Æ¾Ú¾÷¨S¦³«¸m®É·|µo¥Í¡D ³oÓ°ÝÃD¦b§Ú¨¤Wµo¥Íªº ®Éԧڬݨì§Úªº RD ¸ò SD LEDs ºÆ¨g¦a°{Ã{¡D§A»ÝnÅý§Aªº¼Æ¾Ú¾÷«¸m¡D ¤j³¡ ¥÷ªº Hayes ¬Û®e¼Æ¾Ú¾÷¨Ï¥Î &D3 ¨Ó°µ³o¥ó¨Æ¡A¦ý¬O¦b§Úªº USR Courier ¤W¡A§Ú ±on³] &D2 ¥H¤Î S13=1¡D¬d¾\§Aªº¼Æ¾Ú¾÷¤â¥U¡D 13.6 §Ú±N§Úªº²×ºÝ¾÷³s¨ì§Úªº PC ¤W¡A¦ý¬O¦b§Ú¿é¤Jñ¤J¦WºÙ¤§«á¡A¥¦´NÂê¦í¤£°Ê * ¦pªG§A¨Ï¥Î getty: ¦b§Aªº /etc/gettydefs ¶µ¥Ø¸Ì¥i¯à¨S¦³³] CLOCAL µ¹ ²×ºÝ¾÷¡A¦Ó¥B¥i¯à§A¥Îªº¨Ã¤£¬O§¹¾ãªº null modem ³s±µ½u¡D §A»Ýn CLOCAL ¨Ó§i¶D Linux ©¿²¤¼Æ¾Ú¾÷±±¨î«H¸¹¡D¥¦¬Ý°_¨Ó¹³³o¸Ì³o¼Ë: # 38400 bps Dumb Terminal entry DT38400# B38400 CS8 CLOCAL # B38400 SANE -ISTRIP CLOCAL #@S @L login: #DT38400 # 19200 bps Dumb Terminal entry DT19200# B19200 CS8 CLOCAL # B19200 SANE -ISTRIP CLOCAL #@S @L login: #DT19200 # 9600 bps Dumb Terminal entry DT9600# B9600 CS8 CLOCAL # B9600 SANE -ISTRIP CLOCAL #@S @L login: #DT9600 ±µ¤U¨Ó¡A¥Î kill ¬å±¼¸Ó getty ¦æµ{³o¼Ë·s¦æµ{·|¥H·sªº¶µ¥Ø²£¥Í¡D * ¦pªG§A¨Ï¥Î agetty: ¥[¤W -L ºX¼Ð¨ì§Aªº /etc/initab ¤¤ªº agetty ¨º¦æ ¡D ³o·|¨Ï±o¥¦©¿²¤¼Æ¾Ú¾÷±±¨î«H¸¹¡DµM«áÁä¤J init q ¥H«·s°õ¦æ init¡D ³oÓ¶µ¥Ø¬Ý°_¨Ó¹³³o¼Ë: s1:345:respawn:/sbin/agetty -L 9600 ttyS1 vt100 13.7 ¦b°ª³t¤U¡A§Úªº¼Æ¾Ú¾÷º|¥¢¸ê®Æ ¦pªG§A¹Á¸Õ¦b¤j©ó 38400 bps ªº³t²v¤U¨Ï¥Î§Aªº¼Æ¾Ú¾÷¡A¦Ó§A¨Ã¨S¦³ 16550A UARTs ªº¸Ü¡A§AÀ³¸Ón±N¥¦Ì¤É¯Å¡D ¦³Ãö UARTs ªº»¡©ú°Ñ¾\ [72]¤°»ò¬O UARTs? ¤@¸`¡D 13.8 ¦b¨t²Î±Ò°Ê®É¡ALinux ¨S¦³¨Ì·Ó§Úªº°t¸m¦^³ø¦ê¦C³]³Æ¡D ³o¬O¨Æ¹ê¡DLinux ¦b¨t²Î±Ò°Ê®É¨Ã¨S¦³°µ¥ô¦óªº IRQ °»´ú¡A¥¦¥u°µ¦ê¦C³]³Æ°»´ú ¡D ©Ò¥H¡A¤£n²z·|¥¦©ÒÅã¥Ü¦³ÃöµwÅ餤Â_ªº³¡¥÷¡A¦]¬°¥¦¥u¬O°²©w¨Ï¥Î¼Ð·Çªºµw Å餤Â_¡D ³o¬O¦]¬°µwÅ餤Â_°»´ú¤£¥i¾a¡A¦Ó¥B¥i¯à³Q¿fÄF¦Ó³o¼Ë°µªº¡D ©Ò¥H§Y¨Ï§Úªº ttyS2 ³]¦b IRQ5¡A§Ú¤´µM¬Ý¨ì Jan 23 22:25:28 misfits vmunix: tty02 at 0x03e8 (irq = 4) is a 16550A ¦b Linux ±Ò°Ê®É¡A§A¥²¶·¨Ï¥Î setserial ¨Ó§i¶D Linux §A©Ò¨Ï¥ÎªºµwÅ餤Â_¡D Linux ±Ò°Ê«á¡A§A¥i¥H¬d¬Ý /proc/interrupts ÀÉ¥H¤F¸Ñ¯u¥¿³Q°t¸mªº IRQ ¬O¤° »ò¡D 13.9 ·í§Ú¨Ï¥Î§Úªº¼Æ¾Ú¾÷¥s¥Î Linux ¾÷¾¹®É rz ¥H¤Î/©Î¬O sz ¤£°Ê ¦pªG Linux ¦b§A¹Á¸Õ¶Ç°eÀɮ׮ɷ|´M§ä /dev/modem ªº¸Ü¡A¬d¬Ý /etc/profile ¥H¤Î /etc/csh.cshrc¡D ¬Y¨Çµo¦æ®M¥ó·|¦b³o¨Ç¦a¤è©w¸q¤@¨Ç§O¦W¡A³ÌµÛ¦Wªº¬O Slackware¡D ³o¨Ç§O¦WÂZ¶Ã¤F zmodem µ{¦¡¡D§â¥¦Ì®³±¼©Î¬O§ó¥¿¥¦Ì¡D 13.10 §Úªº¿Ã¹õ¦L¥X¬Ý°_¨Ó«Ü¦nª±ªº¦r¤¸ ³o¦b·í§A§â¤G¶i¦ì¸ê®Æ°e©¹¿Ã¹õªº®ÉÔ·|µo¥Í¦bµêÀÀ±±¨î¥x¤W¡A©ÎªÌ¦³®ÉÔ·|µo ¥Í¦b¦ê¦C³s½u¤W¡D ×´_³oÓ°ÝÃDªº¤èªk¬O¿é¤J echo ^v^[c¡D¦]¬°±±¨î¦r¤¸¤§¬G ¡A¥¦¬O: linux% echo <ctrl>v<esc>c 13.11 getty ©Î uugetty ¤´µMµLªk¹B§@ getty_ps ¤W¦³Ó DEBUG ¿ï¶µ¡D½s¿è§Aªº /etc/conf.{uu}getty.ttySN °t¸mÀɨà ¥[¤W DEBUG=NNN¡D ¨ä¤¤ NNN ¬O¤U¦Cªº¼Æ¦r²Õ¦X¤§¤@¡A®Ú¾Ú§A·Qn°»´ú¤°»ò¿ù»~ ¦Ó©w: D_OPT 001 option settings D_DEF 002 defaults file processing D_UTMP 004 utmp/wtmp processing D_INIT 010 line initialization (INIT) D_GTAB 020 gettytab file processing D_RUN 040 other runtime diagnostics D_RB 100 ringback debugging D_LOCK 200 uugetty lockfile processing D_SCH 400 schedule processing D_ALL 777 everything ³]©w DEBUG=010 ¬OÓ¶}©lªº¦n¦a¤è¡D ¦pªG§A¥¿¦b°õ¦æ syslogd ªº¸Ü¡A°»¿ù¸ê°T±N·|¥X²{¦b§Aªº°O¿ýÀɸ̡D ¦pªG§A¨S ¦³°õ¦æ syslogd ¨º»ò getty ªº¸ê°T±N·|¥X²{¦b /tmp/getty:ttySN ¸Ì¦Ó uugetty ªº¸ê°T«h·|¥X²{¦b /tmp/uugetty:ttySN ¸Ì¡A¦Ó¥B¥¦Ì¤]·|³Q©ñ¨ì /var/adm/getty.log ¸Ì¥h¡D ¬d¬Ý°»¿ù¸ê°T¬Ý¬Ýµo¥Í¤F¤°»ò¡D³Ì¥i¯àªº¬O¡A§A±N ±on½Õ¾ã¤@¨Ç§A°t¸mÀɸ̪º°Ñ¼Æ¡A¨Ã¥B«·s°t¸m§Aªº¼Æ¾Ú¾÷¡D §AÀ³¸Ó¤]¥h¸Õ¸Õ mgetty¡D¦³¨Ç¤H¦b¨Ï¥Î¥¦®É§ó¬°©¯¹B¡D 14. ¨ä¥¦ªº¸ê°T¨Ó·½ * ¤U¦C«ü¥Oªº½u¤W¤â¥U(man pages): agetty(8), getty(1m), gettydefs(5), init(1), login(1), mgetty(8), setserial(8) * §Aªº¼Æ¾Ú¾÷¤â¥U * NET-3 HOWTO: ©Ò¦³Ãö©óºô¸ôªºªF¦è¡A¥]¬A¤F SLIP, CSLIP, ¥H¤Î PPP * [73]PPP HOWTO: ¦³§U©ó¨Ï¥Î PPP * Printing HOWTO: ¦p¦ó³]©w¦ê¦C¦Lªí¾÷ * Term HOWTO: ©Ò¦³§A·Qª¾¹DÃö©ó term µ{¦¡ªº¨Æ±¡ * UPS HOWTO: ³]©w³s¤W§Aªº¦ê¦C°ðªº UPS * UUCP HOWTO: «Ø¥ß UUCP ªº¸ê°T * Usenet ·s»D¸s²Õ: comp.os.linux.answers Ãö©ó Linux ªº FAQs, How-To's, READMEs µ¥µ¥¡D comp.os.linux.hardware Linux §@·~¨t²ÎªºµwÅé¬Û®e©Ê¡D comp.os.linux.networking Linux ªººô¸ô¤Î³q°T¡D comp.os.linux.setup Linux ªº¦w¸Ë¤Î¨t²ÎºÞ²z¡D * Linux ¦ê¦C¹q¤l¶l¥ó¦Cªí(mailing list)¡Dn¥[¤Jªº¸Ü¡A±H¹q¤l¶l¥ó¨ì [74]majordomo@vger.rutgers.edu¡A¤å³¹¤º®e¼g ``subscribe linux-serial''¡D ¦pªG§A¦b¤º®e¤W¼g ``help''¡A§A·|±o¨ì¤@¥÷»²§U»¡©ú¡D ³oÓ¦øªA¾¹ÁÙ´£¨Ñ³\¦h¨ä¥¦ªº Linux ¦Cªí¡D°e¥X ``lists'' «ü¥O¥i¥H±o¨ì ©Ò¦³¹q¤l¶l¥ó¦Cªíªº¦Cªí¡D * °Q½×¦ê¦C³q°T¤Î¦h°ð¦ê¦C¥dªº¥Õ¥Ö®Ñ¥i¦Û Cyclades ªº [75]http://www.cyclades.com ¨ú±o¡D * Modem FAQs: [76]Navas 28800 Modem FAQ [77]Curt's High Speed Modem Page * ¦ê¦Cµ{¦¡¼g§@: [78]Advanced Programming in the UNIX Environment, by W. Richard Stevens (ISBN 0-201-56317-7; Addison-Wesley) [79]POSIX Programmer's Guide, by Donald Lewine (ISBN 0-937175-73-0; O'Reilly) 15. »ÊÁ ¿W¥ß¼¶¼g³o¥÷ HOWTO ¬O¤£¥i¯àªº¨Æ¡D ÁöµM³o¥÷ HOWTO ªº¤º®e¤j³¡¥÷³£¬O§Ú¼gªº ¡A§Ú¸g±`«¼g³o¨Ç·PÁ¨Ӻû«ù³\¦h¦b¼g§@¤è¦¡¥H¤Î¤º®e¤W¦³°^Ämªº¤H¡D ·PÁ¨CÓ ´¿¸g°^Äm¸gÅç©Î«Øijªº¤H¡A³o¨Ç¤Hªº¦Cªí¤w¸gªø±oµLªk¦C¥X(¶W¹L¤@¦Ê¤H)¡D ¯S§O ·PÁ Ted T'so ¹ï©ó¦³Ãö¦ê¦CÅX°Êµ{¦¡°ÝÃDªº¦^µª¡AÁÙ¦³t³dºûÅ@ getty_ps ªº Kris Gleason¡A¥H¤Ît³dºûÅ@ mgetty ªº Gert Döring¡D SERIAL HOWTO µ²§ô References 1. mailto:greg.hankins@cc.gatech.edu 2. http://ultima.ncnu.edu.tw/~asdchen/ 3. http://www.phys.ntu.edu.tw/~cwhuang/pub/ 4. http://sunsite.unc.edu/LDP/COPYRIGHT.html 5. http://sunsite.unc.edu/LDP/COPYRIGHT.html 6. ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO/Serial-HOWTO 7. http://sunsite.unc.edu/LDP/HOWTO/Serial-HOWTO.html 8. news:comp.os.linux.answers 9. mailto:greg.hankins@cc.gatech.edu 10. http://www.cc.gatech.edu/staff/h/Greg.Hankins/ 11. http://www.redhat.com/linux-info/pnp 12. http://www.sealevel.com/ 13. mailto:info@comtrol.com 14. http://www.comtrol.com/ 15. ftp://tsx-11.mit.edu/pub/linux/packages/comtrol 16. mailto:mhw@wittsend.atl.ga.us 17. mailto:sales@cyclades.com 18. http://www.cyclades.com/ 19. ftp://ftp.cyclades.com/pub/cyclades 20. mailto:pccom8@signum.se 21. ftp://ftp.signum.se/pub/pccom8 22. mailto:sales@dgii.com 23. http://www.dgii.com/ 24. ftp://ftp.dgii.com/drivers/linux 25. mailto:si@wimpol.demon.co.uk 26. mailto:fray@krypton.mankato.msus.edu 27. mailto:sales@equinox.com 28. http://www.equinox.com/ 29. ftp://ftp.equinox.com/library/sst 30. mailto:spot@gtek.com 31. http://www.gtek.com/ 32. ftp://ftp.gtek.com/pub 33. mailto:arobinso@nyx.net 34. http://www.nyx.net/~arobinso 35. http://www.nyx.net/~arobinso 36. mailto:info@maxpeed.com 37. http://www.maxpeed.com/ 38. ftp://maxpeed.com/pub/ss 39. mailto:info@moxa.com.tw 40. http://www.moxa.com.tw/ 41. ftp://ftp.moxa.com.tw/drivers/c218-320/linux 42. mailto:sales@sdlcomm.com 43. http://www.sdlcomm.com/ 44. ftp://ftp.sdlcomm.com/pub/drivers 45. mailto:simonallen@cix.compulink.co.uk 46. ftp://sunsite.unc.edu/pub/Linux/kernel/patches/serial 47. mailto:sales@stallion.com 48. http://www.stallion.com/ 49. ftp://ftp.stallion.com/drivers/ata5/Linux 50. http://www.ssc.com/lj/issue14 51. file://localhost/tmp/zh-sgmltools.9643/Serial-HOWTO.txt.html#irqaddr 52. http://www.leo.org/~doering/mgetty/ 53. file://localhost/tmp/zh-sgmltools.9643/Serial-HOWTO.txt.html#irqaddr 54. http://www.columbia.edu/kermit/ 55. file://localhost/tmp/zh-sgmltools.9643/Serial-HOWTO.txt.html#comms 56. file://localhost/tmp/zh-sgmltools.9643/Serial-HOWTO.txt.html#spdhi 57. file://localhost/tmp/zh-sgmltools.9643/Serial-HOWTO.txt.html#dialout 58. ftp://ftp.cc.gatech.edu/pub/people/gregh/modem-configs 59. ftp://sunsite.unc.edu/pub/Linux/system/serial 60. file://localhost/tmp/zh-sgmltools.9643/Serial-HOWTO.txt.html#dev 61. http://www.columbia.edu/kermit/ 62. http://www.columbia.edu/kermit/ 63. ftp://sunsite.unc.edu/pub/Linux/system/network/serial 64. ftp://sunsite.unc.edu/pub/Linux/system/serial 65. ftp://sunsite.unc.edu/pub/Linux/apps/serialcomm 66. ftp://ftp.sdsu.edu/pub/vtprint 67. http://www.sdsu.edu/~garrett 68. ftp://sunsite.unc.edu/pub/Linux/system/printing 69. http://www.ssc.com/lj/issue36/index.html 70. http://www.best.com/~cae/irqtune 71. file://localhost/tmp/zh-sgmltools.9643/Serial-HOWTO.txt.html#nowork 72. file://localhost/tmp/zh-sgmltools.9643/Serial-HOWTO.txt.html#uart 73. file://localhost/tmp/zh-sgmltools.9643/PPP-HOWTO.html 74. mailto:majordomo@vger.rutgers.edu 75. http://www.cyclades.com/ 76. http://web.aimnet.com/~jnavas/modem/faq.html 77. http://www.teleport.com/~curt/modems.html 78. http://heg-school.aw.com/cseng/authors/stevens/advanced/advanced.nclk 79. http://www.ora.com/catalog/posix/