  The Linux Serial HOWTO
  David S.Lawyer   dave@lafn.org original by Greg Hankins
  v2.05, 1 January 2000
  The Linux Japanese FAQ Project
  v2.05j, 21 January 2000

  ́̕AVA|[g̋@\̂AModem-HOWTO, PPP-HOWTO,
  Serial-Programming-HOWTO, Text-Terminal-HOWTO ňĂȂ͈͂
  ܂B}`|[gVA|[gJ[hɊւЉ܂B
  ́̕AVA|[ĝ̂ɊւZpɂĂL HOWTO
  ڂĂ̂ŁAVA|[g̖肪N̉
  𗧂͂łBfAPPP (dbŃC^[lbgɃANZX
  ߂Ɏg܂)AeLXg[Ăꍇɂ́AɑΉ
  HOWTO ɂB
  ______________________________________________________________________

  ڎ

  1. ͂߂
     1.1 쌠AƐӎANWbg
        1.1.1 쌠
        1.1.2 Ɛӎ
        1.1.3 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̃VA{[h
     5.4 _}`|[gVA{[h (8250/16450/16550A UART 𓋍)
     5.5 CeWFg}`|[gVA{[h

  6. VA|[g̐ݒ
     6.1 PCI oX͂܂T|[gĂ܂
     6.2 ݒ̊Tv
     6.3 ӂꂽԈႢŋN჌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  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 Link ttySN to /dev/modem ?
     7.3 }`|[g{[hɊւ钍
     7.4 /dev fBNgɂfoCX̍쐬@

  8. mĂƂ悢֗ȃvO
     8.1 VA|[g̊Ď/ffp̃vO
     8.2 荞݂̗Dx̕ύX
     8.3 setserial Ƃ͉?
        8.3.1 ͂߂
        8.3.2 T
        8.3.3 Linux ̓VAfoCXIɐݒł܂?
        8.3.4 N̐ݒ
        8.3.5 /etc/serial.conf pVݒ@
        8.3.6 ȑO̐ݒ@: XNvg̕ҏW
        8.3.7 IRQ
     8.4 stty
        8.4.1 ͂߂
        8.4.2 uʂ́v[ɑ΂Ă stty ̎gp
        8.4.3 [ 2 ̃C^tF[X
        8.4.4 ǂ stty R}hu?
     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. ʐMvOƃ[eBeB
     10.1 \tgEFÄꗗ
     10.2 kermit  zmodem

  11. VAɊւ邿ƂeNjbNȂ
     11.1 ChCo
     11.2 וiƂĒmĂn[hEFA
        11.2.1 ̃rfI{[hŋN I/O AhX̏Փ˂@
        11.2.2 AMD Elan SC400 CPU (PC-on-a-chip) ł̖
     11.3 bNt@CƂ͉ł?

  12. guV[eBO
     12.1 VA̓dCIȐffs
        12.1.1 pRlN^̏
        12.1.2 d̑
        12.1.3 d𖡂Ă݂
     12.2 VA|[g̊ĎƐff
     12.3 ȉ̐߂ Serial-HOWTO ɂ Modem-HOWTOs ɂ܂:
     12.4 Iɂ̓VA|[ĝɁAo܂
     12.5 ̏Ȃx: eLXgxĂʂɕ\܂
     12.6 Ȃx:  2A3 {͑͂Ȃ̂ł
     12.7 VXeN̉ʂŁAVA|[g IRQ ԈĂƕ\܂
     12.8 "Cannot open /dev/ttyS?: Permission denied" ƂG[o܂
     12.9 ttyS? ɂ "Operation not supported by device" ƂG[o
     12.10 "Cannot create lockfile. Sorry" (G[bZ[W)
     12.11 "Device /dev/ttyS? is locked." (foCX /dev/ttyS? bNĂ܂)
     12.12 "/dev/ttyS?: Device or resource busy"
     12.13 guΏ̂߂̃c[

  13. 荞݂̖Ɋւڂ
     13.1 荞݂̎ނ̖
     13.2 荞݂̌ݒՓ˂ŋNǏ
     13.3 荞݂̐ݒ~X
     13.4 荞݂̏Փ
     13.5 荞݂̖̉

  14. UART Ƃ͉ł?  \ɂǂ̂悤ȉe^̂ł傤?
     14.1 UARTS 
     14.2 2 ނ UART
     14.3 FIFO
     14.4 UART ̃fԍ

  15. szuƐM
     15.1 szu
     15.2 M͌܂ӖĂȂƂ܂
     15.3 VA|[gԂ̃P[uڑ
     15.4 RTS/CTS  DTR/DSR ̃t[
        15.4.1 DTR  DSR ̃s
     15.5 |[g̃I[v֎~@

  16. d̔g`
     16.1 rbg 1 \d
     16.2 oCgf[^\dV[PX
     16.3 peB
     16.4 oCgf[^̍\ (t[)
     16.5 u񓯊vʐMœs@

  17. ̑̃VAfoCX (񓯊 EIA-232 ȊÔ)
     17.1 EIA-232 ̌p
     17.2 EIA-422-A (t^)  EIA-423-A (񕽍t^)
     17.3 EIA-485
     17.4 EIA-530
     17.5 EIA-612/613
     17.6 ėpVAoX (Universal Serial Bus, USB)
     17.7 ʐMƓ
        17.7.1 񓯊Ɠ̒`
        17.7.2 ʐM

  18. ̏
     18.1 
     18.2 VA|[gp\tgEFA
     18.3 Linux p̕
     18.4 Usenet ̃j[XO[v:
     18.5 VA|[gɊւ郁[OXg
     18.6 C^[lbg̏

  19. {ɂ

  ______________________________________________________________________

  1.  ͂߂

  ́̕AVA|[gƃ}`|[gVAJ[hɂĂ̊{I
  ȏĂ܂BfeLXg[ɌŗL̏́A Modem-HOWTO
   Text-Terminal-HOWTO Ɉړ܂Bgetty Ɋւ
  HOWTO Ɉړ܂BƂ̂Amgetty  uugetty ̓fƑgݍ
  킹ĎgƂAagetty ̓eLXg[Ƒgݍ킹Ďg邱
  łBAVA|[gʂ̃foCXƑgݍ킹Ďg
  ꍇA}`|[gVAJ[hgꍇAVA|[ĝ̂Ɋ
  ꍇAVA|[gɊւZpIȏڂm
  ꍇɂ́A HOWTO Ƌɂ HOWTO QƂKv邩
  ܂ (``֘A HOWTO '' )B HOWTO ͊e}
  `|[gVAJ[hɊւڂĂ܂BƂ̂A̓
  fłeLXg[łg邱Ƃ邩łB HOWTO 
  Intel x86 A[LeN`œ삷 Linux ΏۂɂĂ܂A
  ̃A[LeN`łg邩܂B

  1.1.  쌠AƐӎANWbg

  1.1.1.  쌠

  Copyright (c) 1993-1997 by Greg Hankins, 1998-1999 by David S. Lawyer.

  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.  NWbg

  IWi Serial-HOWTO ̑啔 Greg Hankins 
  gregh@cc.gatech.edu ܂B Greg ͂܂A̕񋟂
  ͂̏𕶑̂╶̗͂̌qۂ߂ɍsĂ܂BޞH
  uvĂꂽXAӌX̑SĂɊӂ܂Bꂼ
  ̖OƒȂ肷̂ŏȗ܂(100 lzĂ܂)BV
  AhCoɂĂ̎ɓĂ Ted Ts'o ɂ͓Ɋӂ
  ܂vƂƂłBo[W 2.00 ̂񔼕 Greg Hankins 
   HOWTO ̓epAc̕ 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̓_͏oo[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ł̓tmFȂ
  <http://metalab.unc.edu/LDP/HOWTO/Serial-HOWTO.html> āÃ݂o
  [W(v2.05, 1 January 2000)ƔׂĂB

  1.4.  VA|[g֘Ȃ HOWTO 

  fAeLXg[Aꕔ̃v^⑼̎Ӌ@͂΂΃VA|
  [gg܂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
     Vo[Wo܂B

  o  Text-Terminal-HOWTO eLXg[̓ACXg[Eݒ̕@A
     eLXg[̏C̕@ɂ

  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-232C (EIA-232 ƂĂ
  ܂)łBVA|[g̃RlN^́APC ̗ɂ 1 ܂ 2 
   9 s̃RlN^(25 s̏ꍇ܂)łBłAVA|[
  g͂ꂾ̂̂ł͂܂BVA|[gɂ́AEIA-232 Kiɏ
  M𐶐Ȃ΂ȂȂ֘AdqZp܂܂܂B``d̔g
  `'' ̏͂ĂBs̓f[^̃oCg𑗂邽߂ɎgA
  ʂ̃s̓oCg󂯎邽߂Ɏg܂BMʂɎgڒnd
  s܂B́u֗ȁvs͎ɁAuItv\̒d
  uIv\̒dgĐM\߂Ɏg܂B

  UART (Universal Asynchronous Receiver-Transmitter) `bvقƂǂ
  s܂Bŋ߂͕ʁÃ`bv̋@\͕ʂ̃`bvɑgݍ܂
  ܂Bu``UART Ƃ͉ł?''vQƂĂBUART ͎Ԃo
  ɂǂĂA݂͌Âf(NÕf)͎x
  ȂĂ܂B

  VA|[g͌X̓fڑ邽߂ɐ݌vꂽ̂łA}EX
  eLXg[Ãv^̐FXȃfoCXRs[^ɐڑ
  邽߂ɂgĂ܂B̃foCX́AK؂ȃP[ug
  VA|[gɌqłBf̑͑gݍ݂̃VA|[
  gĂ̂ŁAf PC ɒǉƁAʂ̃VA|[g
  PC ɉ悤Ɍ܂B

  2.  n[hEFAɂoCgf[^̓]̎d

  2.1.  M

  M(transmitting)Ƃ́AVA|[gʂăRs[^oCg
  𑗂邱ƂłBōŏɎ͋ɒ[Ɋȗ̂łBƏ
  Œǉ܂BRs[^VA|[g 1 oCg
  f[^𑗂낤Ƃ鎞ACPU ̓Rs[^̃oXɂ邻̃f[^
  VA|[g I/O AhXɑ܂BVA|[g͂̃f[^
  󂯎AVA[q̑MsgĂ 1 rbg
  (VArbgXg[)Brbg(ƃoCg)dCIɂ͂ǂ
  ̂ɂẮA``d̔g`''̏͂B̏͂ɏĂ
  Ƃ͑SăoCgf[^̑MɊւ̂ł(VA|[gɂ
  ̃n[hEFApMɂĂ͐GĂ܂)B

  L̐ڂ(܂Sɂ͒̂ł)J
  ܂BVA|[gōs鏈̂قƂǂ UART (܂͓̂
  )s܂B1 oCg̃f[^]邽߂ɁAVAfoCXh
  CovO(CPU œ)̓VA|[g I/O AhX 1 oCg
  𑗂܂B̃f[^̓VA|[ǵuMVtgWX^v(傫
   1 oCg)ɓ܂B̃VtgWX^ł́ÃoCgf[^ 1
  rbgoA1 rbgVAɑ܂BčŌ
  rbgMƁAVtgWX^͑邽߂̕ʂ̃oCgKvɂȂ
  ̂ŁACPU ɕʂ̃oCgf[^𑗂悤ɋ߂܂BȂPȘbł
  ACPU ̓oCgf[^𑦍Ɏ擾邱ƂłȂȂ̂ŁA
  xlȂ΂ȂȂł傤BǁACPU ͕ʂ͒PȂVA
  |[g̏ȊÔƂsĂ܂B

  VtgWX^ɃoCgf[^擾ۂ̒xȂ@́AVtg
  WX^oCgf[^KvƂO CPU oCgf[^擾āA
  VA|[g(n[hEFA)obt@Ɋi[邱ƂłBꂩ
  AVtgWX^oCgf[^𑗂oĐVoCgɕKv
  ȂƁAVA|[g̃n[hEFÃ͎obt@̎̃oCgVt
  gWX^ɓ]邾łBs߂ CPU ĂԕKv͂
  B

  VA|[g̃obt@̃TCY͌X 1 oCg܂ł
  A݂͕ 16 oCgł(ȃVA|[gɂ͂Ƃ܂)B
  łAVtgWX^]f[^KvƂɕKob
  t@Ƀf[^悤ɁÃobt@ɏ\ȃoCgf[^^
  Ƃ肪cĂ܂(f[^cĂȂꍇ͏܂)B
  ͊荞݂g CPU ƘA邱Ƃōs܂B

  Ẫobt@ 1 oCg̃VA|[g͂̂悤ɓ삵܂B
  VtgWX^oCgf[^obt@oAobt@̃oC
  gf[^KvƂƁARs[^̃oXɂp̔z̓d
  邱ƂɂACPU Ɋ荞݂܂BCPU ɏdvȏ
  ĂȂ΁ACPU s̏͊荞݂ɂ苭IɒfAV
  A|[g̃obt@ɕʂ̃oCgf[^^邽߂̃vOs
  ܂B̂悤ɁÃobt@̖ړÍAVA|[g瑗o
  oCgr؂Ȃ悤ɁAło悤ȃoCgf[^(
  ̂҂)n[hEFÃL[ɓꂽԂɂĂƂłB

  x CPU Ɋ荞݂ƁACPU ͒N荞݂m邱Ƃ
  ł܂BȂȂAeVA|[gɂĐp̊荞ݐ邩
  ł(荞݂̋LĂȂꍇ)Bꂩ CPU ̓VAf
  oCXhCo𓮍삳܂BhCo I/O AhXɂ郌WX^
  `FbNAN̂𒲂ׂ܂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 ̃oCgVA|[g̑M֊Sɑo
  ƁAVtgWX^͋ɂȂAȉ 3 ̓삪قƂǓɋN
  ܂:

  1. ̐VoCgMobt@瑗MVtgWX^ɓ
     B

  2. ̐VoCg(1 rbg)Mn܂܂B

  3. ̊荞݂sAɂȂMobt@Ɏ̃oCg
     𑗂悤ɃfoCXhCoɎw܂B

  VA|[g͊荞݋쓮(interrupt driven)łƌ܂BVA
  |[g荞݂𔭍sxɁACPU ͎̃oCg𑗂܂B CPU 
  1 oCg𑗐Mobt@ɑƁÅ荞݂󂯎܂ŁACPU ͑
  RɍsƂł܂BVA|[g̓[U(邢̓Av
  P[VvO)IŒ̑xŃrbg𑗐M܂B
  x̓{[[gƌĂ΂邱Ƃ܂BVA|[g̓oCgƂ
  ǉ̃rbg(X^[grbgAXgbvrbgAꍇɂĂ̓peB
  rbg)t̂ŁȀꍇA1 oCgƂ 10 rbg̃f[
  ^܂BāAʐM[g(xƂ܂) 19,200 rb
  g/b(bps, bit per second) 1,920 oCg/b(1,920 荞/b)Ƃ
  ƂɂȂ܂B

  ̏SčsƂ CPU ɂƂĂdSł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ł邱Ƃ܂ł͕܂BN𒲂ׂ
  ɂ́AfoCXhCo͐FXȃ`FbNsȂ΂Ȃ܂B
  荞݂NĂA󂯎̂܂񂵁ȀԂ
  ω̂܂B

  @̈́AVA|[g̃obt@̑傫𑝂₷ƂłB
  ݂̃VA|[g̑啔́A1 oCgł͂ȂA16 oCg̃ob
  t@Ă܂B܂ACPU ͊荞݂󂯎ƁAVA|[g
   16 oCg܂ł̃f[^Vɑ邱Ƃł܂Bɂ芄荞
  ̔s͌܂AoXɂ炸 1 oCgf[^
  Ȃ͂̂܂܂łB16 oCg̃obt@͎ۂɂ FIFO (First In
  First Out, o)̃L[łBL̈ꕔJԂĂ
  ̂ɂẮA``FIFO'' B

  2.2.  M

  VA|[gɂoCg̎M͑MƂقړŁAtɂȂ
  邾łBM荞݋쓮łBMobt@ 1 oCg
  ȂÂ^̃VA|[gł́A1 oCg̃f[^Ŝ󂯎ƁA
  f[^(傫 1 oCgł)Mobt@ɓ܂BƃVA
  |[g CPU Ɋ荞݂Ẵf[^荞܂AݎM
  f[^i[łꏊ󂭂悤ɂ܂B16 oCg̃obt@
  VVA|[g̏ꍇ́A(oCgf[^擾邽߂)
  荞݂̓obt@ 14 oCg̃f[^~ς_Ŕs܂B
   CPU ݂͌̏U~߁A1  16 oCg̃f[^VA|
  [go܂B14 Ԗڂ̃oCg󂯎ꂽɑꂽ荞
  ݂ɑ΂AꂪNĂ炳 2 ̃oCgf[^͂ƁA󂯎
  ׂoCǧ 16 oCgɂȂ邩܂B(2 oCgł
  Ȃ) 3 oCg͂Ă܂ƁA16 oCg̃obt@͈Ă܂܂B

  2.3.  VA|[g̑傫ȃobt@

  ܂ł̓VA|[gĂ鏬(1 ܂ 16 oCg)n[hEF
  Aobt@ɂĐ܂ACɂ͂Ƒ傫ȃobt@
  ܂BVA|[goCgf[^(1  16 oCg)n[hEF
  A̎Mobt@荞񂾎ACPU ͂f[^C
  傫(Ⴆ 8K oCg)obt@ɓ܂BāAVA|[
  gf[^󂯎vÓȂ傫ȃobt@ (vO
   "read" p)f[^o܂BMf[^ɂĂ
  Ƃ܂BCPU f[^炩KvꍇA CPU 
  Cɂ傫(8K oCg)Mobt@f[^o
  An[hEFA(1 ܂ 16 oCg)Mobt@
  ɓ܂B

  3.  VA|[g̊b

  VA|[ggȂb𗝉Kv͂܂񂪁Ab
  Ă΁A肪NۂɌ肷ɗ܂B
  ̏͂͐Vbɂďqׂ邾łȂAȌ(``n[hEFAɂ
  oCgf[^̓]̎d'' ̓ëꕔJԂ܂BA
  ̏͂ł͂Əڂ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|[gp|[gAfBXNhCuRg[
  AC[Tlbg{[hAėpVAoX̂̎ނ܂B
  قƂǂ PC ̓VA|[g 1 邢 2 Ă܂Be|[
  g̓Rs[^̗ 9 s(25 ŝƂ܂)RlN^
  Ă܂BRs[^̃vO͑Ms(o)Ƀf[^(oCg)
  邱Ƃł܂AMs()f[^󂯎邱Ƃł
  B̃s̓t[Ɛڒn̂߂Ɏg܂B

  VA|[g͒PȂRlN^ł͂܂BVA|[g͕̃f
  [^𒼗ɕϊAf[^̓dCIȕ\ς܂BRs[^
  ́Af[^\rbgQ͕ɗ܂(ɕ̔zp܂)B
  f[^𒼗ɗƂ́A1 {̔z(VARlN^̑MsMs
  ) Ƀrbg̃Xg[𗬂ƂłBVA|[gł̂悤Ƀf
  [^𗬂߁AVA|[g͑MsŃf[^(Rs[^
  ̌`)璼ɕϊłȂ΂Ȃ܂(̋t̕ϊKv
  )B

  VA|[g̓dqĤقƂǂ́AUART ƌĂ΂`bv(邢
  `bv̈ꕔ)łBUART ̏ڍׂɂẮA``UART  ł? \
  ǂȉe^܂?''̏͂ĂBA܂͂̏͂
  ǂނƂ悢ł傤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̂߂Ɏgz̍ŏ 3 {
  BƁAMڒnȂĂ삷邱ƂmĂ܂A
  ̏ꍇɂ͐\AG[N肵܂B

  ɂz܂A͐p(VOiO)Ɏg邾ł
  Af[^̑Mɂ͎g܂BSނ̐M𓯂ŋL邱Ƃ
  ł܂AVA|[g͂ȂĂ炸AM̎ނƂɕʁX̐
  ppӂĂ܂B̐pz̈ꕔ(邢͑S)́uf
  (modem control line)vƌĂ΂܂Bf̏Ԃ́A +12
  {g̗L(on)ԂA-12 {g̖(off)Ԃ̂ǂ炩łB
  ̃f 1 ́ARs[^ɃVA|[g̃f[^
  M~߂M𑗂邽߂̂̂łB̔΂ɁAVA|[gɐ
  ꂽfoCXRs[^ւ̃f[^M~߂邽߂̐
  ܂B̑ɂAڑĂfoCXf̏ꍇɃf
  db悤ɎwAڑmĂ邱ƂdbĂ
  (NdbĂĂ)Ԃł邱Ƃ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 ͂قƂǓ̂łBX̓
  ɕtĂ RS(Recommended Standard) EIA (Electronics Industries
  Association)ƂȂAEIA  TIA (Telecommunications Industries
  Association)  EIA/TIA ƂȂ܂BEIA-232 ̎dlɂ͓
  ʐMĂ܂AقƂǂ̑S PC ɂ͓ʐMT|[g
  n[hEFA͕tĂ܂łB RS ̎dl͉̂ߋ̂̂ƂȂ
  ܂AłLgĂ܂B{ HOWTO ł EIA g܂B
  ɂĂ͊S EIA/TIA dlgĂ̂܂BȊO
  (EIA-232 ȊO)VA|[gɂẮA ``̃VAfoCX
  (񓯊 EIA-232 łȂ)'' ̏͂B

  3.2.  I/O AhX IRQ

  Rs[^͂ꂼ̃VAfoCXƒʐMKv̂ŁA OS
  ͂ꂼ̃VA|[g݂邱ƂƂ炪ꏊ (I/O Ah
  X)mĂȂ΂Ȃ܂BOS ́AVA|[g CPU ɃT[r
  Xv鎞ɂǂ̐(IRQ ԍ)gȂ΂ȂȂmĂK
  v܂BVA|[g͂̐Ɋ荞݂𑗂邱ƂɂăT[r
  Xv܂BāAꂼ̃VA|[gfoCX I/O A
  hX IRQ (Interrupt ReQuest number)̗sɕۑ
  ĂȂ΂Ȃ܂B ``荞'' ̐߂QƂĂBPCI oX
  ̏ꍇ́AŜ悤ɓ삷킯ł͂܂BƂ̂APCI 
  ͓Ǝ̊荞݃VXe邩łBAPCI Ή BIOS ̓`b
  v̐ݒs PCI ̊荞݂ IRQ Ƀ}bsO邽߁A
  ̐̒ʂɓ삵܂BA荞݂̋LĂ_͏
  ܂(2 邢͂ȏ̃foCX IRQ ԍgƂł
  )B

  I/O AhX̓̃AhXƂ͈قȂ܂BI/O AhXRs[
  ^̃AhXoXɐݒ肳ƁA̔zɐM܂B̐ḾA
  CɃAhX𖳎邱ƂƁAI/O AhXĂS
  ̃foCX(VA|[g)ɂ̃AhXĎAꂪfoCX
  AhXɃ}b`邩ǂ𒲂ׂ邱Ƃw܂BAhX
  }b`΁A I/O foCX̓f[^oX̃f[^ǂݍ݂
  B

  3.3.  O: ttyS0, ttyS1 

  VA|[gɂ ttyS0, ttyS1 ƂOt܂(Ă
  ͕ DOS  Windows ɂ COM1, COM2 ɑΉ܂)B/dev fB
  Ngɂ́Aꂼ̃|[gɊւt@C܂B "ls
  /dev/ttyS*" sẴt@CĂ݂܂傤BA (Ⴆ
  )ttyS3 t@C邩ƂāAKɕIȃVA|
  [g݂킯ł͂܂B

  (ttyS0, ttyS1 )ǂ̖Oǂ̕VA|[gŵ́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̐ݒ̓WpvO&vC
  ̐ݒvOōs܂)B̂悤ɁAǂ̕|[g ttyS1 Ȃǂ
  Ή̂́AVAhCo̐ݒ(setserial ɂ)ƃn[hEFA
  ̐ݒ̗Ɉˑ܂BɊԈႢƁA|[g(ttyS2 
  ǂ)ǂ̖OɂΉAĎgȂ܂Bڂ
  ``/dev/ttyS2 ̃VA|[gfoCX''B

  3.4.  荞

  VA|[ǵA鐔̃oCgf[^(1, 4, 8, 14 ̂ꂩɐݒ肳
  ĂƎv܂)̃f[^ FIFO obt@Ɏ󂯎ƁAʏ͂̃|
  [gg̔zɊ荞݂ƂĒmdCM𗬂Ƃ
  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 oCgA
  Ď󂯎邩Ȃ̂ɁA 4 oCg̃f[^
  oĂȂ΁AVA|[g͎̃oCgf[^҂̂
  ߁A FIFO ɓĂoCgf[^擾邽߂Ɋ荞݂𔭍s
  ܂BAFIFO łΊ荞݂͔s܂B

  ꂼ̊荞ݐ(Rs[^)ɂ͔ԍ(IRQ)tĂAV
  A|[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荞݂̔sK؂ȃ^C
  ~OōsƂ͏dvłBƂ̂AVA|[g̃obt@͓
  Ăf[^ 16 oCg(ÂVA|[gł 1 oCg)ێł
  Ȃł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@
  ́Aof[^p 16 oCg̋󂫂ł܂B荞݂͂̎
  CPU ɓ`AMobt@ɑMׂVf[^ꂳ邽
  ɗp܂B܂Af䃉C̏Ԃωɂ荞݂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
  Os܂B̃vO͊荞݃T[rX[`ƌĂ΂
  ܂(VAhCõ\tgEFÄꕔł)B荞݃T[rX[`
  ̓VA|[gŋNo𒲂ׁA̖ (VA|[g̃n[
  hEFAobt@̃f[^o͂Ȃ)܂B̃[`̓VA
  |[gŋNƂȒPɒm邱Ƃł܂BƂ̂AVA|
  [g̃WX^̓VAfoCXhComĂ I/O AhXɂ
  邩łB̃WX^́AVA|[g̏ԂɊւێ
  ܂BfoCXhCo͂̃WX^ǂł̓e𒲂ׂ邱Ƃɂ
  AVA|[gŋNƂmAK؂ȓsƂł܂B

  3.5.  f[^t[ (x)

  VA|[gł̓f[^(A摜Ȃǂ\oCg)̓o͂s
  ܂Bf[^鑬xłt[[g(56k (56000) rbg/b
  )(smł)uxvƌĂ΂܂Bł̐ĺut[[
  gvł͂Ȃuxv̕g܂B

  ϑx͎dlŌ߂Ă鑬xxꍇƂ𗝉Ă
  Ƃ؂łB҂(邢̓ACh)ƁAϑx͒
  Ȃ܂B̂悤ȑ҂Ԃɂ́A``t[''ɂ 1 bx
  钷҂Ԃ܂܂܂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[́AfuԂ̃t[[gAIɕς悤ɂ
  邽߂ɕKvłB

  3.6.1.  t[̗

  ƂāA33.6k ̊OfZP[ugăVA|[gɐڑ
  ꍇl܂傤B̃f͓db 33.6k bps (rbg
  b)Ńf[^𑗎M܂Bf[^kG[͑SsȂ̂
  ܂BVA|[g̑x 115.2k bps ɐݒ肵ĂAf[^R
  s[^dbɑ܂BƁARs[^烂fւ͒Z
  P[uʂ 115.2k bps Ńf[^܂BAfdb
  ւ 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͂̒
  ~MfoCXhCoɓnA115.2k bps ̃f[^̗͒~
  Bf́A܂Ńobt@ɒ~f[^oȂÂ܂
  33.6k bps Ńf[^𑗂葱܂Bƃobt@ɂ͉ĂȂ
  ߁Aobt@̃f[^ʂ͌n߂܂Bobt@̃f[^قƂǂ
  ȂƁAf͊JnMVA|[gɑARs[^烂f
  ֍Ă 115.2k bps Ńf[^n߂܂Bt[ɂ莖AZ
  P[uł̕ϓIȃt[x(̏ꍇ 33.6k bps)́Af[^
  uvꍇ̑xł 115.2k bps ƒxȂ܂B
  ꂪuJn-~vt[łB

  L̊ȒPȗ̓Rs[^烂fւ̗̃t[łA
  Ό̗(fRs[^ւ̌)ɑ΂ėpt[
  ܂BȂ킿f(܂͑̃foCX)Rs[^̌
  Bǂ̗̌ɂ 3 ̃obt@(1. f̃obt@A 2.
  UART `bv( FIFO)̓A3. VAhCoǗ郁C
  ̃obt@)܂Bt[́Ãobt@Ȃ
  悤ɕی삵܂B UART FIFO obt@͂̂悤ȕی󂯂Ă
  ܂񂪁ȂɁÃobt@s銄荞݂ւ̉
  邱Ƃ҂ē삵܂BFIFO ́uFirst In, First Out(ɓ
  f[^ɏo)vƂAoCgf[^̈\Ă܂B 3 
  obt@SĂ FIFO ̋Kœ삵܂A𖼑OƂĎĂ
   1 łBꂪt[̖{łA邱Ƃ͂Ƃ
  񂠂܂B

  3.6.2.  t[䂪Ȃ̏Ǐ

  t[̗ĂƁAۂɖ𗧂Ƃ܂Bt[
  䂪ȂɏoǏ́At[̉b󂯂ɑꂽt@C
  f[^̈ꕔĂ܂ƂłB̓I[o[t[N邽߂
  Aʂ̓I[o[t[NďĂ܂f[^͐oCgł͍
  ݂܂BSAoCgf[^A̍ۂɑSẴf[^ꑱ
  ł邱Ƃ΂΋N܂B

  3.6.3.  n[hEFAt[΃\tgEFAt[

  \ł΁Ał邾un[hEFAṽt[g܂傤B
  ͐ṕufv 2 {gAu~(stop)vƁuJn(start)v
  ̐M𑗂̂łB

  \tgEFAɂt[́AJnMƒ~M𑗂邽߂ɃC
  MƎMg܂B\tgEFÃt[́A̐M𑗂邽
  ߂ ASCII 䕶 DC1(Jn) DC3(~)g܂B̐䕶
  PɁAʏ̃f[^Xg[ɑ}܂B\tgEFÃt[
  ͔xłȂAʂȑ΍uȂ΃fgă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@݂AV
  A|[g̃obt@ƌĂ΂܂BAvP[VvOf[^
  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@oAVA|[g̃n[hEFA
  MpɎĂ鑗Mobt@ɓ܂Bxf[^Mobt@ɓ
  ƁȂM~߂@͂܂BẴf[^́AVA|[
  gɐڑĂfoCXɑ܂BVA|[gK؂ȑ傫
  (Ⴆ 1K oCg)̃obt@Ă܂BfoCXhCo(t[
  ɂw)Rs[^oĂoCgf[^̗~߂
  ɂ́AۂɎ~܂̂̓Cɂ傫ȑMobt@oĂ
  oCgf[^̗łBꂪNAVA|[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͌ǁAf[^𑗂vO
  ~߂邱Ƃł܂B̃vO~܂ĂARs[^͌vZ
  ~߂Kv͂܂Bt[ stop M󂯂đ҂Ă
  ́Aʂ̃vZXɐؑւ΂悢̂łBȏ̐͑ȗ
  ܂A"write" ҂ĂԂɂ̓AvP[VvO
  ̂ɕʏ@Ƃ͕ʂɂ邩łB

  3.8.  Gȃt[̗

  ̏ꍇA`oH̃NÂꂼꂪƎ̃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|[goRŃf
  ɑo܂BčŌɁA͓̕dbʂ BBS ɑ
  ܂BeLXg[ʂɕ\ł鑬xɂ͌ÊŁA
  x𗎂߂Ƀt[ "stop" MXs܂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@Cu擾vꍇl܂B̍ۂɂ́AeLXg[ƃn[
  hfBXÑt@C̗ɓɃf[^܂BeLXg[
  \xf[^Ă̂ŁAeLXg[ PC  1 
  ڂ̃VA|[g "stop" M𑗂܂BfoCXhCo͂
  oA(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" MV܂ŗꑱ܂B
  f(G[͗Lł̂Ƃ܂) "stop M"  BBS ̃f
  ɑ܂B̃f̓obt@f[^𑗂ô~߁Ãob
  t@ςɂȂƁABBS zXg̃VA|[g stop M𑗂
  BBBS zXgł́A8kB(Ȃ)̃obt@ςɂȂABBS zXg
  ̃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邩܂BeL
  Xg[ "stop" M𑗂ɑSẴobt@eʂςɋ߂
  ꍇɂ́Aۂɂ̂悤ɂȂ邱Ƃ܂B

  łsĂ݂΁AƐGɂȂ邱Ƃ
  ɂȂƎv܂BuԂɃf[^𗬂Ă郊N܂
  A(t[ɂ)~܂Ă郊N܂B[
  "stop" MAɐ悤ɂ܂ BBS zXgɓ`邱Ƃ͖ő
  ܂BBBS  "stop" M 1 ͂ɂ́A[ "stop"
  MȂ΂ȂȂƂ܂Bۂ̓𗝉
  ɂ́AɃRCuč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 sKv܂B
  sȂꍇɂ́A/etc/modules ɖIɗ񋓂Kv܂
  BW[ Linux ňʓIɂȂÓAVAhCo̓J[l
  ɑgݍނ̂ʂłBAVAhCo܂J[lɑgݍ
  ł̂Ȃ(J[l̃RpCɂÎ܂)A
  VAW[[hĂ͂܂B[hăVA
  hCo 2 ɂȂĂ܂ƁAVA|[g͎gȂȂ܂B
  ̏ꍇɃVA|[gI[v悤Ƃ "I/O error" ƂȂ
  B

  VAW[[hƁA݂VA|[gɊւ郁b
  Z[Wʂɕ\܂(悭Ԉ IRQ \܂)BA
  x setserial găfoCXhCo(Ԃ) IRQ ΁A
  ̕\͍ŏ̕\ɎĂ܂AIRQ ȂĂ͂
  Bsetserial ̏ڍׂɂĂ ``setserial Ƃ͉?''B

  J[l̃\[XR[hҏWăhCoC邱Ƃł܂BV
  AhCȏ啔 serial.c t@Cɂ܂BVA|[gg
  vȌڂɂẮASerial-Programming-HOWTO 
  ( Vern Hoxie 񂪉ł)B

  4.  VA|[g͎xȂ̂?

  4.1.  ͂߂

  _猾ƎxłcBVA|[g͂炩xł
  ݂łKvłA Linux ł͕KvłBVA|[gɂ͌_
  񂠂܂AV PC ̂قƂǂɃVA|[gtĂ
  BLinux T|[gĂʏdbp̃f́AVA|[go
  Rœ̂łB

  VA|[ǵARs[^ԂOP[uʂ`Ńf[^n
  Ȃ΂Ȃ܂BāAVA|[g 2 ̃C^tF[X
  Aǂ̃C^tF[XᑬłB܂͊OP[uʂOE
  Ƃ̃C^tF[XlĂ݂܂傤B

  4.2.  ᑬŋZ EIA-232 P[u

  ] EIA-232 VA|[ǵAǂĂᑬŁAɂ
  ܂BLł͂悭uv搂܂AۂɁuvɓ
  ̂́APC ׂ̂Ƀf悤ȔɋZꍇ
  B܂lbg[NJ[hƔׂƁÁuvƂ̂ᑬɉ߂
  ܂BVAP[u͑Sċʂ̐ڒngzpĂ̂ŁA
  n[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 KicCXgyAZpgĂȂƂ͂
  ӖߌłBgĂ 100 {ɓł͂Ȃ̂ł
  BcCXgyA͓dbɂ 19 I̖gĂ܂B
  1888 N(110 NȏO)́uP[uc(Cable Conference)v́AcCX
  gyA(dbVXeւ)xƂ̗_񍐂Ă܂BłAuP
  [ucvł̍ӂ́A80 Nȏ RS-232 ł͐܂ł
  BRS-232 ͌XA[ׂ̗ɒuᑬfƐڑ邽߂ɐ݌v
  ꂽ̂ŁAE̓`ɊւKv͗Ȃ悤
  B

  4.3.  Rs[^ւ̃C^tF[X̔

  Rs[^gĒʐMɂ́Aǂ I/O foCXłĂR
  s[^ǂݏłAhXKvłB̖ړÎ߂ɑ I/O
  foCX(VA|[g) I/O AhXƌĂ΂ȃAhX
  Ă܂(I/O |[gƌĂ΂邱Ƃ܂)B͎ۂɂ́A
  AhX͈̔͂łAԒʂ̃AhXx[XAhXɂȂ܂BP
  ɁuAhXvƌꂽ(ꂽ)ꍇ́Aۂ͑ux[XAhXv
  wĂ܂B

  ꕔ I/O foCX I/O AhXgɁAڃC̓
  ݏs܂BpƑ傫ȑш𗘗pł܂BƂ̂A
  ̂Ȃ̃VA I/O VXeł͓ 1 oCg]łȂ
  ł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[XAoX̂ 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^vuc{[hv
  Ă΂邱Ƃ܂B̂悤ȃJ[hgƁAVA|[g
  gƂł܂BJ[h͂̒[⃂fV
  A|[gɐڑ邽߂Ɏg܂AfƑgݍ킹Ďg@
  ł͎xłB݂̃fʐMł́Ãf`bv 1 
  J[h̏ɍڂĂA1 ̉Hŕ̉(fW^`)q
  dbɐڑ܂Bf́ufW^fvƌĂ
  AdbC^tF[X́ucRZg[^vƌĂ΂܂B̂
  ȃVXe̓X^hA̓ƎKĩT[ołAȃJ[
  h(ł́u}`|[gvƂ͌܂)g PC ɍ\z
  BDigi Ђ͂J[hu[gANZXT[op̃RZg
  [^A_v^vƌĂł܂B}`|[gfJ[hɊւȒP
   Modem-HOWTO ɏĂ܂ARZg[^͈Ă
  B

  āA}`|[gVAJ[h̐ɖ߂܂傤B̃J[h
  ͂̊ORlN^(DB-25  RJ-45(db̃WbN̂悤Ȍ`))
  tĂÃfoCX(f[Ȃ)ڑł܂B
  āAfoCX̂ꂼ͒PƂ̃VA|[gɐڑ
  ł傤BJ[h̊OɏoĂ镔̑傫ɂ͌肪̂ŁASẴV
  A|[gRlN^ڑ邾̏ꏊȂƂ΂΂܂B
  ̖邽߂ɁAJ[h(O)P[uoĂ(octopus
  P[u)A̒[ɃRlN^tĂ邱Ƃ܂B}`|[gJ
  [hƃP[uŌqĂ鏬ɃRlN^tĂ邱Ƃ
  B

  _VA|[gʏ̃VA|[gƂ܂ς܂B_V
  A|[g荞݋쓮łÃ|[gɃT[rX铮̂قƂ
  SĂ̓Rs[^ CPU s܂Bɂ͕ʁA1 ̊荞݂S
  Ẵ|[gŋL邽߂̃VXetĂ܂BāA
  VA|[g͒ʏ͓ȃhCoKvƂ܂BhCo̓J[l
  ɓ邩A\[XR[h̏CɂėLɂȂ΂Ȃ܂B

  {[h͒ʏ UART g܂AUART ̊荞݂̂قƂǂ
  {[hœIɏ܂BɂACPU ͂荞݂̑S
  ĂƂׂ𓦂邱Ƃł܂B̃{[h̓oCgf[^
  ȓ FIFO ɒ~Ax 1K oCg炢̃f[^C
  VAobt@ɓ]܂BCւ̃f[^]sۂ
  ́A(_VAJ[ĥ悤 8 rbg̃oCg]̂ł͂
  )32 rbg̃oXSĎgƂł܂BKSẮuv{
  [h悤ɌIȂ킯ł͂܂B݂̑̃{[h̓v
  O&vCΉłB

  {[h𓮂߂ɂ́Ap̃hCogȂ΂Ȃ܂B
  ̃hCo̓J[l̃\[XR[hɑgݍ܂ĂAW[Ƃ
  Ē񋟂邱Ƃ܂BꍇłAhCoLɂ
  ͉Ȃ΂Ȃ܂B̍Ƃɂ́AJ[l̃RpCɑI
  (܂́A\߃RpCĂJ[lȂĂ邩ǂ
  m߂邱)܂܂܂B"make config" R}h "make menuconf"
  R}hgƁÃIvVǂ̂悤ɐݒ肳Ă邩m߂
  Ƃł܂BꍇɂẮAȃhCo[hÃp
  [^(LILO  append R}hg) 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{[hgVA|[ǵAg̃{[h̎ނɂ
  قȂ܂Bꕔ̃|[g rc.serial  0setserial ɏڂ񋓂
  邩܂B̃t@C setserial pbP[W܂
  serial pbP[WɓĂ邩܂BM҂ƂẮAǎ҂̊F
  񂪃}`|[g{[hgƂĂ̂Ȃ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}hs܂:

       linux# mknod -m 666 /dev/cua17 c 5 81
       linux# mknod -m 666 /dev/ttyS17 c 4 81

  u64 + 17 = 81vɒӂĂBMAKEDEV XNvggꍇɂ͈
  ̃R}hs܂:

       linux# cd /dev
       linux# ./MAKEDEV ttyS17

  { HOWTO ɏĂ}`|[gïꗗȊ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̃VA{[h

  PC W̃VA{[h(COM1 - COM4)͊Ot̃VAfoCX(f
  AVA}EX)ɐڑ邱Ƃł܂B݂ PC ɃVA{
  [htĂ邱Ƃ͂Ȃ̂(̖ړĨ`bv}U[{[hɍڂ
  Ă̂ł)AXŃ{[hƂČ邱Ƃ͓ł傤BISA
  oXp̓fɂ́Agݍ݂̃VA|[gtĂ܂B

  : AhXՓ˂邽߁ACOM4  IBM8514 rfI{[h(т
  ݊{[h)𓯎ɎgƂ͂łȂ܂B ``̃rfI{
  [hł I/O AhX̏Փ˂@'' B

  5.4.  _}`|[gVA{[h (8250/16450/16550A UART 𓋍)

  ȉ̃{[huVAA_v^vƌĂ΂܂B
  * =>  Debian ł setserial st@CAڍׂȐݒ\
  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  Byterunner (ቿi搂Ă܂)

  o  Computone ValuePort V4-ISA (AST FourPort ݊) *

  o  Digi PC/8 (8 |[g) #

  o  GTEK BBS-550 (8 |[g; mini-howto ܂)

  o  Hayes ESP (after kernel 2.1.15)

  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̃IC}jAQƂĂB

  :

  AST Fourport: rc.serial  skip_test w肷Kv邩܂
  B

  BB-1004  BB-1008  DCD, RI CT|[gĂ炸Â߃_C
  ACp̃fɂ͎g܂B̖ړIł͖Ȃ삵܂B

  Digi PC/8 ̊荞ݏԃWX^̈ʒu 0x140 łB

  SIIG IO1812 ̃}jAɏĂ COM5  COM8 ̃Xg͌
  ܂B COM5=0x250, COM6=0x258, COM7=0x260, COM8=0x268 ̂͂
  łB

  5.5.  CeWFg}`|[gVA{[h

  Linux ݊̃hCog邱Ƃm߁AhCot̏ǂł
  B̃J[h́AW̃foCXłȂȃfoCX(/dev fB
  Ngɂ)g܂B̏̓n[hEFAƂɈقȂ܂B
  ̕ɍڂׂV񂪂΁AЕM҂Ƀ[𑗂Ă
  B

  o  Comtrol RocketPort (36MHz ASIC; 4, 8, 16, 32 |[gA128 |[g
     )
     A: info@comtrol.com ܂ http://www.comtrol.com
     hCõXe[^X: Comtrol ЂT|[gĂ܂
     hCo̓: ftp://tsx-11.mit.edu/pub/linux/packages/comtrol

  o  Computone IntelliPort II (ISA, PCI, EISA oXpB64 |[g܂
     A: Michael H. Warfield ,  <mailto:mhw@wittsend.com>,
     <http://www.computone.com>
     hCõXe[^X: Beta
     hCo̓:
     <ftp://ftp.computone.com/PUB/Products/IntelliPortII/Linux/BETA>,
     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[hT|[g
     Ă܂B

  o  Cyclades
     Cyclom-Y (Cirrus Logic CD1400 UARTs; 8 - 32 |[g),
     Cyclom-Z (MIPS R3000; 8 - 64 |[g)
     EFuTCg:  <http://www.cyclades.com/products.html>
     hCõXe[^X: Cyclades T|[gĂ܂
     hCo̓: ftp://ftp.cyclades.com/pub/cycladesB܂Ao[
     W 1.1.75 ȍ~ Linux J[lɊ܂܂Ă܂B

  o  Decision PCCOM8 (8 |[g)
     A: pccom8@signum.se
     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Ă܂
     hCo̓: ftp://ftp.dgii.com/drivers/linux łł܂
     Ao[W 2.0 ȍ~̃J[lɂ̓hCo܂܂Ă܂B

  o  Digi COM/Xi (10MHz 80188; 4, 8 |[g)
     A: Simon Park , si@wimpol.demon.co.uk
     hCõXe[^X: ALPHA
     : Simon ͎d̂߁A1 dq[gȂȂ邱
     X܂B Mark Hatle (
     <mailto:fray@krypton.mankato.msus.edu> )̂ӂɂAhCo
     KvȂΓł悤ɂȂĂ܂B Mark ̓hCõ
     eiXT|[g͍s܂B

  o  Equinox SuperSerial Technology (30MHz ASIC; 2 - 128 |[g)
     A: sales@equinox.com ܂ http://www.equinox.com
     hCõXe[^X: Equinox ЂT|[gĂ܂
     hCo̓: ftp://ftp.equinox.com/library/sst

  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)
     A: spot@gtek.com ܂ http://www.gtek.com
     hCõXe[^X: GTEK ЂT|[gĂ܂
     hCo̓: ftp://ftp.gtek.com/pub

  o  Hayes ESP (COM-bic; 1 - 8 |[g)
     A: Andrew J. Robinson , arobinso@nyx.net ܂
     http://www.nyx.net/~arobinso
     hCõXe[^X: Linux J[lT|[g\
     (1998N)B҂T|[gĂ܂B
     hCo̓: http://www.nyx.net/~arobinso ł܂A
     o[W 2.1.15 ȍ~ Linux J[lɂ܂܂Ă
     Bsetserial ̓o[W 2.15 ȍ~őΉĂ܂B

  o  Multi-Tech Systems ̃CeWFgVAC^tF[X
     PCI ł 4 ܂ 8 |[gB ISA ł 8 |[gBDTE x 460.8KB
     <http://www.multitech.com/products/>

  o  Maxpeed SS (Toshiba; 4, 8, 16 |[g)
     A: info@maxpeed.com ܂ http://www.maxpeed.com
     hCõXe[^X: Maxpeed ЂT|[gĂ܂
     hCo̓: ftp://maxpeed.com/pub/ss

  o  Moxa C218 (12MHz 80286; 8 |[g),
     Moxa C320 (40MHz TMS320; 8 - 32 |[g)
     A: info@moxa.com.tw ܂ http://www.moxa.com.tw
     hCõXe[^X: Moxa ЂT|[gĂ܂
     hCo̓: ftp://ftp.moxa.com.tw/drivers/c218-320/linux

  o  SDL RISCom/8 (Cirrus Logic CD180; 8 |[g)
     A: sales@sdlcomm.com ܂ http://www.sdlcomm.com
     hCõXe[^X: SDL ЂT|[gĂ܂
     hCo̓: ftp://ftp.sdlcomm.com/pub/drivers

  o  Specialix SX (25MHz T225; 8? - 32 |[g),
     SIO/XIO (20 MHz Zilog Z280; 4 - 32 |[g)
     A:  <mailto:R.E.Wolff@BitWizard.nl>,
     <http://members.aa.net/~swear/pedia/kerneldocs/specialix.txt>
     hCõXe[^X: BETA / Specialix ЂT|[gĂ܂
     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Ă܂
     hCo̓: ftp://ftp.stallion.com/drivers/ata5/Linux 
     ł܂B܂Ao[W 1.3.27 ȍ~ Linux J[lɊ܂܂
     ܂B

  Comtrol , Cyclades , Digi , Stallion Ђ̐ĩr[ Linux
  Journal  1995 N 6 ɌfڂĂ܂B̋L
  http://www.ssc.com/lj/issue14 œǂނƂł܂B

  6.  VA|[g̐ݒ

  6.1.  PCI oX͂܂T|[gĂ܂

  J[l 2.2 ̃VAhCo PCI oXɑΉĂ܂BA
  J[l 2.3  2.4 ł́AɈꕔ PCI VAJ[h(уf
  J[h)ɑΉ܂BقƂǂ PCI J[h́AhCoɂȃT|
  [gKvł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
  ɘAKv܂B

  ̍ۂɂ́A"lspci -vv" ̏o͂̃Rs[ PCI f(܂̓VA|[
  g)̃fƃ[J[Ɋւڂdq[őKv
  B΁Aނ͓삷邩ȂeXgphCȍꏊł
  Ăł傤BɁÃhCo肵ăRpC
  BJ[lăRpC邱ƂɂȂł傤BāÃh
  CoeXgĂ܂삷邩ǂ𒲂ׁǍʂ Ted Ts'o ɕ
  ܂BL̎菇SĂƍs肪Ȃ(Ă̕
  ŐVłȂ)AނɕKvȏ𑗂ĂB[AhX
  <mailto:tytso@mit.edu> łB

  PCI f͂܂WĂ܂Bꕔ̃J[h PC Ƃ I/O 
  Cg܂(ISA J[h͂ꍇɂ I/O AhX
  g܂)Bꕔ̃J[h́Aȕ@gȂ IRQ LɂȂ
  B"lspci" ̏o͂΁AJ[hT|[gĂ邩ǂ𒲂
  ɗł傤Bׂb܂Ȃ΁AM҂̕@ɂ
  ĒׁȀ̔̕łŐ邩܂B

  6.2.  ݒ̊Tv

  ̏ꍇAݒ͎IɍŝŁA[U邱Ƃ͉܂
  BꍇɂĂ͐ݒsKv܂(邢͒Pɐݒm
  ߂邾̂Ƃł傤)Bꍇɍŏɂׂ
  ́ALinux ɂVA|[g̐ݒ 2 ̕m邱ƂłB

  ŏ̕(჌xݒ)́AI/O AhXAIRQAO(ttyS2 Ȃ)
  Ă邱ƂłB I/O  IRQ ̑ǵAn[hEFAƃVAhCo
  ̗ɐݒ肵Ȃ΂Ȃ܂BȒPɁuIO  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܂BAvOɑ΂ẮA]
  x̐ݒj[ݒt@CgčsKv܂B̍
  x̐ݒ́A stty vOɂĂs܂Bstty ́A肪
  鎞Ɍ݂̏Ԃ\ۂɂ𗧂܂Bڂ ``stty'' ̏͂
  B Linux N鎞ɂ́A̃VA|[ǧo
  (჌x)ݒ肪݂܂BmɂǂȂ̂́Ag BIOS,
  n[hEFAA Linux fBXgr[VɂĈႢ܂BVA
  |[g܂삵ĂȂ΁AKv͂܂BAvP
  [VvO͂Ăx̐ݒsĂ܂AKvȏ
  ^ĂKv邩܂BvO&vC̃VA|[
  g(fɑgݍ܂邱Ƃł)ł́A͂ƕGɂȂ
  ܂B჌x̐ݒ(IRQ  I/O AhX̐ݒ)KvƂȂꍇȉ
  Ɏ܂:

  o  3 ȏ̃VA|[gg\̏ꍇ

  o  VVA|[g(fȂ)CXg[ꍇ

  o  VA|[gŖ肪Nꍇ

  o[W 2.2 ȍ~̃J[lł́A荞݂̋LgΒ჌x̐
  sȂĂ 3 ȏ̃VA|[ggƂł܂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̐ݒƔׂ
  ) rIN₷悤łB̏ꍇ͊SɎŁA
  肷邱ƂȂ̂ɂłBŁȀ͂̑啔̘͂b܂B
  VAhCo IRQ  I/O AhXm܂ł́A|[g͑S
  삵܂BLinux ł͌oȂł傤BoꂽƂĂA
  IRQ ԈĂ΁A͋ɂ߂Ēx܂B ``̏Ȃx
  : eLXgxĂʂɕ\܂'' Ă
  B

  Wintel ̐Eł́AI/O AhX IRQ ́u\[XvƌĂ΂܂B
  āAX͓̃\[Xݒ肵Ă邱ƂɂȂ܂BA
  ނ́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.  ӂꂽԈႢŋN჌xݒ̂蒼

  ̐lĂ܂ʓIȊԈႢ܂:

  o  setserial R}h: (autoconfig IvVt) setserial 
     sAn[hEFAׂꂽƎv(ۂɂׂ͒܂)

  o  setserial ̃bZ[W: Nɉʂɕ\郁bZ[WāA
     n[hEFAۂɐݒ肳ꂽʂƊԈĐMĂ܂

  o  /proc/interrupt: VA|[ggĂȂ́Å荞݂
     /proc/interrupts ɌȂAăVA|[g
     Ȃ(邢͊荞݂ݒ肳ĂȂ)ƌĐMĂ܂

  o  /proc/ioports: ̃t@C(ԂԈႢ) setserial Ɠf[
     ^\ĂȂAꂪn[hEFAݒ\ƍlĂ
     ܂

  6.4.  I/O AhX IRQ: ÑbZ[W

  ̏ꍇA|[g̒჌x̐ݒ͋NɎIɍs܂(
  ɐƂ͌܂)BNĂ邩ׂɂ́Aʏ̋N
  bZ[W܂傤BLinux [hO BIOS obZ[
  W(͋܂)̊mFӂȂłB̂悤 BIOS ̃bZ
  [W̏o͂ Pause L[ƈꎞIɎ~߂邱Ƃł܂BXN[
  ėĂ܂bZ[W߂Čɂ́AShift-PageUp L[g
  ܂BShift-PageDown L[ƔΌɃXN[܂B dmesg
  R}hg΂łNbZ[Ẅꕔ邱Ƃł܂A
  ȕĂ邱Ƃ悭܂BNbZ[W(1999 ΂
  _)̗ȉɎ܂: 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

  Ƃsv_ɒӂĂBŏ̃bZ[Wł
  IRQ=4  ttyS2 悤ɕ\Ă܂AԖڂ̃bZ[Wł
  IRQ=5 ɂȂĂ܂Bŏ̃bZ[W\Ȃ܂B
  قƂǂ̏ꍇ͍Ōɕ\̂bZ[WłB
  ꍇɂ͕킵܂B̏͂̎cɏĂ邱
  Ƃ̐ǂޑOɂ́AƂ肠VA|[ggĂ݂āA
  삷邩ǂ𒲂ׂƂ悢ł傤BƓ삵ĂȂ
  ΁A͓̐ɓǂ܂ȂĂ܂܂B

  2 Ԗڂ̃bZ[ẂANɎs setserial vOo͂
  ܂B̃bZ[ẂAfoCXhCoƎvĂݒ
  ܂BAԈĂ邱Ƃ܂BႦ΁An[hEFA
  IRQ ۂɂ IRQ=8 ɐݒ肳Ă邱Ƃ܂(ǂ̃bZ[W
  ԈĂ)BIRQ=5 \̂́ANԈĂ̏ݒ
  t@Cɓꂽ(邢͂Ɠl̗R)܂B Linux
  XԈ IRQ 擾̂́ALinux  IRQ ̒TsȂ
  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̒TsʂłA
  IRQ ̒T͍sĂ܂B|[gɌꂽꍇÃ|[g
  ݂܂AIRQ ͊ԈĂ邱Ƃ܂BLinux  IRQ ̃`Fb
  N͍s܂BȂȂA`FbNĂS΍ɂȂȂłB
  Linux  IRQ Ɏlł邱Ƃ肵܂BȂȂA炪
  uWIvȒlłBsetserial  autoconfig IvV
  auto_irq IvVtĎsƎ蓮ŊmFs܂AŐ
  Ƃۏ؂ł킯ł͂܂B

  BIOS ̃bZ[Wɕ\f[^(ŏɕ\)̓n[hEFA
  ݒ肳ĂlłBVA|[gvO&vCȂ΁A isapnp 
  sĂ̐ݒς邱Ƃł܂BLinux NɁA
  Ɋւ郁bZ[WT܂傤B̗ɋĂAŌ̃VA
  |[g̃bZ[ẂABIOS ̃bZ[WƈvĂȂ΂Ȃ܂
  BvȂꍇɂ́A|[g̃n[hEFA̐ݒύX邩An[h
  EFAɎۂɐݒ肳Ăesetserial găhCoɋȂ
  Ă͂Ȃ܂B

  ܂AvO&vC̃VA|[gg̏ꍇɂ́AvO& vC
  ̃\tgEFAn[hEFA IRQ  I/O ݒ肵Ȃ΁A Linux
  ͂o܂B́AIɑ݂VA|[gN
  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̐߂ł́ANbZ[W݂邱Ƃɂݒ𒲂ׂ@܂
  BNbZ[Wŏ\ȏ񂪓΁A̐߂ǂޕKv͂܂
  B񂪏\łȂ΁A𒲂ׂ@܂B

  uI/O  IRQ ̐ݒ͂ǂȂĂ?vƂ₢ւ͎̓ۂɂ 2
  ʂ肠܂B1. foCXhCoɐݒ肳Ăl(͕ʂ
  setserial R}hŐݒƕ\s܂)B 2. ۂɃn[hEFAɐ
  肳ĂlB҂͓lłȂ΂Ȃ܂BlłȂΖ
  N܂BȂȂAhCoIȃVA|[gɊւĊԈ
  ƂɂȂ邩łBԈ I/O AhXhCoɐݒ
  ĂƁ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
  gxĂʂɕ\܂'' ̐߂Bh
  Coɐݒ肳Ă UART ̃fԈĂꍇɂ肪N肪
  łBI/O-IRQ ̑ghCoƃn[hEFAœǂm߂
  ́A̒lǂ̂悤ɐݒ肳Ă̂hCoƃn[hEFA
  ɂĒׂȂ΂Ȃ܂B

  6.5.1.  foCXhCo̐ݒ?

  𒲂ׂ̂͊ȒPłBPɋNbZ[W邩A "setserial -g
  /dev/ttyS*" s邾łBVA|[g܂삵Ă΁A
  ̕\en[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 ́AhCogĂ I/O AhX\܂B
  /proc/interrupt ́Aݓ삵Ă(foCXI[v)vZX
  hCogĂ IRQ \܂BL̂̏ꍇA\
  ̂̓hCo̐ݒełAn[hEFA̎ۂ̐ݒeł͕K
  ܂B/proc/interrupt ́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`Fb
  N邽߂ /proc/interruputs ɂ́Ãt@CĂԂ
  ƃvOsKv܂Bsɂ́AvO
  IɃVFɍsĂ݂܂傤B

  6.5.2.  VA|[g̃n[hEFA̐ݒ?

  foCX̃n[hEFAɎۂɂǂ I/O AhX IRQ ݒ肳Ă
  ̂𒲂ׂɂ͂ǂ΂̂ł傤? Linux Nn߂OɁA
   BIOS ̃bZ[Wx̏Ăł傤B Shift-
  PageUp L[gċNbZ[W̕\߂ABIOS oԍŏ
  bZ[W܂傤B Linux NO̐ݒłB
  setserial ͂̐ݒς邱Ƃ͂ł܂񂪁Aisapnp  pciutils 
  ݒς邱Ƃł܂B

  Gcȕ@̈ƂāA"autoconfig" IvVt setserial 
  os킹Ă݂@܂B̕@ł́AosAhX
  肷Kv܂B``setserial Ƃ͉?''  ĂBPCI V
  A|[g̏ꍇɂ́A"lspci" R}hgĂ(2.2 O
  J[l̏ꍇ/proc/pci Ă)Bg̃VA|[gv
  O&vCȂ΁Aȉ 2 ̐߂ĂB

  WpŐݒ肵|[g̏ꍇ́A̓WpŐݒ肵ełB|
  [gvO&vC(PnP)ł͂Ȃ DOS vOgĐݒ肳
  Ăꍇɂ́ÃvOslݒ肵悤ɐݒ肳Ă
  ܂B

  6.5.3.  PnP VA|[g̃n[hEFA̐ݒ?

  PnP VA|[ǵAd؂ꂽɐݒn[hEFAɕۑ܂
  B́Ad؂Ăݒ肪ςȂWp( PnP)ƑΏƓI
  BISA PnP VA|[ggł΁AVA|[gS I/O
  AhX IRQ AgȂԂɂȂ\܂B
  ̏ꍇł܂Apnpdump gẴVA|[g邱Ƃ\
  Ȃ͂łB
  ISA oXł̃vO&vC̏ꍇApnpdump (isapnptools Ɋ܂܂Ă
  )Ƃ悢ł傤B--dumpregs IvVgƁA|[gɐݒ肳
  Ăۂ I/O AhX IRQ \͂łB pnpdump 
  uvAhX̓foCX I/O AhXł͂ȂAȂ̂łB

  PnP |[g𒲂ׂɓẮADOS/Windows ł̐ݒe͂܂ɗ
  ܂BWindows ͐ݒWXgɕۑ܂A Linux
  ł͎g܂B͉炩̏t BIOS ̕sɐݒ
  邱Ƃ܂AWXgɂ Windows ݂̌̐ݒƂ͓
  ĂȂƂ܂(??)BLinux ̋N PnP BIOS Ɏ
  Ă̂Ȃ( Linux Nۂɂ́APnP Iy[eB
  OVXełȂ BIOS ݒ肵ĂȂ)ALinux  BIOS ̕s
  ̐ݒg͂łB

  6.6.  VA IRQ ̑I

  OS  PnP BIOS SẴfoCXݒ肷Ƃ{̃vO&vCݒ
  sĂȂ΁AIRQ IԂƂ͂܂BPnP ͍łǂƎv
  銄蓖ĂIłݒ肵܂BALinux ŃvO &vCp
  c[(isapnp  pcitools)gĂꍇɂ́AIRQ ̑IsKv
  ܂Bg IRQ ɒmĂꍇɂ́A̐߂΂Ă
  ܂܂񂪁AIRQ 0 ̎gł邱Ƃ͒mĂĂ
  (̒iǂł)B

  6.6.1.  IRQ 0  IRQ ł͂Ȃ

  IRQ 0 ͎ۂɂ(n[hEFAł)^C}łAsetserial gV
  A|[g̐ݒɂĂ͓ȈӖĂ܂B̎ẃÃ|
  [gɂ͊荞݂ȂƂhCoɓ`AhCo̓|[Og
  s܂B|[O͔Ɍ̂łA荞݂Փ
  ꍇA荞݂̐ݒ~Xꍇɂ͎Ƃ悢ł傤B IRQ
  0 ݒ肷闘_́An[hEFAɐݒ肳Ă銄荞ݔԍmKv
  Ȃ_łBIRQ 0 ́AۂɎg銄荞݂܂ł̋}
  ߂ɎgׂłB

  6.6.2.  荞݂̋Lƃo[W 2.2 ȍ~̃J[l

  ʓIȋKł́ASẴfoCXŗL IRQ AIRQ ̋Ls
  ȂƂɂȂĂ܂B̃}`|[ggꍇ̂悤ɁA
  IRQ ̋LĂꍇ܂BALĂƂ
  ĂA͗ǂȂ܂BƂ̂ALĂ銄荞
  ^xɁAǂŊ荞݂sꂽ̂𒲂ׂȂ΂ȂȂ
  łBāA\ł΁ASẴfoCXɌŗL̊荞݂^
  Ƃł傤B

  o[W 2.2 ÕJ[lł́AIRQ ͂قƂǂ̃}`|[g{[
  hmł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[lRpCȂ΂Ȃ܂B܂AVA|[g
  n[hEFALɑΉĂȂ΂Ȃ܂(āA2 ̃V
  AJ[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 ɂ܂B /proc/interrupts ΁Aݓ쒆̃v
  Oǂ IRQ gĂ̂킩܂B̂悤 IRQ ͎g
  ł傤B̂ IRQ 5 ̓TEhJ[hgĂ܂AV
  A|[gł悭gĂ܂B

  ȉɁAGreg (Serial-HOWTO ̌X̒)ǂ̂悤
  /etc/rc.d/rc.serial ݒ肵Ă邩܂Brc.serial ͋NɎ
  st@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    蓖Ė
          IRQ 11    蓖Ė
          IRQ 12    蓖Ė
          IRQ 13    lRvZbT
          IRQ 14    n[hfBXNRg[ 1
          IRQ 15    n[hfBXNRg[ 2

  荞݂IԂ߂̌Iȕ@͂܂B荞݂}U[{[h
  Ã{[hgĂȂƂm߂邵܂B2, 3, 4, 5,
  7, 10, 11, 12, 15 IԂƂł܂BIRQ 2  9 ͓ł邱Ƃ
  ӂĂBIRQ 2  9 ̂ǂgĂAVAhCo͂
  ܂F܂BɌÂVA{[hg̏ꍇɂ́A8 
   IRQ ͎gȂ܂B

  IRQ 1, 6, 8, 13, 14 ͎gȂł!  IRQ ̓}U[{[h
  głB}U[{[hgĂ IRQ グƁAƂĂ
  ƂɂȂ܂Bݒ肪IA荞݂gvOs
  鎞 /proc/interrupts ĊmFAIRQ ̏Փ˂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̃AhXgׂłB
  ŌAhX́A8 oCg͈̔͂̍ŏ̃AhX\Ă܂BႦ
  ΁A 3f8 ͎ۂɂ 3f8-3ff ͈̔͂łBꂼ̃VAfoCX
  (I/O AhXKvƂ鑼̃^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  IRQ ̃n[hEFAւ̐ݒ (ق PnP )

  n[hEFAɐݒ肵ɂ́Asetserial găhCoݒ肷
  邱ƂYȂłB PnP ̃VA|[g̏ꍇɂ́A|[g
  ̃n[hEFA̐ݒ̓WpA("WpX"̏ꍇɂ)ݒs
  ߂ DOS vO̎sɂčs܂(̃vO PnP 
  ɂȂ邩܂)BPnP VA|[gݒ肷ۂɍl
  @̃XgȉɎ܂:

  o  PnP BIOS  CMOS ݒ胁j[g(ʂ ttyS0 (Com1)  ttyS1
     (Com2) ɂOtfoCXɎg܂)

  o  PnP BIOS  PnP VA|[gIɐݒ肳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 ͓dx(PnP g)VA|[g̃
  WX^ɐݒ肵Ȃ΂Ȃ܂BƂ̂APnP n[hEFA͓d
  ؂ꂽ̐ݒeoĂȂłBsȒPȕ@́A
  PnP OS gĂ炸ANx BIOS IɐݒsƂ
  PnP BIOS ɋĂ邱ƂłB(PnP OS ł)Windows  PnP OS łȂ
   BIOS ɐݒ肵 Windows NƁA肪N邱Ƃ܂B
  ڂ Plug-and-Play-HOWTO B

  vO&vC IO  IRQ ̐ݒ邽߂ɐ݌v܂B
  _ Linux ł́Ab₱Ă邾łBW Linux J
  [l̓vO&vC܂肤܂T|[gĂ܂B Linux J[l
  vO&vC OS ɂpb`gĂȂ΁AL̂Ƃ͑S
  OS Iɏł͂łBAgăVA|[g
  ÕfoCX̐ݒ悤ƂĂA蓮ŃhCo̐ݒȂ
  ΂Ȃ܂BƂ̂ALinux ̃hCo PnP Ή Linux 
  ĂȂłBisapnptools  BIOS găvO&vC̐
  sĂȂ΁A 2 ̒lfJ[h̃VA|[g
  ̃WX^ɐݒ肷邾łAsetserial ̐ݒ̓[UsKv
  ܂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 IO  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 foCXSɐݒ肷邩܂񂪁AfoCX
  hCo̐ݒ͍s܂B͓ǎ҂̊F񂪖]ޓłAPnP
  BIOS sݒ𐳊mɒׂ邱Ƃ͕KeՂł͂܂B

  PnP OS ĂȂƂ BIOS ɐݒ肵Ă΁APnP BIOS ͍ŏ 2
  łȂSĂ PnP VA|[g̐ݒs͂łB BIOS ̓
  ԐړIɐ䂷@( MS Windows9x 𓯂 PC ŎgĂ
  )AWindows ɂݒuv邱ƂłB Plug-and-Play-HOWTO
  uforcedvŌĂBWindows Łuvݒ CMOS
  BIOS j[gď㏑̂͊ȒPłB́u㏑v@\̐
  Es 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 ƌĂ΂vOs邱ƂłB

  ȀŃfoCXhCoݒ肷邽߂ɁABIOS sݒ
  𒲂ׂɂ͂ǂ΂悢ł傤? BIOS gx̏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 AhXxݒ肷(邢 PnP Ŋ
  Ă悤ɂ)ALinux Nx "setserial" R}h
  s悤ɂKv܂B ``N̐ݒ''̐߂
  B

  6.10.  x̐ݒ: stty Ȃ

  ƂẮAAvP[VvOݒ̑啔(邢͑S)
  s܂BsR}h stty łB ``stty'' B

  6.10.1.  t[̐ݒ: n[hEFAt[䂪xXgł

  ``t[''ɂ̂ŁABʂ Xon/Xoff
  g\tgEFAt[n[hEFAt[g
  ł傤BSȃn[hEFAt[pɂ͕ʁAVA|[
  gƃfoCXڑP[uɃt[p̐ 2 {KvłBf
  oCXJ[hɂȂ΁AmɃn[hEFAt[䂪g͂
  łB

  ̃AvP[V( getty vO)ɂ́At[ɊւI
  vVAKvɉĐݒł܂BftHgŃn[hEFAt
  [ݒ肷邱Ƃł܂BIRQ  I/O AhX̂悤ɁAt[
  VAhCoƃVA|[gɐڑĂn[hEFA̗
  ɐݒ肵Ȃ΂Ȃ܂Bn[hEFAɂǂ̂悤ɐݒ肷̂́An
  [hEFAˑłB̏ꍇ́APC VA|[goRŃn[h
  EFAfoCXɑ́uv܂Bf̏ꍇ́A
  ʐMvO͗̐ݒs͂łB

  g̃vOVAhCõt[ݒ肵Ȃꍇɂ́A
  stty R}hgĎgŐݒ肷邱Ƃł܂BhCo
  Linux ~̐ݒoĂȂ̂ŁAN⃍OCɎs
  t@C(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 sgă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 ƂOg܂Asetserial vOł
  tty00, tty01 ƂOg܂B dev/tty0, dev/tty1 
  ȂłBdev/tty0 ̓R\[foCX(PC ̃j^)̖
  OłAVA|[gł͂܂BDOS ł̖O(COM1 ) I/O A
  hX́uWIȁvΉȉɎ܂(ǎ҂̊F̏ꍇ͈قȂ邩
  ܂)B

              set-                                                 I/O
       DOS   serial        W[ }Ci[   W[ }Ci[ AhX
       COM1  tty00  /dev/ttyS0  4,  64;  /dev/cua0  5,  64         3F8
       COM2  tty01  /dev/ttyS1  4,  65;  /dev/cua1  5,  65         2F8
       COM3  tty02  /dev/ttyS2  4,  66;  /dev/cua2  5,  66         3E8
       COM4  tty03  /dev/ttyS3  4,  67;  /dev/cua3  5,  67         2E8

  SẴfBXgr[V ttyS foCXtĂ͂(ŏII
  p~܂ł cua foCX͂)ł_ɒӂĂB
  ͈ȉ̃R}hsΊm߂܂:

  linux% ls -l /dev/cua*
  linux% ls -l /dev/ttyS*

  7.2.  Link ttySN to /dev/modem ?

  ꕔ̃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ߋɉxc_܂
  B̃N̎gp͂߂ł܂BɁAf_CAC
  pɎgƍlĂꍇɂ́A /dev/modem pƃbNt@C
  삵ȂƂA肪N邩܂Bg
  gĂ悢̂łANKfoCXw悤ɂĂ
  BAN𒣂蒼폜ꍇɂ́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 AhXfoCX܂ލׂb񂠂
  B

  7.4.  /dev fBNgɂfoCX̍쐬@

  foCX݂Ȃ΁Amknod R}hgĂ쐬Ȃ΂
  Ȃł傤BႦ ttyS0 ɑ΂foCX쐬KvƂ
  ܂:

       linux# mknod -m 666 /dev/cua0 c 5 64
       linux# mknod -m 666 /dev/ttyS0 c 4 64

  MAKEDEV XNvggƂł܂B̃XNvg /dev fBN
  gɂ܂B̃XNvggƁAfoCXȒPɍ쐬邱Ƃ
  ł܂BIC}jAĂBႦ ttyS0 ɑ΂f
  oCX쐬Kvꍇɂ́Aȉ̃R}hs܂:

       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̋@\̃Oc
     ܂)

     ̃vÔ͊Ɏg悤ɂȂĂ邩
     BłȂꍇɂ́AVAp\tgEFA
     <http://metalab.unc.edu/pub/Linux/system/serial/> 肵Ă
     B1998 N 6 ̎_ł́AM҂ Linux p̃VA|[gĎv
     Om܂B

  8.2.  荞݂̗Dx̕ύX

  o  irqtune ̓VA|[g̊荞݂̗DxA\コ
     ܂B

  o  n[hfBXÑ`[jOs hdparm ̖ɗł
     B

  8.3.  setserial Ƃ͉?

  8.3.1.  ͂߂

  bvgbv@(PCMCIA)ł͐΂ setserial gȂłB
  setserial ́AVA|[g I/O AhX|[g̃AhXɐݒ肳
  Ă銄荞(IRQ)AgpĂ UART ̎ޓfoCXhCo
  \tgEFAɓ`邱Ƃ\ɂvOłB̃vÓA
  ݃hCoɐݒ肳Ăe̕\s܂BāA(̃Iv
  Vw肳)n[hEFA̒TsƂł܂B

  VA|[g 1  2 Ȃ΁Aʂ setserial gȂ
  Ăݒ肳܂BVA|[gȏ゠ꍇ(܂̓VA
  |[gɖ肪ꍇ)ɂ́Asetserial gKvł傤B
  setserial ̃}jAȊOɂA/usr/doc/setserial.../ Ȃǂɏ
  𒲂ׂĂBg Linux fBXgr[V
  setserial ǂ̂悤ɈĂ邩ɏĂ͂łB

  setserial ͂΂΋NɎIɋNXNvgs
  Bsetserial  serial W[[hĂꍇɂ삵
  Bserial W[ォA[hȂ΂ȂȂȂƁA
  O setserial ōsݒ̓J[lɖY܂(
  /etc/serial.conf ͖Y܂)BāAݒɖ߂߂ɂ
  setserial ĂюsȂ΂Ȃ܂BNXNvgoRł̎s
  Aserial W[[hꂽɂ炩 setserial Ɏ
  ̂s܂BāAʏŋNbZ[W鎞
  setserial  2 xsꂽ悤Ɍ邱Ƃ܂Aۂ 2 x
  sĂ̂łB

  setserial gāA|[gN[Yꂽɓ삵鎞Ԃݒ肷
  邱Ƃł܂(́AC RAM ̃obt@ɂ܂cĂ镶
  Sďo͂邽߂ł)B̐ݒ̓{[[gx(1200 ȉ)ꍇɂ
  KvłB܂ut[vɂEFCgꍇɂ́Ax
  ĂKvƂȂ܂B
  K؂ȃIvV^΁Asetserial (w肳ꂽ I/O AhX)V
  A|[g̒TsƂł܂AI/O AhX̂͐Ȃ
  ΂Ȃ܂BႦ /dev/ttyS2 ̒Ts悤Ɏwꍇ
  ́Asetserial  ttyS2 ƍlĂAhXT܂B
  ttyS2 قȂAhXɂ setserial Ɏw΁Asetserial ͂
  ̃AhXT܂B ``T''B

  setserial ́AVA|[g̃n[hEFÂ̂ IRQ  I/O Ah
  X̐ݒ͍s܂Bn[hEFA̐ݒ́AWp܂̓vO &v
  Cōs܂Bsetserial ɂ́An[hEFAɊɐݒ肳Ă̂Ɠ
  lw肵Ȃ΂Ȃ܂BgƎvAhXɂł
  āA setserial ɋĂ͂܂BAI/O AhX
  Ă邯 IRQ Ȃꍇɂ́Asetserial  IRQ 𒲂ׂ
  Ɏw邱Ƃł܂B

  gp\ȃR}ḧꗗ́APɈ setserial sΕ\
  ܂(̃R}h́Aڍו\s킹 -v ̂悤 1 Iv
  Vł͂܂B̓gu̍ۂɎg܂)B setserial
  ł I/O AhX̂Ƃu|[gvƌĂԓ_ɒӂĂB

  setserial -g /dev/ttyS*

  sƁÃ|[gɊւfoCXhCo̐ݒ󋵂\
  Bڂ\ɂ "-g" IvV "v" ǉ܂BA
  setserial ̓n[hEFAɐݒ肳Ăۂ̒l͕\܂B
  ہAsetserial sđSR I/O AhX IRQ, UART ݒ肷邱
  Ƃł܂Bȍ~ "setserial ..." sƁẢR̒lG
  [bZ[WȂɕ\܂Bsetserial ɂݒ PC ̓d
  ؂Ə̂ŁAʂ Linux N鎞ɎI setserial s
  悤ɂ܂B

  8.3.2.  T

  ̃VAn[hEFAĂ邩ǂ𒲂ׂ邽߂ɂ́A
   I/O AhXmȂ(邢͐肵Ȃ)Ȃ܂(邢
  ̓foCXhCo I/O AhXݒ肳ĂȂ΂Ȃ܂B
  ̒l͑ setserial ȑOɐݒ肵̂ł傤)BIȃn[hEF
  Ǎoꍇɂ́Asetserial  -v IvV(ڍו\)
  autoconfig R}hgĂBo͂ 16550A Ƃ
  UART ̎ނłΐłBt UART ̎ނɂ "unknown" ƕ\
  ꂽꍇɂ́A I/O AhXɂ̓VA|[g͑SȂƎv
  ܂Bꕔ̈̃VA|[g͂܂FȂ̂ŁA"unknown" 
  \ĂɃVA|[g݂邱Ƃ܂B

  UART ̎ނ̎oȊOɂAsetserial  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 setserial sXNvg͕ʂ͒T
  s܂񂪁ATs悤ɕύX邱Ƃł܂B̐߂Ă
  B

  8.3.3.  Linux ̓VAfoCXIɐݒł܂?

  ͂AcBg̃fBXgr[VNɊɐݒ肵Ă
  邩܂BJX^}CYƂł傤Bo
  [W 2.15 O setserial ł͂͗eՂłBN
  setserial st@Cɐsǉ邾łB ``ȑO̐ݒ
  @: XNvg̕ҏW'' ĂBႦ ttyS3 ̏ꍇ́AN
  setserial st@CɈȉ̍sǉ܂:

  /sbin/setserial /dev/ttyS3 auto_irq skip_test autoconfig

  Iɐݒ肵SẴVA|[gɑ΂ĂsĂB
  ۂɃ}Vɑ݂foCXKgĂBꍇɂẮA
  ̓n[hEFÂŐ삵Ȃ̂ŁAIRQ  UART ̎ނ
  肷Ƃ悢ł傤BႦ΁A

       /sbin/setserial /dev/ttyS3 irq 5 uart 16550A  skip_test

  ̂悤ɂ܂B

  o[W 2.15 ȍ~̏ꍇ(g̃fBXgr[VύX
  sĂꍇBRedHat ͍sĂ܂)ɂ́Aŝ͔rI
  Ȃ܂BƂ̂AN setserial st@Cł
  /etc/init.d/setserial ̓[Uݒ肷邽߂̃t@Cł͂Ȃ
  BÕo[WƂ͈āAɗRgĂ܂B

  8.3.4.  N̐ݒ

  J[l serial W[[h鎞(܂́uW[vJ[
  lɑgݍ܂Ăꍇ)ɂ́AttyS{0-3} oAhC
  oɂ IRQ 4  3 ݒ肳܂(n[hEFA̎ۂ̐ݒɊւ炸)B
   setserial sƂ̂悤ɁANbZ[WƂĕ\
  ܂B3 ȏ̃VA|[ggĂƁAIRQ ̏Փ˂NĂ܂
  ܂B

   IRQ  setserial ɋĂՓ˂邽߂(邢
  ͕ʂ̗R̂߂)Asetserial Ăюst@Cǂɂ邩
  ܂B̓VA|[gĝǂ̃vZXOɁAN
  ̍ŏ̃̕XebvŎs܂BہAǎ҂̊F񂪎gĂ
  fBXgr[VłAN setserial vONXN
  vg玩IɎs悤ɐݒ肳Ă邩܂B
  ɂẮA/usr/doc/setserial.../ ɂt@CĂ
  B

  8.3.5.  /etc/serial.conf pVݒ@

  o[W 2.15 O setserial ł́Asetserial ̐ݒ@́AN
   setserial sVFXNvgŕҏW邱ƂłBo
  [W 2.15 (1999 N) ȍ~ setserial ł́ÃVFXNvg
  ҏW邱Ƃ͂ȂȂAݒt@Cł /etc/serial.conf f[^
  ǂݍނ悤ɂȂ܂BɁAserial.conf ҏWt@C
  ͂܂BҏWɁAR}hC炽 setserial Ɠ
  ͂܂B

  ʁAsetserial R}hgĕύXݒ́AVbg_E()
  u[gɐݒt@C(serial.conf)ɕۑ܂Bꂪs
  ̂́Aserial.conf ̍ŏ̍s "###AUTOSAVE###" Ƃsꍇ
  łBsetserial ɎgAł܂삵Ȃꍇɂ́A
  Ŏgݒ肪ĕۑȂ悤ɕύX_ɖ߂̂YȂ
  łBN(ݒt@Cɏ]) setserial s邽߂
  ʏgt@ĆA/etc/init.d/setserial (Debian) 
  /etc/init.d/serial (Redhat) łAʂ͂̃t@CҏWׂ
  ͂܂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Ă
  Bo[W 2.15 ̏ꍇADebian ͎ۑLɂԂŃVXe
  CXg[܂ARedHat 6.0 ł
  /usr/doc/setserial-2.15/rc.serial Ƃt@C邾ŁA
  /etc/init.d/ ɈڂȂ΂Ȃ܂B

  BUG: 1999 N 7 ̎_ł́A###AUTOSAVE### ɗRoO/肪
  ܂B "setserial -G /dev/ttyS?" (?  1, 2, 3, ...)ŕ\
  setserial ̃p[^ۑꂸÃp[^ۑȂƂ
  ̂łB͂ꕔ̃[Uɂe^Ȃł傤BƂ
  ̂AۑȂp[^͂ɂőɎgȂłB
  ̓oOƂĕ񍐂Ă̂ŁA݂͏CĂ邩܂B

  setserial Őݒ肵݂̐ݒVbg_E邱ƂȂݒt@C
  (serial.conf)ɕۑɂ́AVbg_E̎ɒʏs鏈
  ܂B܂A/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" ƂxtĂ
  B

  8.3.6.  ȑO̐ݒ@: XNvg̕ҏW

  setserial ̃o[W 2.15 (1999N)ȌꍇAsetserial ̐ݒ
   /etc/serial.conf ͎g܂BāAN "setserial"
  sĂt@CTAҏWKv܂B̂悤
  t@C݂Ȃ΁AV(܂͋N̏iKɎs
  t@Cɒǉ)Kv܂B̂悤ȃt@CݎgĂ
  ȂA/etc fBNgc[̂ǂɂł傤BAo[
  W 6.0 O RedHat ł͂̃t@C /usr/doc/setserial/ ɒu
  Ă̂ŁAgOɂ /etc c[ɈړKv܂B
  悤ȃt@Cɂ "locate" R}hgƂ悢ł傤B
  ΁A'locate "*serial*" ' ̂悤ɓ͂܂B

  ŒTĂt@C rc.serial, 0setserial (Debian) ƂO
  łB̂悤ȃt@CpӂĂ΁A̒ɂ̓RgAEg
  ꂽwႪĂ͂łB̈ꕔARg
  C邱ƂɂAݒsƂł͂łB setserial
  ւ̃pXƂƁAfoCXƂm߂ĂB
  t@CŎs(PɃX[p[[UƂăt@C͂
  )삷邩ǂׂ邱ƂɂAeXgsƂł
  BeXg͉xċNĐݒɂƑ
  s܂BAR}hC setserial s邱Ƃɂ
  R}hPƂ̃eXgs܂B

  ȑO /etc/rc.d/rc.serial ƂXNvgʂĎgĂ܂
  BDebian  /etc/rc.boot/0setserial gĂ܂BĂ
  /etc/rc.d/rc.local Ƃʂ̃t@CgĂ܂Ãt@C
  ͂܂菉ɂ͎sȂ̂ŁAK؂Ƃ͌܂łBrc.local
  sOɑ̃vZXVA|[gI[v悤Ƃ
  āAVAʐMsƂ肪񍐂܂B

  8.3.7.  IRQ

  ftHgł́AttyS0  ttyS2  IRQ 4 LAttyS0  ttyS3 
  IRQ 3 LĂ܂BȀ藧Ȃ΃VÅ
  荞݂̋L͂ł܂: Ȃ킿 (1) J[l 2.2 ȍ~łA (2)
  荞݂̋LT|[g悤ɃJ[lRpCĂA (3)
  VA|[g荞݂̋LT|[gĂƂłB

  ``荞݂̋Lƃo[W 2.2 ȍ~̃J[l'' B

  ttyS0  ttyS1  2 ̃VA|[ggĂȂꍇɂ͂
  ܂BƂ̂A݂ȂfoCXɂĂ͋L IRQ ̏Փ
  NȂłB

  fǉԂł ttyS0  ttyS1 ̂܂܂ɂȂ΁A
  gp IRQ AVA|[g̗(܂̓fJ[h)
  ݒ肵Asetserial găfoCXhCoɊ蓖ĂȂ΂Ȃ܂
  BIRQ 5 TEhJ[hɎgĂȂ΁AfpɎg
  悢ł傤Bn[hEFA IRQ ݒ肷ɂ́Aisapnp  PnP BIOS,
  邢 Linux  PnP ɂ邽߂̃pb`gKv邩܂
  B]Ă IRQ 𒲂ׂQlƂāA"man setserial" s "IRQ
  11" ȂǂĂ݂ĂB

  8.4.  stty

  8.4.1.  ͂߂

  stty ̓VA|[g̐ݒ̑啔s܂Ȁꍇ̓AvP
  [VvO( getty vO)邽߁A[
  UgKv͂܂肠܂B̃vÓA肪鎞|[g
  ̐ݒɂ͕֗łB[R\[ ``stty -a'' s
  ΃|[g̐ݒ邱Ƃł܂B܂A-a (all) IvVt
   stty s΁AʏƈقȂݒɂȂĂ镔ZXg\
  ܂BVA|[g̒BlɂȂ낤Ƃ̂łȂ΁ASĂ̐ݒ
  oKv͂܂BقƂǂ̓ftHĝ܂܂ővȂ͂
  ŁA1970 N(Aȍ~̊Ԃ͂Ȃɒ܂)ɍ
  ̌Â_[ɑ΂Ăݒ肪KvƂȂ܂B

  setserial ͎ۂ̃VA|[ĝɑ΂āAstty ̓VA
  |[gƉz[(PC j^Ŏg Linux W̃eLXgC^tF[X
  )̗ɑ΂Ďg܂BPC j^ɑ΂ẮAstty ̐ݒ̑
  ӖłB{[[gςĂۂɂ͉ςȂ悤Ɍ
  傤B

  stty ̐ݒƁAx(rbg/b)ApeBArbg/oC
  gAXgbvrbg̐A8 Ԗڂ̃rbg𗎂ƂǂAfVO
  iAt[Au[NMAs}[J[AP[X̕ύXApfB
  OAobt@̍ۂɃr[vȂ炷ǂAGR[AobNOE
  h^XN̒[ւ݂̏ǂA()̒`(ǂ
  L[Ɗ荞݂邩)܂Bڂ stty ̃I
  C}jA info t@CĂBtermios ̃IC}
  jAĂB stty Őݒł̂ƓIvV
  ł܂A(1999 N΂̎_ł) stty ̃IC}jA
  łĂȂ@\܂ł܂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 ɗ
  ܂BIC}jA 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ăVA|[g
  ttyS2 ɑ΂ stty gƍlĂƂ܂B̏ꍇ̓_C
  NgZq < gKv܂BttyS2 ɒ[AŃVF
  삵ĂȂ΁A\̂͊mł͂ȂAݒ肵悤ƂĂ
  ܂Ȃ낤ƂƂŏɒӂĂ܂B̗R𗝉
   ``[ 2 ̃C^tF[X'' B

  ``stty -a < /dev/ttyS2'' s sttyS2 ̐ݒĂB
  ttyS2 ̐ݒsɂZq < g܂BɂāAttyS2 
  stty ւ̕W͂ƂȂ܂BƁAstty vÓut@Cvł
   ttyS2 ւ̃N𓾂邱ƂłAuǂݎvƂł
  BA ttyS2 ɑꂽoCgf[^𕁒ʂɊ҂ʂɓǂ
  ̂ł͂ȂA|[g̓ǂݎύXł悤ɁÃNg
  ă|[g̐ݒ܂B ``stty ... > /dev/ttyS2'' gĒ[
  ݒ肵悤Ƃl܂Ał͐ݒł܂B̏ꍇ͐ݒ
  sꂸɁAgĂ[ (Ⴆ tty1)ɑ΂ stty R}hŕʂ
  \郁bZ[WAꂪ ttyS2 ɑ܂BAttyS2
  ̐ݒ͑Sς܂B

  _CNVZqɂ͕ʂ̖܂Bstty gƂƎ
  XAR}hnOANȂƂ܂(^[L[
  ĂÃR}h̃vvgoȂ)B͑|[gh
  ܂߂łA̓f̂ꂩIɂȂ̂|[g
  ҂Ă邽߂ɋN܂BႦ΁Af𖳎悤
  "clocal" ݒ肵ĂȂꍇACD MIɂȂȂ΃|[g̓I[
  vł܂񂵁Astty ̓|[gɑ΂ē삵܂Bl̏󋵂́An
  [hEFAt[łN悤łBIɂȂKv铱|[
  gɌqP[uɂȂ΁AnÔhȒPȕ@͂܂
  B

  ̂悤ȃnOh@̈́AƂItłĂ|[g
  Iɓ삳vOÃ|[gŎgƂłBƑ
  ̃vÓA̐|[gI[v邽߂ɐKvȂȂ
  悤Ƀ|[gݒł܂: Ȃ킿 clocal ܂ -crtscts ݒ肵
  B"minicom" gĂsɂ́Aʂ ttyS ɍ킹 minicom
  Đݒ肵Aꂩ minicom ̏IƍĎssȂ΂Ȃ܂B
  ̌Ă minicom Đݒ肵Ȃ΂ȂȂ̂ŁAP PC ċN
  邾̕ȒP܂B

  o[W 1.17 (1999 N΂̎_ł܂[XĂ܂)ȍ~
  ł́A_CNV(<)gKv͂͂ȂȂ ``stty
  ... -F /dev/ttyS2'' (܂ -F ̑ --file)g܂B
  |[gIɃI[vA_CNVɊւԖڂ̖
  ł͂ł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^͏IA[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<^[>ƏĂ܂܂BÂ[
  (_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 sane
  <dev/ttyS1" sƂ܂傤BƂ낪A̕@͎g܂! 
  񕅂Ă܂[ "stty sane ..." ݂̓͂邱Ƃ͂ł
  ܂A͂邱Ƃ͂ł܂BĽۂ̓_[
  ͂ȂAPC j^Ŏgz[AX ̒[EBhEɂĂ͂
  ܂B΁A Linux gقƂǑSĂ̐lɓĂ͂܂
  ܂BK^ȂƂɁAstty NɎst@C̓VF삵
  Ȃ[(邢͒[qĂȂVA|[g)̂Ŗ
  ͂܂B

  8.4.4.  ǂ stty R}hu?

  Rs[^Nx stty ɃVAC^tF[Xݒ肳K
  vAăRs[^N(Linux N)xɎs
  t@C stty R}hĂKv܂B̃t@C
  VA|[gg(|[gɂ getty ̎s܂݂܂)OɎ
  sȂ΂Ȃ܂BuƂłꏊ͂񂠂
  B̏ꏊɂûɁȀꏊ̂̈mȂ
  (oĂȂ)Փ˂NĂ܂ł傤BāAݒ肵
  Ƃ͋L^Ă܂傤B

  stty R}huꏊ̈́AVXeN鎞 setserial 
  st@C̓łB̏ꏊ̓fBXgr[Vo[W
  ƂɈقȂ܂B჌x̏ɍs悤ɂ邽߁A
  setserial ̌ɒûǂł傤BuĂt@CNɑS
  ĎsfBNg(System V Init)  /etc fBNgc[̉
  ɂ΁A"stty" ƂÕt@C stty R}hs
  Ɨǂł傤B

  8.5.  isapnp Ƃ͉?

  isapnp ́Af܂߂ ISA oXp̃vO&vC (PnP)foCX
  ݒ肷邽߂̃vOłB̃vO "isapnptools" ƌĂ
  pbP[Wɑ̃vO("pnpdump")ƈꏏɓĂ
  B"pnpdump" ͑SĂ ISA PnP foCXSČÃfoCX
  ݒ肷IvVo͂܂B̏o͂́APnP ̐ݒt@Cł
  /etc/isapnp.conf ɒǉł`łBRs[^̋Nɖs
  AISA PnP foCXݒł悤ɁAisapnp R}h̓VXe
  Nt@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Ă܂Bx̒Pʂ̓rb
  g/b(邢̓{[)łBx "stty" R}h܂̓VA|[g
  gvOŐݒ肵܂B ``stty'' B

  9.1.  \ɑxݒł܂

  n[hEFAT|[gĂő呬xmKv܂B1998 N
  ̎_ł́AقƂǂ̃n[hEFA 115.2k bps ܂ł̑xT|[g
  Ă܂B 56k f 230.4k bps T|[gĂ
  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̍ő呬xZAx
  xƂȂ܂( 1 ̏ꍇ͖炩ɁAn[hEFAɍő呬
  xœ삷悤߂܂)B

  ʂ(ʐMvO stty )x 115.2k Ɏw肷ƁAVAh
  Co̓|[g̃n[hEFAɏ 1 ݒ肵܂B͖炩ɍō
  x̐ݒłBg̃n[hEFA̍ōxႦ΂܂ 230.4k
  Ȃ΁A115.2k w肵̏ 1 ł邽߁Aۂ̑x 230.4k
  ɂȂ܂Bɂݒ肵x̔{̑xɂȂ܂BہAǂȑ
  xw肵Ăۂ̑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.5k ɂꍇɏƂ 1 gAݒ肵̂Ɠ
  x܂B肪܂: (1999 N΂̎_ł)stty ⑽
  ̒ʐMvO͍ő呬x̐ݒl 115.2k łA230.4k ݒ
  邱ƂłȂ̂łBāÂ悤ȏꍇ̈̉@
  ́A setserial ł͉ύXAۂ̑x͐ݒ肵x 2 {ł
  ƂŊoĂƂłB

  ܂}VƂ͌܂񂪁Aʂ̉܂B̕@gɂ́A
  (setserial g) baud_base ln[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̂܂܂ɂĂAxݒ肷鎞ɂ͎ۂ͏
  ݒ肵ĂȂƍl̂łBĎۂ̑x͏ɁAVAh
  Coݒ肵ōő呬xlƂȂ܂B ``n[hEFAɑ
  xݒ肷@:  baud_base l'' B

  9.1.3.  U̎g̓{[[gł͂܂

  baud_base l̐ݒ͕ʁAn[hEFA̐U̎g肸
  Ⴂ_ɒӂĂBƂ̂AU̎g̓n[hEFA
   16 ŊAۂ̍ōxƂȂ邱ƂłBU
  g̕Ȃ΂ȂȂŔÂ悤ɎgȂ΁A
  erbg 1  0 ł邩߂邽߂̃Tv邱Ƃ
  邩łB

  9.2.  VÃX[vbǧ

  (E)IDE ̃n[hfBXNgĂVXełAX[vbg
  ăVA|[gI[o[ꍇ hdparm ĂB
   (E)IDE ̃p[^(fBXN IRQ sĂԂ͑ IRQ
  A}XN铙)ύX\ɂ郆[eBeBłB̃[eB
  eBgƉǂȂăI[o[𖳂̂ɖ𗧂ł傤B
  AIC}jA͕K悭ǂłBƂ̂Aꕔ
  hCuƃRg[̑gł͂̃[eBeB܂삹A
  t@CVXe󂵂Ă܂ȂłB

  irqtune ƌĂ΂郆[eBeBĂB̓foCX(Ⴆ
  ΃fqĂVA|[g) IRQ ̗DxύX郆[eB
  eBłBɂAg̃VXẽVA|[g̃X[vbg
  シ邩܂Birqtune  FAQ 
  http://www.best.com/~cae/irqtune <http://www.best.com/~cae/irqtune> 
  ܂B

  10.  ʐMvOƃ[eBeB

  10.1.  \tgEFÄꗗ

  ȉɒʐMvOЉ܂Bg̃fBXgr[V
  ɕtĂȂ΁AFTP œ肷邱Ƃł܂B

  o  ecu - ʐMvO

  o  C-Kermit <http://www.columbia.edu/kermit/> - ڐAAXNv
     gLqłAt@C]EWϊE zmodem ɑΉĂV
     AETCP/IP p̒ʐMvOB

  o  minicom - telix ɎʐMvO

  o  procomm - procomm Ɏ zmodem ΉʐMvO

  o  seyon - X x[X̒ʐMvO

  o  xc - xcomm ʐMpbP[W

  o  term  SLiRP ́AVFAJEgg TCP/IP @\񋟂
     B

  o  screen ̓}`ZbVvOłB͉zR\[̂悤
     ɓ삵܂B

  o  callback gƁA[gfɓdbÃ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ɂZLeB@
     \At@bNXA[{bNX܂B

  o  SLIP  PPP Ɋ֘A\tgEFA
      ftp://metalab.unc.edu/pub/Linux/system/network/serial œł
     B

  10.2.  kermit  zmodem

  kermit  zmodem gɂ́A.kermrc Ɉȉ̋Lqǉ܂:

       define rz !rz < /dev/ttyS3 > /dev/ttyS3
       define sz !sz \%0 > /dev/ttyS3 < /dev/ttyS3

  fڑĂ鐳|[gKw肵ĂBzmodem g
  ɂ́Akermit ̃vvgŒP rz ܂ sz <filename> Ɠ͂Ă
  B

  11.  VAɊւ邿ƂeNjbNȂ

  ɗƎvVA֘ÂƂeNjbNЉ܂B

  11.1.  ChCo

  eLXg[ł EIA-232 ͏\łAP[uZ
  邱Ƃ͂悭܂B̖͕t^`Zpɂ܂BeLX
  g[ŕt^`s߂̈ʓIȕ@́AVA 2 ̃
  ChCoCXg[āA񕽍t^畽t^ւ̕ϊ(ыt
  )sƂłB͓ȋ@łAVƂȂƍ
  傤B

  11.2.  וiƂĒmĂn[hEFA

  11.2.1.  ̃rfI{[hŋN I/O AhX̏Փ˂@

  IBM 8514 {[h(Ȃ) I/O AhX͐MȂƂ 0x?2e8 (? 
  2, 4, 8, 9 ̂ꂩ)łBVA|[gAhXWJ鎞 16
  il̐擪 0 ł錅𖳎(̃VA|[g͂̂悤ɓ
  ܂)ꍇɂ́A 0x2e8 ɂ ttyS3  I/O AhXƏՓ˂
  (VA|[g܂݌vĂΏՓ˂Ȃ͂ł)B
  ̃AhX ttyS3 gƂĂlɂ͈m点łBƂ͕
  ̖ Linux  ttyS3 ɂfoł܂񂪁Asetserial
  gẴAhX ttyS3 u΁Af͂܂삷ł
  B

  11.2.2.  AMD Elan SC400 CPU (PC-on-a-chip) ł̖

  ͊荞݂ UART ̏ԃWX^ƂłBUART 
  gX~b^oCgf[^̑MIAUART ̑Mobt@ɂ
  Ɗ荞݂s܂(Ď̃oCgf[^҂܂)B
  UART ̏ԃWX^͂̍XVx́Aꂪ\fقǑ
  B̌ʁA荞݃T[rX[`ȃ`FbNsƁA
  NĂȂ(Ԉ)f܂BāAɓ]ׂoCg
  f[^̓VA|[gɑꂸAUART ̃gX~b^͓͂Ƃ̂
  oCgf[^҂邱ƂɂȂ܂B荞݃T[rX
  WX^`FbN܂ł̑҂Ԃ΁Aۂ̏Ԃ
  fASĂ܂s͂Ȃ̂łcB

  VAhCoɃpb`𓖂Ă邱ƂɂA̖悤Ƃ
  Ă܂BA׃n[hEFAɑΉ邽߂ Linux Ƀpb
  `𓖂Ăׂł傤? Ȃn[hEFAł̐\邩
  Ȃ̂ɁB

  11.3.  bNt@CƂ͉ł?

  bNt@C͒PɁÃfoCXgpł邱Ƃt@C
  B̃t@C /var/lock ɒu܂BȑO /usr/spool/uucp ɒu
  Ă܂BLinux ł́AbNt@C̖O LCK..name ̂悤
  Ȃ܂B name ̓foCXAUUCP ̃TCgłBvZ
  X̃bNt@CƁÃfoCXɔrIɃANZXł
  ɂȂ܂BႦ΁Afgă_CAAEgsƁANf
  ɎgĂ邱ƂbNt@C̃vZXɓ`܂BbN
  t@C̓e͎ɁAfoCXbNĂvZX ID łBق
  ǂ̃vO̓bNt@CQƂAvZXe[uẴf
  oCXbNĂ邻̃vZX𒲂ׂ邱ƂɂÃbN܂
  Lǂ𒲂ׂ悤Ƃ܂BbNt@CLł邱Ƃ
  ΁ÃvO͏I܂(I͂ł)BbNȂ΁A
  ȃbNt@C폜ẴfoCXgAVƎ̃bN
  t@CvO܂BPɂ̃foCXgpłƕ\
  ďIvO܂B

  Iɂ͓VA|[gقȂ 2 ̖O(: ttyS0 
  cua0)Ă邽߂ɖ肪N邱Ƃ܂BbN`FbN
  \tgEFA ttyS  bua 𒲂ׂ܂Acua gȂƂɂ
  ̓_Ɋւb͊ȒPɂȂ܂BȊOɂAfoCXɕ̖
  Ot邱ƂNƂȂ܂B

  12.  guV[eBO

  fсAfɑ΂ėp getty ɊւẮAModem-HOWTO ̃g
  uV[eBȌ͂B

  12.1.  VA̓dCIȐffs

  12.1.1.  pRlN^̏

  [Ȃ΃eX^(dvƂĎg܂)Ώ\ł傤
  AVA|[g̔z𒲂ׂ邽߂̊ȒPȓ܂B̒
  ɂ́upRlN^(breakout)vƌĂ΂̂܂Bubreakoutv
  t́AP[uoƂӖłB̂悤ȏ
  ɂ 2 RlN^tĂAVAP[uq悤ɂȂĂ
  Bdvq[qĂ̂܂B̃fI
  ɂȂĂƓ_ LED vĂ̂܂BCӂ
  Ɛڑł悤ɃWpĂ̂܂BXCb`
  Ă̂܂B

  Radio Shack ̓d퉮ŁuRS-232 Troubleshooterv܂uRS-232 e
  X^v𔄂Ă܂(1998 N)B TD, RD, RTS, CTS, DTR, DSR 
  `FbN܂B΂̃v̓I(+12 V)\AԂ̃v̓It(-12
  V)\܂B̓Xł́uRS-232 VAWp{bNXvƂA
  sRɑIׂ鑕uĂ܂B

  12.1.2.  d̑

  ǂȓdveX^(10 hŔĂ悤Ȉ)ł܂g
  ͂łBȊO̊mF@̓gbL[ɂȂ܂BR𒼗Ɍq
  LED ɂdȂALED gĂ͂܂B 20 mA 
  LED ł 470 ̒RgĂ(SĂ LED  20 mA Ƃ͌
  ܂)BLED ͌܂ɐłȂ̂ŁA+  - ̓d𒲂ׂ
  Ƃł܂BIɉH邱̂悤ȏN܂
  ? _v[ugƂƁA󂵂Ă܂܂B
  ̂ATTL z肵Ăd͂ 5 V łB12 V ̔M
  dĝ͂߂ł傤Bdł͋ɐ͂킩܂
  AUART ̏o͓d͌Ă邽߁AԂ邱ƂȂł
  B

  X̃RlN^̓d𑪒肷ɂ́AȂy[p[Nbv𒲂ׂ
  ɍނƂ悢ł傤By[p[Nbv̒a̓s͂
  Ȃ̂ŁAڐG邱Ƃ͂܂Bڑ邽߂ɂ́AjN
  bv()Ńy[p[Nbv݂܂傤B

  12.1.3.  d𖡂Ă݂

  eXgɎgAdCVbN󂯂(d)o傪
  ΁AŌ̎iƂēd𖡂키Ƃ@܂Bׂ铱
  Ȃ߂Oɂ́AdĂȂƂm߂܂傤B̓
  ()ŐGAVbN󂯂邩ǂmF܂BVbN
  ȂΐڐG̔Ȃ߂ĔG炵AĂѓɐGĂ݂܂傤B
  VbN󂯂΁AȂ߂Ă݂C͂ƂȂȂł傤B

  12 V 𒲂ׂɂ́AwȂ߂āA̎wŒׂ铱܂݂܂B
  āAʂ̓ɐŐG܂BŐGꂽɐ̓dĂ΁A
  ͂Ƃł傤BǂȖ邩OĒmĂ
  ΁Ad̓drȂ߂Ă݂Ƃł傤B

  12.2.  VA|[g̊ĎƐff

  fĎA̓d(1)ł邩(0)ł邩 Linux
  p̃vO܂B ``VA|[g̊Ď/ffp̃v
  O'' ̏͂B

  12.3.  ȉ̐߂ Serial-HOWTO ɂ Modem-HOWTOs ɂ܂:

  12.4.  Iɂ̓VA|[ĝɁAo܂

  foCX(fȂ)VA|[gœ삵ĂȂA|[go
  Ă̂͊ԈႢ܂B܂삵Ȃ̂ł΁AVA
  |[gołĂ邱Ƃm߂Kv܂B

  BIOS ̃j[Əo̓bZ[WmF܂傤BISA oX PnP V
  A|[g̏ꍇɂ́A"pnpdump --dumpregs" A Plug-and-Play-
  HOWTO ɂȂĂBPCI oX̏ꍇɂ lspci R}hg
  ĂBsetserial gĒTsĂ悢ł傤B``T''̐
  QƂĂBVA|[gɃf[^ĂȂ悤ł
  ΁AVA|[g͂Ă荞݂ԈĂ邩܂B
  ``̏Ȃx: eLXgxĂʂɕ\܂''
  ̐߂B

  12.5.  ̏Ȃx: eLXgxĂʂɕ\
  

  ͊荞݂̐ݒ肪ԈĂ邩AՓ˂Ă邽߂ł傤B߂
  f[Av^gƂƂɏo悤Ȍۂ
  ܂BꍇɂẮA͂boȂƕ\Ȃ
  ܂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͊荞݂ł͂Ȃ|[
  Og悤ɂȂ܂BŁuxv肪悤ł΁A
  荞݂̖肪NĂ܂BȀꍇł荞݂̖
  ׂłBȂȂA|[O̓Rs[^̎ʂɏAX
  [vbgIɒቺ邩łB

  荞݂̏Փ˂̂͗eՂł͂Ȃ܂BƂ̂A
  Linux ͊荞݂̏Փ˂SAՓ˂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 ݒ\tgEFAg
  āAn[hEFAɎۂɐݒ肳Ă𒲂ׂ邱ƂłBPnP ̏ꍇ
  ɂ́A"pnpdump --dumpregs" ܂ "lspci" s܂傤B
  āALinux ("setserial" )lĂn[hEFA̐ݒƂ̌ʂ
  ׂĂB

  12.6.  Ȃx:  2A3 {͑͂Ȃ̂ł

  l闝R̈́AVA|[ggĂfoCX(f[
  Av^)AȂlĂقǑ삵ĂȂƂłB

  lʂ̗ŔAȂgĂVA|[gÂ (UART
  8250, 16450 ⏉ 16550)ƃVAhCoFĂ邱Ƃ
  B``UART Ƃ͉ł?''QƂA "setserial -g /dev/ttyS*" g
  ĂB̌ʂƂ 16550A 萫\悭Ȃ UART \ꂽ
  A͑ݒ̖łB̏ꍇ́A"setserial" ̐ݒɖ肪
  ΁AύX܂Bڂ ``setserial Ƃ͉?''Ă
  BR̂ƂłAۂ͌ÂVA|[ggĂ̂
  setserial ܂ƂĂAPɎԂ邾łB

  12.7.  VXeN̉ʂŁAVA|[g IRQ ԈĂƕ\
  ܂

  Linux J[l̓VXe̋N IRQ ̌o͑Ss܂B serial
  W[[hꂽɁAVAfoCX̌os邾
  BāAJ[l IRQ Ɋւčs\͖ĂB
  ȂA̎_ł͕W IRQ ߑłĂ邩łB̂悤
  ȂĂ̂́AIRQ o͓ĂɂȂ炸AԈႤƂ邩łB
   setserial NXNvgsꂽꍇɂ́Asetserial  IRQ
  ύXAV(đ)Ԃ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

  12.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ǂݏłȂ΂Ȃ܂BANZX𓾂@
  ƂẮAO[vp[~bVĂuO[vvɏ
  ƕGȂ̂܂B

  12.9.  ttyS? ɂ "Operation not supported by device" ƂG[
  o

  ̃G[́AJ[lT|[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ĂȂ̂ɁÃW[͂
  [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

  12.10.  "Cannot create lockfile. Sorry" (G[bZ[W)

  炩̃vO|[guI[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}hgďC܂BA"lock" fBNg
  Ȃ΁AɃbNt@C邱Ƃ͂ł܂BbNt@C
  ɊւAڂɂĂ ``bNt@CƂ͉ł?''̐
  B

  12.11.  "Device /dev/ttyS? is locked." (foCX /dev/ttyS? bN
  Ă܂)

  ̃bZ[Woꍇɂ͂炭AN̐l(邢͑̃vZ
  X)VA|[ggĂ܂B̃|[gugpṽvZX
  @͂܂B̕@́AbNt@C
  (/var/lock/LCK...)̒g邱ƂłB́A|[ggĂv
  ZX ID ̂͂łBvZX ID  Ⴆ 261 Ȃ΁A"ps 261" 
  sAꂪ𒲂ׂ܂傤BāÃvZXsvł΁A
  "kill 261" ŗD kill Ăł傤BŏIȂȂA
  "kill -9 261" sċI kill ĂBȀꍇ
  ̓bNt@CꂸɎĉŁAŏKvł傤B
  A261 ̂悤ȃvZX݂ȂΒPɃbNt@CĂ
  ܂܂BAbNt@CvZX ID (261 )ł
  ΁Ȁꍇ̃bNt@C͎Iɍ폜͂łB

  12.12.  "/dev/ttyS?: Device or resource busy"

  ``resource busy'' ͑̏ꍇA(ttyS2 ̏ꍇ)ũfoCX ttyS2
  ̊荞݂gpȂ̂ŁAttyS2 gƂ͂ł܂vƂӖ
  B "setserial" ̐ݒɂ銄荞݂̏Փ˂̉\l܂B
  ̃G[bZ[WƐmɌƁAuttyS2 g܂
  Bsetserial ̃f[^ÃfoCX ttyS2 ̊荞݂gĂ
  ƎĂ܂vƂȂł傤B

  āA\ 2 ܂BۂɊ荞݂Փ˂ĂĂ
  悤ƂĂꍇłBAsetserial ̐ݒ肪ԈĂƁA
  setserial ԈďՓ˂\ĂȂAttyS2 gȂR͂
  ł傤BłׂƂ́AttyS2 gĂ setserial l
  Ă銄荞ݔԍÑbZ[WĒׂ邱Ƃł("setserial"
   "device busy" G[ôŎg܂)BꂩÃfoC
  X̊荞݂gĂȂǂƁA񍐂ꂽ荞݂n[h
  EFA̐ݒƓǂ`FbN܂B

  12.13.  guΏ̂߂̃c[

  guɑΏ鎞ɎgƂ悢vO܂:

  o  "lsof /dev/ttyS*" ɂAI[vĂVA|[gXg
     \܂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̊eM(DTR, CTS Ȃ)
     ݂̏Ԃ\܂B

  o  "irqtune" g΁AVA|[g̊荞݂̗DxグĐ\
     コ邱Ƃł܂B

  o  n[hfBXÑ`[jOs "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

  13.  荞݂̖Ɋւڂ

  ``guV[eBO''̏͂ł͏Ǐʂɖ_Ă܂A
  ͂ł͊荞݂̐ݒĂꍇɉN̂܂B
  ͂́ȀǏN̂Aő̂ǂȏǏ󂪏ôA
  ɂǂΏׂȂ̂𗝉鏕ɂȂł傤B

  13.1.  荞݂̎ނ̖

  "setserial" vÓAVAhColĂ銄荞݂̐ݒ
  \܂BVAhCo( setserial)Ă΁A
  荞݂Ɋւ邱Ƃ͑SĂ܂s͂łBAfoCXɑΉ
   /dev/ttyS t@C݂͑Ȃ΂Ȃ܂񂵁AvO&vC(
  ̓Wp)Ńn[hEFAɃAhX IRQ ݒ肵ĂȂ΂Ȃ
  BLinux ͊荞݂̏Փ˂mĂċ邱Ƃ͂Ȃ̂ŁAՓ˂
  N悤Ȑݒ݂ "Device or resource busy" ƂG[b
  Z[W\܂B

  荞݂Փ˂悤ƂƃJ[l͊荞݂̏Փ˂悤Ƃ
  "resource busy" bZ[Wo܂A荞݂͂ǂċN̂
  傤? ȒPłB "setserial" ̐ݒ͊ԈĂ邱ƂAn[
  hEFA̐ݒɊÂčlƎۂɂ͏Փ˂鎞ɂł "setserial"
  ͏Փ˂ȂƊԈė\邱Ƃ܂B̂悤ȏꍇA"...
  busy" ƂbZ[W͏o܂񂪁A\Ȃ܂B 2 
  foCX荞ݐM𓯂Mɑ̂ŁACPU ͊荞݂ 1
  ̃foCX炵ĂȂƊԈĔf܂BɂĂ͈ȍ~
  ̐߂ŏڂ܂B

  2 ̃foCXɓ IRQ 蓖ĂĂAǂ̃foCXgĂ
  Ȃ Linux ͕܂Bꂼ̃foCX͊Jn()
  ۂɁALinux Ƀn[hEFA荞݂g߂܂BLinux ͂ǂ̊
  荞݂ǂ̃foCXɊ蓖ĂĂ邩ǗĂ̂ŁÅ
  ݂ɎgĂƁA"... busy" ̃G[bZ[Wo͂邱
  ƂɂȂ܂BāA2 ̃foCX IRQ gĂĂA 1
  ̃foCXgȂ΁A͂܂BA(ŏ̃f
  oCXI)̃foCXgƂƁA"... busy" ̃G[
  bZ[Wo邱ƂɂȂ܂B

  13.2.  荞݂̌ݒՓ˂ŋNǏ

  NǏ́Aŋ߂ FIFO obt@ĂVA|[ggĂ
  邩ǂA邢 FIFO obt@ȂÂVA|[gg
  邩ǂŕςĂ܂BÂVA|[gŋNǏ𗝉
  Ƃ͏dvłBȂȂAƂVVA|[gŋN邱Ƃ
  X悤łB

  ÂVA|[g̏ꍇɂ́AbƂ 1 ʉ߂ł܂B
  ͔ɒx̂ŁAقƂǓ삵ĂȂ悤Ɍ܂(ɁA󔒕
  sȂǂ̌Ȃʉ߂ꍇ)BFIFO obt@V
  VA|[g̏ꍇɂ́Ab̊Ԃ 16 ܂łĂ̂
  ł傤B

  |[gɃfqĂēdbԍ_CAĂACONNECT bZ[
  WʂȂ߁AڑĂȂ悤Ɍ܂BƑ҂Ă
  ڑAOCbZ[W(邢̗͂)̈ꕔŏIIɕ\邩
  ܂Bڑ̂Ȃ̉xāA葤߂Đڑ
  ؂Ă܂A"NO CARRIER" bZ[Wo邩܂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邩
  ܂BNĂ邩ƂƁAFIFO  1 oCgێł
  Ȃ悤ɓ삵Ă̂łB͂ "at"  FIFO I[o[
  Aǂ̕Ă܂܂BA΂炭҂Ă߂ɍ
   <enter> ͒ʂAJ[\ 1 s邱ƂɂāǍ
  uvƂɂȂ܂B1 ͂Ă 10 b҂Ă΁A
  ʂɃGR[obN͂łBȂłĂ鑬x 1
  ԓ 1 P菭Ȃ΁Ałvł傤 :-)

  13.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ɂ|[Og@̂łB̕@͊荞
  ݂KvƂ܂B|[OƂ́AfoCXhCoXVA|[
  g𒲂ׂāAKvƂĂ邩ǂ(Ⴆ΁AMobt@荞
  ޕKvoCgf[^݂邩ǂ)@łB荞݂
  gȂ΁AVAhCo͂̃|[O@ŏIIɎg܂B
  Ã|[O@͊荞݂̕ςɎg߂̂̂ł͂܂
  B|[O͒x̂ŁApIł͂܂񂵁Aobt@I[o[
  NƂ邩łB|[O̖ړÍA荞݂ 1 
  Ȃ邩A삪ȂƂɁAJԂs킹邱
  Ǝv܂B荞݂sƂۂɂ֗łB

  16 oCg̑Mobt@̏ꍇɂ́A16 oCg]ƁA 16 o
  CgOɂ́Ã|[O(b)N܂ő҂
  BāA]͔ɒxA܂א؂ɂȂ܂BMxȂ
  ܂BȂȂAMobt@󂯎oCgf[^́A|[Os
  ܂ł̐bԂ̓obt@ɗ܂邩łB

  ͂\܂łɔɎԂ̂́AꂪRłB
  Ⴆ΁uATvƂfɑƁAuATv̓VA|[go
  fɑ܂Bf̓VA|[gʂāuATvXN[
  GR[obN܂B̂悤ɁAuATvƂ̓VA|[g 2
  ʂȂ΂Ȃ܂Bʂ͂̓삪ɍȂ̂ŁAL[{[h
  œ͂̂ƓɁuATvƂ񂪕\悤Ɍ܂B|[
  Ô߂ɃVA|[gxꍇɂ́A͉͂b҂
  ƕ\܂B

  16 oCg̎Mobt@̃I[o[ɂĂ͂ǂł傤? 
  OtfgĂꍇɋN܂BƂ̂Af̓VA
  |[gɍɃf[^𑗂邾Ȃ̂ŁA16 oCg̃obt@I[o[
  Ă܂܂Bf̏ꍇɂ̓VA|[g̓fƓ
  J[hɂ̂ŁAMoCgf[^̎Mobt@ɓO
  Ƀobt@ɋ󂫂邩ǂ`FbN܂B̏ꍇɂ́A
  Mobt@I[o[邱Ƃ͂܂񂪁AeLXg 16 oCg
  ܂Ƃ܂育Ƃɐb̊Ԋuuĕ\܂B

  OtfłĂI[o[NȂƂ܂B
  (16 ȉ)ĂȂꍇɂ̓I[o[͋N܂B
  obt@ɂ͑Aꂾ̋󂫂邩łB葽oC
  gf瑗낤ƂƁAʂł̓I[o[N܂B
  A^C~Oǂ΃I[o[Ȃ 16 oCg(Ԗ)ȏオ
  ʂ邱Ƃ܂BႦ 32 oCgOtP[u|[gɈC
  ꂽꍇlĂ݂܂傤BO 16 oCgɃ|[O
  N邩ꂸȀꍇ͑O 16 oCg܂󂯎܂B
  Ǝ 16 oCg܂łɂ͋󂫎Ԃł傤A32 rbgŜ
  ܂ʂ܂B̃ViIʂɂȂ邱Ƃ͂܂肠܂񂪁Al
  ɂ 17 oCg 31 oCgʂ邱Ƃ͂ƍ\ŋN
  ܂BAf[^𗎂ƂȂ 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Ƃ̂As͉ʂɈ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̒xg悤ɂ͂ȂĂ܂BāA
  VA|[g⃂f̐ݒ~XȂǂ̑SĂ̎ނ̌肪NĂ\
  ܂Bڑmƃ~X𖾂炩ɂłȂ܂B
  OC邽߂ɃXNvggĂꍇɂ́A|[O̒x̂
  ɃOC(^CAEgɂ)s邩܂B

  13.4.  荞݂̏Փ

  2 ̃foCX IRQ ԍgĂƁA͊荞݂L
  ƌ܂BɂẮA̋L͂܂삵܂Bo[W
   2.2 ȍ~̃J[lł́AꍇɂẮAVA|[g͑̃VA
  |[gƊ荞݂L邱Ƃł܂BPCI oX̃foCX
  ́APCI oX̑̃foCX IRQ L邱Ƃł܂BȊO
  ŏՓ˂̉\ꍇłA IRQ 𓯎ɁugvfoCXȂ
  ΁A͋NȂ͂łBmɏƁAugvƂ(vO}p
  )uI[vvƂӖłBȏ̗OƁA(荞݋L
  \ɂȃ\tgEFAƃn[hEFAgȂ)L͋
  Ă炸ALsƂƏՓ˂N܂B

  IRQ Փ˂Ă 2 ̃vZXɎsꂽꍇłĂA
  ̃foCX̊荞݂foCXhCoɕߑA炾͂܂
  삷邱Ƃ悭܂B̃foCX̊荞݂͐hCo
  ߑȂ̂ŁA荞݂̐ݒ~X鎞̃vZXƂ傤Ǔ
  ɓ삷ł傤Bڂ ``荞݂̐ݒ~X'' ̏͂
  B

  13.5.  荞݂̖̉

  L̂悤ɉɒxꍇ̃eXg@̈́AIRQ  0 ɕύX
  (荞݂̑ɍȃ|[Op)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|[ggĂ邩𒲂ׂĂBsetserial ɊԈ
   IRQ ݒ肳Ă^ꍇɂ́A ``VA|[ǧ݂
  I/O AhX IRQ ̐ݒ?''  ̐߂ĂB

  14.  UART Ƃ͉ł?  \ɂǂ̂悤ȉe^̂ł傤?

  14.1.  UARTS 

  (̐߂ Modem-HOWTO ɂ܂B) UART (Universal Asynchronous
  Receiver Transmitter) Ƃ́APC ̃}U[{[h(邢͓fJ[
  h)ɍڂĂVAp`bv̂ƂłBUART ̋@\́A̗pr
  `bvpŎĂ邱Ƃ܂B 486 }V̂悤Ȍ
  Rs[^ł́Ã`bv̓fBXN I/O Rg[J[hɍڂ
  Ă܂BrIÂRs[^̒ɂ́A܂p̃VA{[h
  ڂĂ̂܂B

  UART ̖ړÍAPC ̃poXĂoCgf[^VA
  rbgXg[ɕϊ邱ƂłBVA|[goĂP[u
  ̓f[^VAɑ悤ɂȂĂAf[^ꂼ
   1 ܂BVA|[g͈x 1 rbgrb
  gXg[𑗂܂BtɁAOtP[uoRăVA|[g
  ĂrbgXg[́ARs[^łpȃoCg
  f[^ɕϊ܂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 ł́AMs UART rbgSĎ󂯎
  A(p)oCgf[^ɕAobt@ɓ܂B

  VAƃp̕ϊɉāAUART ͎ȏ̕Y(p)Ƃ
  đ̏s܂Brbg\߂Ɏgdϊ(ύX)
  ܂BoCgf[^MOɂꂼ̃oCgɑ΂Ēǉ
  rbg(X^[grbgƃXgbvrbg)܂Bڂ
  Serial-HOWTO ``d̔g`''̐߂ĂB܂ARs[^
  ̃poX̃t[[g(oCg/b)͔ɍłAVA
  |[g UART ot[[g͂ƒxłBUART
  ͂̌߂ꂽt[[g(x)̑gĂāAVA
  |[gC^tF[XŎgƂł܂B

  14.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, 16950)̓𗝉̂eՂ
  B

  16550 ɂĂ͕킵_܂Bfɂ̓oO
  A(FIFO Ȃ)16450 ƂĂ삵܂BoOC
  ꂽŋ߂̃fɂ 16550A ƂOtĂ܂Ã[J[
  ͖OύXĂ炸A16550 ƌĂёĂ܂BݎgĂ
  16550 ̑啔 16550 ̂悤łBn[hEFÃ}jA 16550 
  ƏĂĂ(邢̓xɂ̂悤ɍ󂳂Ă
  )ALinux  16550A łƔFĂ܂Bl̎ 16650 ɂ
  ܂(̕[łBƂ̂Abł̓[J[oO
  F߂Ȃł)BLinux ͍ŋ߂ 16650  16650V2 ƂĔF
  ܂B16650 ƔFꂽꍇɂ͎cOȂA1 oCg̃obt@
  ĂȂ悤ɓ삵܂B

  14.3.  FIFO

  _ FIFO(L[̓삪t@[XgCEt@[XgAEg(First In,
  First Out)ł)̈Ⴂ邽߂ɁA܂ UART  1 oCg̃f[
  ^𑗎Mꍇ̂Ƃ𒲂ׂĂ݂܂傤BUART {͎̂ʂf[
  ^ɊւĂ͉s킸APɃf[^𑗎M邾łBX̃_
  UART ̏ꍇ́AoCgf[^Mx CPU VAfoCX
  犄荞݂󂯎܂BCPU ͂󂯂āAMoCgf[^
  UART ̃obt@oă̂ǂɒuAMׂ
  oCgf[^ UART ɓn̂ǂ炩s܂B8250  16450
  UART ɂ 1 oCgobt@܂B܂A1 oCg̃f[^
  Mx 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 Ɋ荞
  ܂ł 16 oCg܂ł󂯎()Ƃł̂łB
  ̃oCgf[^҂Ƃł邾ł͂ȂACPU  14 oCg(܂
  ͂ȏ)̃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[rXsԂɂ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̕
  dbEfEVA|[goRŉʂɃGR[obNĂ邩
  łBVA|[g 16 oCg̃obt@tĂꍇ( 14
  oCgW܂܂ŕ𑗂Ă܂)A͂\܂
  ɂ͕͂Ȃ΂ȂȂł傤BƂĂ킵̂
  Ah߂́u^CAEgv܂BāAʂ͕
  ͂ƁA͂̕ɉʂɕ\܂B

  UART ̎Mobt@̏ꍇÁu^CAEgv ȉ̂悤ɓ삵
  : XƂĂĂA荞݂͔ŝ́Aobt@ɗႦ
   14 ܂łBA镶͂ɂ΂炭
  ͂̕ȂĂ荞݂s܂B̊荞݂͂Ƃob
  t@ 14 ĂȂĂs܂(1 łĂ
  s܂)BāÃobt@ʂĕ͂ƁAob
  t@̑傫ۂɂ 16 oCgłĂ(Ȃłޑ
  ʂ 100 {łȂ) 1 oCg̃obt@̂悤ɓ삵܂Bl
  ́u^CAEgvMobt@ɂ܂B

  14.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 xf(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傫ƂłAf̈k䂪ȂΕKvȏ̑xK
  vȂ_łBꕔ 56k fɂ 16650 ڂĂȂ̂
  ܂(M҂͊m߂Ă܂)B

  UART łȂCeWFgȃ}`|[g{[hł́ADSP `bvg
  ĂȂ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͌Â`bvڂĂƂ
  ɂ́A 16450 `bvOāAV 16550A `bvƒu
  邱ƂɂAAbvO[h邱Ƃł܂B̃^Cṽ`bv
  ڂĂꍇ́AcOȂ炠߂ĂBUART \Pbg`
  Ȃ΁A(u`bv)AbvO[h͊ȒPł傤BV
  `bvƌÂ`bṽszu͌݊łBVVA{[hC^
  [lbgōw邱Ƃł邩܂(݂̓VA{[h
  Ă鏬X͂قƂǂ܂)B

  15.  szuƐM

  15.1.  szu

          VA|[g̃szu   (-->  PC 猩̂ł)
                  (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

  15.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 {g)ƕ(-12 {
  g) łB́uIvłÁuItvłBႦ΁ALinux p̃\
  tgEFA DTR ɕɂȂ悤ɖ߂oƁAn[hEFA͒Pɂ
  ߂sADTR s̓d -12 {gɂ܂BDTR M󂯎
  f(邢͑̃foCX)͐FXȓ܂Bf̐ݒɂ
  ́ADTR ̏ԂɂȂƓdb܂BDTR (It)ɂȂƂ
  A̓邱Ƃ܂B

  悤ȂƂ 6 {̐SĂɂČ܂Bn[hEFA͐M
  M邾łAɂĂǂȓ삪ŝ́ALinux ̃\
  tgEFAVA|[gɐڑĂfoCX̐ݒ/݌vłB
  ܂AقƂǂ̃sɂ͒ʏs̋@\܂A OS
  foCXhCo̐ݒɂĕςĂ܂BLinux ̏ꍇ́A\[X
  R[hύX΁A̐M̓ς邱Ƃł܂(
  Ăl܂)B

  15.3.  VA|[gԂ̃P[uڑ

  VA|[g̃P[úAKʂ̃VA|[gɐڑ܂B
  f́AVA|[gɐڑfoCXɂ́AɃVA|[g
  gݍ܂Ă܂Bf̏ꍇAP[u͕KXg[gP[u
  (smڑ)łBf DCE (Data Communications
  Equipment) ƌARs[^ DTE (Data Terminal Equipment)ƌ
  ܂B̂悤 DTE  DCE qꍇɂ̓Xg[gP[ug
  ܂BDTE mqɂ̓NXP[ugȂ΂Ȃ܂B
  悤ȃP[ǔɂ͂̎ނ܂(Text-Terminal-HOWTO
   "Direct Cable Connection" TuZNVɏĂ
  )B

  ̂悤ɐFXȃP[uĝɂ͗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Ȃ킿s 3(Ms)𓯂ނ̋@̃s 3(
  Ms)Ɍq܂B 2  PC ڑ鎞APC [Ɍq
  ̕@ł(DTE m̐ڑ)B̖ړIŎgP[u̓NXP[u
  ƌĂ΂܂B

  VÃsw͌XA_[fɐڑ邽߂̂̂łB
  [ DTE (Data Terminal Equipment)ŁAf DCE (Data
  Communication Equipment)łB݂ PC ͕ʁA[ł͂Ȃ DTE 
  Ĉ܂({̒[͍ł̂悤Ɉ܂)Bs̖
  O DTE ł DCE łłB̏ꍇɂ́uM(receive)vu
  M(transmit)vƂt PC (DTE) 猩Ŏ܂BPC ̑
  Ms̓f́uMvsɃf[^܂(ۂɂ́A
  f͂̃sf[^󂯎̂ŁAf̗ꂩ猩Ƃ
  Msƌ܂)B

  VA|[g͌XADTE  DCE ɐڑ邽߂̂̂łȀꍇ
  ɂ̓P[uz͒PłBXg[gP[ugĂB
  ăfgꍇɂ́Aǂ̃sǂꂩCɂKv͂قƂǂ
  ܂BADTE m(Ⴆ΃Rs[^ƒ[)qꍇAFX
  Ȍqsꍇɂ́AFXȎނ̓ȃP[uȂ΂Ȃ
  B̏ꍇɂ́Aǂ̃sǂɌq邩dvɂȂ܂B

  15.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) gKv܂BɂALinux ̃foCXh
  CoɂAn[hEFAɂ RTS/CTS t[䂪LɂȂ܂B
  ꂩ DTE (PC )Ăf[^~߂ɂ́ARTS Itɂ
  ܂BRTS(uRequest To Sendv)It(-12 {g)ɂ̂́uf[^
  ɑȂłƂv(Request NOT To Send to me)v(M~)
  ƂӖłBPC ̃oCgf[^󂯎鏀ł́ARTS
  I(+12 {g)ɂƁAoCgf[^ĂїĂ悤ɂȂ
  Bt[M͏ɈłA䂳ĂoCg
  f[^̗̋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̂ŁAMM͖̂炩ɐMꂽsƓO
  ̃słB̏ꍇ RTS-->RTS (PC 烂f̌)
  CTS<--CTS(f PC ̌)ƂȂ܂BDTE m̐ڑ̏ꍇ
  ͊ȒPłB RTS sMsACTS sMs܂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 sR
  s[^ CTS s CTS MԂ܂(CTS ́uf[^
  ɑĂ悢(You are Cleared To Send to me)vƂӖł)Bŋ
   RTS/CTS ot[ƈقȂA͕Е̃t[(Rs[
  ^(܂͒[) 烂f̕)ی삵܂B̖{̎gp@
  ́A(f܂) ݂̋@ł͂قƂǎgĂ܂B

  15.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[gfoCX DSR/DTR sɐڑ邱Ƃɂ
  Â悤ȃt[sƂł܂BDTR t[ DTR/DSR
  t[ƂقړłAЕʐMłADSR sgȂ_
  قȂ܂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}hgĎ蓮őɂ́A{[[g
   0 ɐݒ肵ĂBDTR Itɂ邱Ƃ́unOAbvvƌĂ
  邱Ƃ܂Aɂꂪs킯ł͂܂B

  15.5.  |[g̃I[v֎~@

  "stty -clocal" s(邢 "local" tO𖳌ɂ getty 
  p)ƁADCD I(+12 {g)ɂȂ܂ł̓VA|[gI[v
  邱Ƃł܂B

  16.  d̔g`

  16.1.  rbg 1 \d

  EIA-232 ̃VA|[gł́Ad͓Ɏ(ڒndɑ΂Đ܂
  ͕)łȂ傫 12 {gł(5 ܂ 10 {ĝ̂
  ܂)BMsƎMsł +12 {g 0 \rbg(uspacev
  Ă΂邱Ƃ܂)ŁA-12 {g 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ɂẮAMM̋
   5 {g 15 {g̊ԂłȂ΂Ȃ炸A25 {gzĂ͂Ȃ
  ܂B3 {g̓d͖`ł(foCXɂĂ͓d
  ႭĂLłƂĎ󂯕t܂)Bd͈ʓIɂ 5 {g(܂
   3 {ĝƂ܂)Ȃ̂ɁA 11-12 {gʂɎgĂ
  Ƃ邱Ƃ܂B Macintosh  EIA-422 |[g
  EIA-232 (ȃP[uKv) EIA-423 ƂĂgȂ΁Ad͎
  ۂ 5 V ܂Bł̐ł 12 V ĝƂ܂B

  ʏ̃Rs[^̘_H͐{g(Ă 5 {gW
  Ƃ܂)gȂ̂ŁA3-5 {g̃Rs[^H(TTL)̎
  pɐ݌vꂽeXg@12 {g̃VA|[gɑ΂ėp
  ƁAeXg@킪Ă܂Ƃ܂B

  16.2.  oCgf[^\dV[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 Ȃ -12V, 0 Ȃ +12V)B
  ̃f[^rbǧɂ̓peBrbgǍ -12 V (mark )
  ̃Xgbvrbg邱Ƃ܂B̌́ÃX^[grbg
  ܂ł͑Ms -12 V(ACh)̂܂܂łB 0 {gԂĂ
  ƂȂƂƁÂߓɐrbg 2 ꍇ(0 
  A邢 1 ꍇ)ɂ́ArbgIĎ̃rbgn܂
  Ƃ\ȒPȕ@(MȊOɂ)Ȃ_ɒӂĂB

  2 Ԗڂ̃Xgbvrbg -12 {gɂȂ܂B͍ŏ̃Xgbv
  rbgƓłB̃rbgԂ̋EM߁A2 Ԗڂ
  Xgbvrbg̉éAMsĂ -12 {g̃ACh
  ̒ 2 {ɂȂȊOɂ͂܂B2 Ԗڂ̃XgbvrbgƃoCg
  Ԃ̒AChԂ̋ʂt@́AMɂ͂܂B
  āA܂ʐMł̂́AʐM̕БXgbvrbg 1 pA
  ̔ΑXgbvrbg 2 pꍇłBA1 X
  gbvrbgpȂ炩ɍłBHłA1 1/2 ̃Xgb
  vrbgg邱Ƃ܂B͑Ms 1 1/2 Ԃ̊ -12
  {gۂƂӖł(Xgbvrbg̒ʏ 5 ɂȂ
  悤ɂȂ܂)B

  16.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 rbgg
  Ȃ[܂(Ƃ̂AX^[grbgǉ̍v
  rbg 12 rbgƑȂ肷邩ł)B

  peBɂ́u(odd)vAu(even)vAuȂ(none)v̂ꂩ
  ݒ肵܂(ꕔ̒[ł́Amark peB space peBIvV
  ƂĎg܂)BpeBgƁAoCgf[^Œl 1 ɂȂ
  rbg̐(peBrbg܂߂)ƂȂ悤ɃpeBrbg
  ߂܂BrbgЂԂāÂ悤ȃoCgf[^ꂽ
  ꍇAf[^͕sȋpeB̃f[^ƂȂ܂B̃G[
  ͌ôŁAꂪ[󂯎oCgf[^łꍇɂ́A
  \Lʂɕ\ł܂BpeB̓lł
  ALȃoCgf[^ 1 łrbg(peBrbg܂
  )ƂȂ悤ɂ܂Bݒ莞ɂ͒ʏÃrbg̓oC
  g̃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͒PɃo
  h𖳑ʂɂ邾Ȃ̂ŁAłgȂ悤ɂׂłBup
  eBv́ApeBrbgǉȂƂӖłB9 rbg
  oCgf[^󂯕tȂ[gꍇA8 rbgWgȂ
  ΁upeBvIȂ΂Ȃ܂B̓peBrbg
  󂫂łB

  16.4.  oCgf[^̍\ (t[)

  EIA-232 goCgf[^̃VA`ł́Aɒʂ̃rbg
  ɑ܂BPC ̃VA|[g͔񓯊ʐMs܂B̔񓯊
  Mł́AX^[grbgƃXgbvrbgoCgf[^̎n߂ƏI
  ܂B̂悤ȋ؂̓t[ƌĂ΂At[ꂽo
  Cgf[^̓t[ƌĂ΂邱Ƃ܂BʂƂāA1 oCg
   9  邢 10, 11 ̃rbgf[^܂B̒ōł
  IȂ̂ 10 łB8-N-1 Ƃ́Af[^rbg 8 ApeBAX
  gbvrbg 1 ƂӖłBX^[grbg𐔂ɓƍv 10
  rbgɂȂ܂BXgbvrbg 1 ͂قڗOȂg܂B 110
  rbg/b(300 rbg/b̎܂)ł́AXgbvrbg 2 g
  ĂƂ܂A݂ 2 ڂ̃Xgbvrbgg
  ͂O̎(邢́A̐ݒł܂삷邽߂ɊԈĎg
  Ă邯ǁAoh𖳑ʂɏĂ)łB

  16.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đ܂BMŌX
  rbgʂ邽߂ɂ́AM̃NbNƓĂNbNM
  KKvłB̂悤ȃNbN͑M(M)erbgƓĂ
  uԂ̍݁v𐶐܂B

  񓯊̓`ɂẮAX^[grbgƃXgbvrbggĊeoCg
  t[邱Ƃɂē܂(̓n[hEFAs
  ܂)BM͕̓d̔zŐ̃X^[grbg҂Ãrb
  goƃNbNݎn߂܂BM͂̃NbN݂g
  āA 7, 8, 9 ̃rbgǂݍގԂv܂(ۂɂ͂
  GłBƂ̂Aʂ 1 rbgTv_
  ̂ŁÂ߂ɕʂ̃^C~O݂KvɂȂ邩ł)BăX
  gbvrbgǂݍ܂ƁAM̓NbN~߂āÃX^[g
  rbg҂܂B̂悤ɁAPƂ̃oCgf[^󂯎ۂɂ͔񓯊
  `ۂɂ͓`ɂȂ܂ÃoCgf[^̊Ԃł͍̓s
  ܂B

  17.  ̑̃VAfoCX (񓯊 EIA-232 ȊÔ)

  17.1.  EIA-232 ̌p

  cCXgyA(t^`)ZppčE邽߂ɁA
   EIA Ki܂łɍ܂Bt^̓`́AꍇɂĂ
  񕽍t^ EIA-232 S{Ƃ܂B鑬x̏ꍇA
  (őP[u)̓cCXgyAg{ł܂Bł
  PC ł́uxȁvEIA-232 gꑱĂ܂BƂ̂Af
  }EX̓P[uZ߁Aŏ\łB HOWTO 
  ŐVłłAȉɎ EIA-232  Linux T|[gĂ΁A
  M҂ɂm点B

  17.2.  EIA-422-A (t^)  EIA-423-A (񕽍t^)

  EIA-423 ͔񕽍t^ EIA-232 ƂقƂǓłAd 5 {g
  Ȃ_قȂ܂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 |[gtĂAcCXgyA(t^)𑗎M(422
  ƂĎg)ɎgƂł܂B(dl) EIA-423(ꎩ
  ̂ EIA-232 葽ł) ̂傤 100 {łB Macintosh
  ͏Ċۂ "~j DIN-8" RlN^gĂ܂B] EIA-232
  |[gtĂ܂A 5 {głg܂ł(
   EIA-232 ł)B EIA-232 Ɠ悤Ɏgɂ́A RxD+ (
  tyA̕Е̒[)ڒnȃP[ugA 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

  17.3.  EIA-485

   EIA-422 (t^) ɎĂ܂BdłB point-to-
  point ڑłȂA}`hbv LAN (32 m[h܂)ɂgƂ
  ł܂BRlN^̎dl݂͑܂B

  17.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

  17.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

  17.6.  ėpVAoX (Universal Serial Bus, USB)

  ėpVAoX(USB)́APCI `bvɑgݍ܂Ă܂BV PC 
  USB Ă܂B USB  4 sRlN^cCXgyAP[u
  g 12M rbg/b̑xŒʐMł܂BŒ 5 [g(̐
  ͍\ɂĕω܂)ƂZłڑł܂B

  USB ɂ͕ʂ HOWTO KvłBLinux  USB T|[g
  邽߂̍Ƃ͌ݐisł( HOWTO ͂܂܂)BUSB
  ͓ʐMsAlbg[NƓlɓȃpPbggđMs
  ܂B傤ǃlbg[NƓ悤ɁAUSB ɂ͕̃foCXڑ
  邱Ƃł܂BUSB ̊efoCXɂ́ArIȎgps߂̒Z
  Ԃ̃^CXCX^܂BfoCX́AoXŒ̎ԊԊu
  gpł邱Ƃۏ؂܂B̃foCX USB oXgƂȂ
  ΁A1 ̃foCX USB oXƐ肷邱Ƃł܂BUSB ڂ
  邱Ƃ͗eՂł͂܂B

  17.7.  ʐMƓ

  EIA-232 ̔񓯊ʐM(Ȃ)ȊOɂAVA|[gʐM̋Ki͂
  񂠂܂Bۂ EIA-232 ɓʐM̎dl܂A͕
   PC ̃VA|[gɂ͕tĂ܂B܂͓ʐMǂ
  ̂܂傤B

  17.7.1.  񓯊Ɠ̒`

  񓯊(async, asynchronous)Ƃ́uIłȂvƂӖłBۂ
  ͔񓯊ḾA񓯊VA|[gMf[^ł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
  rbgXgbvrbĝ(ɂf[^sKȑxőM
  ł܂)񓯊ʐMƌĂ΂܂Bʂ̏ꍇƂẮA(X^[grbgX
  gbvrbg܂܂Ȃ)oCgf[^AsKȃpPbgԊu
  pPbgɓ邱Ƃ܂B͓ʐMłBƂ
  AepPbgɓĂoCg͓đMȂ΂ȂȂ
  łB

  17.7.2.  ʐM

  ǎ҂̊F́AVA|[gp 25 sRlN^̖gp̃s
  Ȃ̂^ɎvƂ͂Ȃł傤? gp̃ŝقƂǂ͓
  ʐMp̂̂łAꂪtĂ PC ͂قƂǂ܂B^
  C~OM⓯]`l̂߂̃s܂B EIA-232 ̎dl
  ɂ͓ʐMƔ񓯊ʐM̗`Ă܂APC ł UART
  (Universal Asynchronous Receiver/Transmitter)`bvgĂ܂B
  ̃`bvɂ 16450, 16550A, 16650 ܂AʐM͈
  ł܂BʐMsɂ USART `bv邢͂Ɠ̃`b
  vgKv܂BUSART  S ͓(synchronous)\Ă܂B
  ʐM͂܎sȂ̂ŁAVA|[g͑̏ꍇȂ荂
  ܂B

  EIA-232 ̓Ɋւ镔̑ɂAEIA ɂ͓ɊւKiFX
  ܂BEIA-232 ł́ARlN^ 3 ԃs̓NbN(邢̓^C~O)
  M̂߂ɗ\񂳂Ă܂B炩̃^C~OM𐶐̂f
  ̎dłǍʁAf(邢́ufG~l[
  ^vƌĂ΂A^C~OM𐶐foCX)gȂƓʐM
  łȂƂ΂΂܂B

  VA|[gΉł邱Ƃ͂قƂǂȂ̂łA V.42 G[
  gfpAdbł̓ʐM͂悭s܂B
  G[̓X^[grbgƃXgbvrbg菜ApPbgɓt
  oCĝŁǍʂƂēdbœ܂B

  18.  ̏

  18.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

  18.2.  VA|[gp\tgEFA

  ł߂~[TCgĝ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̊荞݂̗DxA\コ
     ܂Bhdparm gn[hfBXÑ`[jOɗƎv
     B

  o  modemstat  statserial ͊e탂f䃉Č݂̏Ԃ\
     ܂B``VA|[g̊Ď/ffp̃vO''̏͂Ă
     B

  18.3.  Linux p̕

  o  setserial(8) stty  ̃IC}jA

  o  libc (܂ glibc) ̃hLgW: "჌x[C^tF[X"

  o  Modem-HOWTO: VA|[gɐڑ郂fɂ

  o  PPP-HOWTO: PPP ̎(VA|[gɐڑ郂fg܂)

  o  Printing-HOWTO: VAv^̐ݒ

  o  Serial-Programming-HOWTO: VA|[ggvO~OɊւ
     b

  o  Text-Terminal-HOWTO: eLXg[̓ƃCXg[Eݒ@

  o  UPS-HOWTO: VA|[gɐڑ UPS ZT̐ݒɂ

  o  UUCP-HOWTO: UUCP ̐ݒɊւ

  18.4.  Usenet ̃j[XO[v:

  o  comp.os.linux.answers

  o  comp.os.linux.hardware:  Linux Ŏgn[hEFAɂ

  o  comp.os.linux.networking:  Linux ɂlbg[NƒʐMɂ

  o  comp.os.linux.setup:  Linux ̃CXg[ƃVXeǗ

  18.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

  18.6.  C^[lbg̏

  o  Vern Hoxie 񂪏W߂Ă Serial Suite
     <ftp://scicom.alphacdc.com/pub/linux> ́A Linux ̃VA|[g
     Ɋւ鎑ƁAȒPȃvO̗W߂̂łB'scicom'
      "anonymous" ƂăOC鎞ɂ́ApX[hƂĊSȓdq
     [AhXgȂ΂Ȃ܂BႦ
     greg.hankins@cc.gatech.edu ȂǂłB

  o  VAʐMƃ}`|[gVA{[h̋c_s
     Cyclades  WWW y[W http://www.cyclades.com ł܂B

  19.  {ɂ

  { Linux Japanese FAQ Project s܂B|Ɋւ邲ӌ
   JF vWFNg <JF@linux.or.jp> ɘAĂB

  ȉɎ܂B

     v1.10j, 30 June 1997
        |: icl <nagata-y@bnn-net.or.jp>

     v2.00j, 30 June 1999
        |: P <fujiwara@linux.or.jp>

        Z & eNjJ`FbN: ݗǎ <kawagisi@yk.rim.or.jp> Kc
        ͍G <coda@post.kek.jp>

     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
        XV: P <fujiwara@linux.or.jp>

        Z: L <takei@cc.kochi-u.ac.jp>

  ȏ

