
                           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
     _________________________________________________________________
   
   ļ Linux 趨ͨѶ豸
     _________________________________________________________________
   
1. 

     * 1.1 Ȩ
     * 1.2 ļ°汾
     * 1.3 
     * 1.4 
       
2. Ѿ֧ԮĴӲ

     * 2.1 ׼ PC в
     * 2.2 弴(PnP)ݻ
     * 2.3 һ಺п( 8250/16450/16550A UART Ƭ)
     * 2.4 ǻͶ಺п
     * 2.5 ֧ԮĴӲ
       
3. вʲ?

     * 3.1  /dev Ĵ豸ҪʹҪ
     * 3.2 һ಺ע
     * 3.3 ǻͶ಺ע
       
4. Ӧ֪Ȥʽ

     * 4.1 ʲ getty?
     * 4.2 ʲ setserial?
       
5. ݻųȥ?

     * 5.1 Ӳ
     * 5.2 ݻ̸
     * 5.3 õݻ
     * 5.4 Ӳ
       
6. Ҫݻ getty_ps 뼰?

     * 6.1 뼰ݻ
     * 6.2 װ getty_ps
     * 6.3 趨 uugetty
     * 6.4 Զ uugetty
       
7. 趨ն˻ߵҵ PC ?

     * 7.1 Ӳ
     * 7.2 趨 getty
     * 7.3  PC 趨ն˻ע
       
8. ʹóĴװ?

     * 8.1 ѡ豸жλַ
     * 8.2 趨豸λַ
       
9. ҵĴв赽ϸߵٶ? ҵݻӦʹʲٶ?

10. ͨѶʽ

11. ʹؾ

     * 11.1 kermit Լ zmodem
     * 11.2 Զ趨ն˻ʽ
     * 11.3 ڴµĲɫ ls
     * 11.4 ն˻ӵӡӡ
     * 11.5 Linux ܹܲԶô豸?
     * 11.6 ʹôп̨
     * 11.7 ߵĴ
       
12. һ...

     * 12.1 ʲ(lock files)?
     * 12.2 ``baud''  ``bps''
     * 12.3 ʲ UARTs? ӰЧ?
       
13. ų

     * 13.1 Ҳϵյ ``line NNN of inittab invalid''
     * 13.2 ʱ˵ ``/dev/cuaN: Device or resource busy''
     * 13.3 ҳӵ ``Id SN respawning too fast: disabled for 5
       minutes''
     * 13.4 豸Ǵ豸ֻܵ
     * 13.5 ҵݻĳ˶̱ uugetty ûִ
     * 13.6 ҽҵն˻ҵ PC ϣǩ֮ᣬ
       ס
     * 13.7 ڸ£ҵݻ©ʧ
     * 13.8 ϵͳʱLinux ûҵûر豸
     * 13.9 ʹҵݻ Linux ʱ rz Լ/ sz 
     * 13.10 ҵөĻӡܺԪ
     * 13.11 getty  uugetty Ȼ޷
       
14. ѶԴ

15. л
     _________________________________________________________________
   
1. 

    Linux Serial HOWTO Linux 趨ݻԼն˻
   ϸڣһЩʹôеľϣԼųϣ ļ
   Intel x86 Ӳִе LinuxȻƽ̨ҲҲ
   
1.1 Ȩ

   İȨ Greg Hankins(copyright (C) 1993 - 1997)ļ
   LDP İȨɢ: [4]http://sunsite.unc.edu/LDP/COPYRIGHT.html. 
   δ²޸ĵʽɢ
   
   ԭ
   
   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 ļ°汾

   ° Serial HOWTO ŵ
   [6]ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO/Serial-HOWTO Լӳڵ
   һЩ Postscript Լ DVI ʽİ汾 other-formats Ŀ¼
    һ Serial HOWTO Ҳ
   [7]http://sunsite.unc.edu/LDP/HOWTO/Serial-HOWTO.html ȡãҲÿ
   ڵ [8]comp.os.linux.answers
   
1.3 

   뽫κε⣬ۣ򲹳ݼ͸ңԶ
   HOWTO 뷨 ҲСĵעĽ! ȷʵظʲ᲻ĵط
   ʲطдø Ծʼλַ
   [9]greg.hankins@cc.gatech.edu ϵ еʼҶظ
   Ҫһڻʱ䣬Ҷæ յһ root 
   վ̨ ʵݼŸңȷĵʼϵͳʹ
   ܹŸ㣮 ֮㻹ûյҵĻ볢ټһΣ
   
   ҲԽĵַԳٻĴͳż:
   Greg Hankins
   College of Computing
   801 Atlantic Drive
   Atlanta, GA 30332-0280
   ԼȫѶҵҳ
   [10]http://www.cc.gatech.edu/staff/h/Greg.Hankins/.
   
   ׫дʱ뽫 Serial HOWTO ļİ汾ź룬 1.11 森
   
1.4 

   ״ܺܲһĻش޷еϵͳ趨
   
   
2. Ѿ֧ԮĴӲ

   ֪ Linux еĴӲ
   
2.1 ׼ PC в

     * ׼ PC в (COM1 - COM4)ܹӵĴװ(ݻл
       )ӵ
     * ׼ PC ڽʽݻ (COM1 - COM4)
     * Quickpath Systems Port-Folio 550e (õ IRQ Ϊ 3, 4, 5, 9, 10,
       11, 12,  15)
       
   ע: λַͻ㲻ͬʱʹ COM4  IBM8514 Ѷ
   IBM8514 Ѷһ bug
   
2.2 弴(PnP)ݻ

   弴ݻܹ Linux ȻҲʹǣΪ
    кöҪ:
     * ص BIOS ݻϵ PnP ܣ
     *  Windows 95趨ݻȻῴ Linux Щ趨ܷ
        еĻ:
     *  Windows 95趨ݻȻʹů Linux Ա趨
        ʹ loadlin 
     *  [11]http://www.redhat.com/linux-info/pnp ȡ PnP ߣ
     * Ȼиõݻ
       
2.3 һ಺п( 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)
       
   һ˵ Linux ܹ֧Ԯʹ 8250, 16450, 16550, 16550A
   ݣUART ƬĴп ܹ UARTs ֮һڽʽݻ
   
   ע: BB-1004 Լ BB-1008ǲ֧Ԯ DCD  RI ·޷ý
   ӵݻʹã ;
   
2.4 ǻͶ಺п

     * 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 ĲƷ 1995 ·ݵ
   Linux Journal ƪع£ ƪ¿
   [50]http://www.ssc.com/lj/issue14 ҵ
   
2.5 ֧ԮĴӲ

   ``Winmodems''ݻ USR Sportster Winmodem  IBM Aptiva
   MWAVE ޷ Linux ʹãЩݻרŵҪر
   Windows ʽ ʹݻ֮⣬ͬҲʹ
   Ҫ Rockwell RPI ʽݻ
   
   û Linux ʽǻʹвҲʹã
   
3. вʲ?

   һ/(I/O)Լӵȡͨ· 
   /벺紮вƽвŵ̫·ȵȣ Ҫ
   ǴвΪݻն˻Ǵװã ÿһвһ/
   λַԼһϺ(IRQ) ĸ豸Ӧ 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

    Linux ʱû⵽κδװãȷڱʱм봮֧
   Ԯ ļУ ttyS0  COM1ttyS1  COM2 ttyS2 
    COM3  ttyS3  COM4 עЩװԤ IRQ صģ
   ЩԤֵʹеĴвָͬ IRQ μ [51]
   ʹóĴװ? һ˵趨 IRQ
   
   ĳЩװʽὨ豸ݻʹõ /dev/modem Լ
   ʹõ /dev/mouse Ƕᵽڰװʱָʵ /dev 
   ķᣨõǻŻ(bus mouse)  /dev/mouse 
   ָŻ豸
   
   ѾЩʹ /dev/mouse Լ /dev/modem ȱۣ ǿҵط
   ʹЩᣬݻܲӵĻҪʹ
   /dev/modem 㽫Ϊ(lock files)޷ȷѣ
   ϲǵĻðɣҪȷָȷ豸 Ȼ
   ȥᣬĳЩӦóʽ( minicom)Ҫ趨
   
3.1  /dev Ĵ豸ҪʹҪ

/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

   Ҫע⵽еķ׼ӦѾȷؽЩ豸 ·
   :
   
linux% ls -l /dev/cua*
linux% ls -l /dev/ttyS*

   /dev н豸
  
   ûеһ豸Լ mknod ָ 磬ٶ
   Ҫ ttyS0 豸
   
linux# mknod -m 666 /dev/cua0 c 5 64
linux# mknod -m 666 /dev/ttyS0 c 4 64

   Ҳʹ MAKEDEV ָ壬 /dev ӦûУ 豸Ľ
   磬Ҫ ttyS0 豸Ӧ룺
   
linux# cd /dev
linux# ./MAKEDEV ttyS0

   ⽫ᴦ߽Լ߳ȥ豸֮趨ȷȨޣ
   
3.2 һ಺ע

   Ķ಺ʹõ豸ʹһֶ಺ Щϸϸ渽
   setserial ʽ rc.serial 森 㳢ʹö಺Ļǿҽ
   ȡ°汾 setserial ܻҪЩ豸 mknod ָ
    MAKEDEV ָ嶼ԣ ಺豸Լ ``64 + '' 
   ģԣΪ ttyS17 豸Ӧ룺
   
linux# mknod -m 666 /dev/cua17 c 5 81
linux# mknod -m 666 /dev/ttyS17 c 4 81

   Ҫע⵽ ''64 + 17 = 81''ʹ MAKEDEV ָĻӦ룺
   
linux# cd /dev
linux# ./MAKEDEV ttyS17

   ע: SIIG  IO1812 ֲг COM5-COM8 ǴģӦ
   COM5=0x250, COM6=0x258, COM7=0x260, Լ COM8=0x268
   
   ע: Digi PC/8 Interrupt Status Register  0x140
   
   ע:  AST Fourport rc.serial ָ skip_test
   
3.3 ǻͶ಺ע

   Ķ渽ʽѶ ЩʹװãǱ׼ģЩ
   ѶӲ
   
4. Ӧ֪Ȥʽ

4.1 ʲ getty?

   getty ǩ Unix ʱǩһ֧ʽ ϣ
   Linux ܹʹݻĻҪ getty ֻҪݻ
   Ļ㲻Ҫ getty ־ Linux ʹõİ汾: getty_ps,
   mgetty Լ agetty Щʽ﷨ǲͬģԲʲ getty 
   ȷʹȷ﷨
   
   getty_ps
  
   󲿷 Linux װ׼װ getty_ps ׼ʽ: getty 
   ̨Լն˻豸ʹã uugetty ݻʹõģ Ϊ
   ұʹ汾 gettyļҽ춴׼
   
   mgetty
  
   mgetty һݻʹõ getty 汾 ܹǩ֮⣬
   mgetty Ҳṩ(FAX)֧ԮԶ PPP ⣮  mgetty ļд൱
   غãҪٲʲᣮοİװ˵ Ҳ
   [52]http://www.leo.org/~doering/mgetty/ ҵ mgetty Ѷ
   
   agetty
  
   agetty ǵ getty ͣ  getty һ򵥵ģĹʵ
   ̨ն˻ݻϣ
   
4.2 ʲ setserial?

   setserial һ֧鿴޸Ĵ豸Եĳʽʹ
   õĲλַжϣԼвѡ ԽִвӲ
   setserial ȡ汾ѶϢ
   
    Linux ϵͳʱֻ ttyS{0-3} Ԥ IRQ 4 Լ 3 
   ã ԣκ濨ṩĴв ttyS{0-3} ʹ÷
   ׼Ӳж(IRQ)Ļ ֧ʽЩвҪ֪
   ѡοֲᣮ
   
5. ݻųȥ?

5.1 Ӳ

   ȣҪȷӵȷߣݻҪһֱӵ (straight
   through) ߣûκ (no pins crossed) κһҵ̵궼
   ҪȷͷʽǶԵģʹõ DB25 вӦǹ
   DB25 ͷ ݻӵһвϣҪ
   ˵οݻֲᣮ
   
  ڽʽݻע
  
   ڽʽݻԣ㲻ҪߣڽʽݻҪвԼ
   ڽһ ֻҪһûбʹõӲжϸøò
   λַ㿨ĳοݻֲᣮ ͬҪ
   ѡжԼλַϵİ [53]ʹóĴװ? һڵ
   ˵
   
   ĳЩصݻȡĴвԱͻ ɾ߻
   BIOS 趨쵽ֲᣮ
   
    IBM8514 ѶһҪڽʽݻ ttyS3
   ĻܻһЩ⣮  Linux û⵽ ttyS3 ϵڽʽ
   ݻʹ setserial ʽ趨Ȼݻ 
   ttyS{0-2} ϵڽʽݻӦòκ⣮ 춴ѶĴ
    Linux  ttyS3 ûκԶĶ
   
5.2 ݻ̸

   ʹøӵͨѶʽ SLIP  PPP ֮ǰ kermit 򵥵ͨѶ
   ʽЩ趨 Դ [54]http://www.columbia.edu/kermit/ Լӳ
   ڵҵµ kermit 汾 磬Ҫݻ ttyS3 ϣ
   ҿԽ 115200 bps Ļ:
   
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                           ; Ĳ Enter 
OK                                 ; ݻӦûӦ

   ݻ AT ָȺлӦԼٶݻ Linux һ
   ȷ һ̨ݻ:
   
ATDT7654321

    7654321 һ绰룮·(pulse line)Ļ ATDP
    ATDT ԲóȥݻͿ
   
   ص kermit ʾ£ס Ctrl  \ (backslash) ¼Ȼſ
   Ctrl ¼ٰ C :
   
Ctrl-\-C
(Back at linux)
C-Kermit>quit
linux#

   "ֶ"ʽĲŲԣķ kermit ڽ
   ϿԶΪ㲦ţ磬ʹ 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       ; ѡͨѶװ
C-Kermit>set speed 115200          ; 趨ͨѶٶ
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:

   ҪһЩָй [55]ͨѶ һ˵
   
   ݻųȥʱݻ赽֧Ԯٶȣ
   Linux  libc 5.x Ѿ֧Ԯ 115200 bps libc ͨ /lib
   ˵￴һʲ汾  Linux ޷ϵ 57600  115200 bps
    setserial ʽĴв赽ߵٶȣ Ҫ
    [56]νҵĴв趨Ϊٶ? ý˵ ȻͨѶʽ
   ٶ赽 38400 bps
   
5.3 õݻ

   ֻҪųȥĻҪķʽݻ ƻ
   ݻܲӣ뽫ݻóҪִе getty
   ͬٶ趨£ ԣҪ 38400 bps ٶִ getty Ļ
   ݻʱٶ 38400 bps Ϊ˱ĵ
   ݻ֮ٶ޷ϣ һ˵УӲƵĳ
   ֵʺϲõݻЩ趨ֵɲݻֲᣮ
   
5.4 Ӳ

   ݻ֧ԮӲ(RTS/CTS)Ļ ǿҵؽȥʹ
   ֧ԮѹݻҪȣڴв
   RTS/CTS ƹܣ ϵͳʱǷ
   /etc/rc.d/rc.local  /etc/rc.d/rc.serial 森 ҪȷЩᱻ
   Ҫ rc.sysinit ִУҪÿһҪӲƵĴв
   ִв
   
stty crtscts < /dev/ttyS3

   Ҳݻ RTC/CTS ƣҪοݻ
   ᣬΪڲͬݻ֮ǲͬģ ݻ֧Ԯ趨
   ĻҪȷôݻ
   
6. Ҫݻ getty_ps 뼰?

   ݻܹȷزųȥ㻹ûж [57]ݻ
   ȥ һڵĻȥ зǳҪ趨Ѷֻݻ
   Ļ㲻Ҫ˽ڣ
   
6.1 뼰ݻ

   ҪܲԼųȥĻȷʵ趨ݻһ
   ݻʹ AT ָȺ
   
E1       ػӦָ
Q0       رӦ
V1       ߳ģʽ
S0=0     Ҫ (uugetty  WAITFOR ѡ)

   ûȷ趨õʼ(INIT)ִܻʧܣͣ
   ס ǣиõѡ...
   
&C1     DCD ֻſ
&S0     DSR ԶΪ
        DTR /ر ݻݻ̶ - RTFM)

   ЩӰݻйؿʼԼŵĶ
   
   ݻ֧Ԯ趨͸õʼִ趨
   Щ һЩݻ DIP Ӱݴ趨Ҳ
   ҪȷЩ趨ȷģ
   
   Ѿʼռͬݻ趨 ĿǰΪֹһֻǵһС
   ֣Ҫ͸Ŀǰãǳӭ! ԴЩȡЩ
   趨: [58]ftp://ftp.cc.gatech.edu/pub/people/gregh/modem-configs
   
   ע: Ϊҵ USR Courier V.34 ݻ DTR Ѷŵȥã
   ұ趨 &D2  S13=1(趨ݴ S13  bit 0)ȷ USR
   Sportster V.34 
   
   ע: ĳЩ Supra ݻ DCD Ѷŵķʽݻ 
   Supra ݻ趨Ϊ &C0  &C1 Ҳ趨 &D2 ʹ֮ش
    DTR Ѷţ
   
6.2 װ getty_ps

    [59]ftp://sunsite.unc.edu/pub/Linux/system/serial µİ汾 ر
   أʹøͨѶ(57600  115200 bps)ȡ 2.0.7j 
   İ汾 Ҳ libc 5.x ֮İ汾
   
   Ԥֵgetty_ps  Linux ĵϵͳ׼(FSSTND, File System
   Standard)ã˼Ƕλ뽫 /sbin £õ
   /etc/conf.{uu}getty.ttySN  㲢ܴļҵҲ
    lock files Ҫŵ /var/lock Ŀ¼Ҫȷ /var/lock Ŀ
   ¼
   
   㲻 FSSTND Ļλ뽫ŵ /etc 棬õ
    /etc/default/{uu}getty.ttySN 棬 lock files 򽫻ŵ
   /usr/spool/uucp 森 ʹ UUCP ĻҽΪ
    lock files ᵽ UUCP ޷ҵĵطȥģ
   
   getty_ps Ҳʹ syslogd ¼ѶϢĿǰûִĻ
   syslogd(1) Լ syslog.conf(5) ֲ趨 syslogd ѶϢ
   LOG_AUTH ¼ʹ LOG_ERR ¼ʹ LOG_DEBUG 㲻
   ʹ syslogd ĻԱ༭ getty_ps ԭʼ tune.h һ
   ¼ȡԤ赵Ϊ /var/adm/getty.log
   
   ǷҪ FSSTND Լʹ syslogҲѡߵϣ ༭
   Makefiletune.h Լ config.h Ӧľ Ȼᣬ׼
   ˵뼰װ
   
   ̸ getty ĵطָ getty_ps ԣ ̸ uugetty 
   ָ getty_ps ׼ uugetty ԣ Щָ mgetty  agetty Ͻ
   
   
6.3 趨 uugetty

   ΪҪܴݻ뼰Ҫ uugettyuugetty ִкҪ
    lock file 飮 ûеĻ /etc/gettydefs ԱΪݻ
   Ŀ(ע⵽Ŀοǲǹ̶ٶ - ÿĿ֮Ŀհ
   Ҫ):
   
# 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

    9600 bps ҾѹܵݻĴв
   ٶȶݻȥٶȣ Ȼᣬ /etc/gettydefs 
   һбֻΪݻһУ:
   
# 115200 fixed speed
F115200# B115200 CS8 # B115200 SANE -ISTRIP HUPCL #@S @L @B login: #F115200

   㽫ݻ RTS/CTS ִӲƵĻԽ
   CRTSCTS ӵЩĿ
   
# 115200 fixed speed with hardware flow control
F115200# B115200 CS8 CRTSCTS # B115200 SANE -ISTRIP HUPCL CRTSCTS #@S @L @B log
in: #F115200

   ҪĻ uugetty ǩʱıӡЩȤĶ 
   ӡϵͳƣ·ԼĿǰÿλԪʣ Լ
   Ķ
   
       @B    ĿǰÿλԪ(bps, ڿ @B ʱƵ)
       @D    , ʽ MM/DD/YY
       @L    getty ӵĴ·
       @S    ϵͳƣ
       @T    ʱ䣬ʽ HH:MM:SS (24 Сʱ)
       @U    Ŀǰǩʹߣ /etc/utmp зǿ ut_name λĿļ
ֵ
       @V    汾ֵԤ赵иģ
       Ҫʾ '@' ŵĻ '\@'  '@@'

   ȷݻӵĴв豸 ݻ
   ttyS3 Ļ㽫Ҫ /dev/cua3Լ /dev/ttyS3 豸 û
   ȷ豸 [60] /dev н豸 ý˵ν豸ҽ
   Щ豸 ϣ uugetty ڼвǷǩʱ
   ܹݻĻ /dev/cuaN 豸Ҫ /dev/ttySN
   
   ڱ༭ /etc/gettydefs ʱ﷨Ƿȷ:
   
linux# getty -c /etc/gettydefs

6.4 Զ uugetty

   ıӵеÿһЩԷֱÿһʹ
   ͬõķʽʵģ  /etc/conf.uugetty ᱻе
   uugetty гʹã /etc/conf.uugetty.ttySN ֻǸʹã Ԥ
   õ getty_ps ԭʼҵھ󲿷ֵ Linux 
   涼У ΪƪĿûа Ҫע
   ǱȽϾɵ getty 汾( 2.0.7e 滹)û FSSTND Ļ
   Ԥĵ /etc/default/uugetty.ttySN ҵ
   /etc/conf.uugetty.ttyS3 :
   
# 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

   һмӵ /etc/inittab ȥ uugetty ͻĴв
   ִ(㻷ȷѶȡ - õλãвٶȣԤ
   ˻ʽ):
   
S3:456:respawn:/sbin/uugetty -d /etc/default/uugetty.ttyS3 ttyS3 F115200 vt100

    init:
   
linux# init q

    /etc/inittab ٶȲϣʹݻ֧Ԯ
   ÿλԪʣ
   
    Linux ʱĴвǷߣӱĵطŲǩ
   Linux 
   
   uugetty иѡ getty (lm) ֲø 
   ų(scheduling)ĹܣԼز
   
7. 趨ն˻ߵҵ PC ?

   ڵָʾն˻ Linux Ĵв
   
7.1 Ӳ

   Ҫȷһȷߣڵ̵ null modem ߾Ϳʤ
    һҪһ null modem ߣĵվ˵
   ӡߣ ȷʹĴв DB25  DB9 ͷ
   Ĳв(ĸ DB25  centronics)
   
    DB-25 ͷԣҪ:

        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

   ҪӵԼӲЭ(handshaking)ĻҪһ
    null modem ߣ
        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

   Ĵвһ DB9 ĽͷԿ:
        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

   ߣһ DB9  DB25 null modem ߣ
        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)

   (û! ڶ֧֧ DB9 ͷȷʵ DB25 ͷ෴!)
   
   ʹõĲ null modem ߵĻܵҪƭ
   ļ: ߵĽͷϣ RTS  CTS һ𣬶Ҳ DSR,
   DCD Լ DTR һ ҪһȷӲЭ
   ʱͿԵõ(Լ)
   
   Ѿȷߣն˻ӵĵϣ ԵĻ
   ն˻ݻźţ Կ 9600 bps, 8 data bits, 1
   stop bit, no parity bits 趨ն˻
   
7.2 趨 getty

    /etc/gettydefs һ getty ն˻Ŀû
   Ļ:
   
# 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

   ҪĻ getty ǩıӡһЩȤĶ ҵ
   ӡϵͳԼ·ԼĶ:
   
@B    ĿǰÿλԪ(bps, ڿ @B ʱƵ)
@D    , ʽ MM/DD/YY
@L    getty ӵĴ·
@S    ϵͳƣ
@T    ʱ䣬ʽ HH:MM:SS (24 Сʱ)
@U    Ŀǰǩʹߣ /etc/utmp зǿ ut_name λĿļֵ
@V    汾ֵԤ赵иģ
Ҫʾ '@' ŵĻ '\@'  '@@'

   ڱ༭ /etc/gettydefs ʱ﷨Ƿȷ:
   
linux# getty -c /etc/gettydefs

   ȷû getty  uugetty 趨(/etc/default/{uu}getty.ttySN 
   /etc/conf.{uu}getty.ttySN)ն˻ӵĴвϣ ΪҲ
   ն˻ִе gettyеĻƳ
   
   ༭ /etc/inittab  getty Ĵвִ(㻷ȷѶ
   ȡ - õλãвٶȣԤն˻ʽ):
   
S1:456:respawn:/sbin/getty ttyS1 DT9600 vt100

   ʼ init:
   
linux# init q

   Ӧûն˻ϿǩʾҲðؼ(return)
   ն˻ע⵽
   
7.3  PC 趨ն˻ע

   ˽ PC 趨ն˻ӵ Linux ϣ磬ɵ 8088 
   286 PC ǳʺ; ҪֻһŰʺն˻-˵
   (Terminal-PC) ʹõ DOS ƬԼն˻-˵ִеͨѶʽ
    kermit ;ϱֵ÷ǳã ̨
   [61]http://www.columbia.edu/kermit/ ҵκִҵϵͳ
   ʹõѱ kermit 汾 е DOS ͨѶʽ telix Լ
   procomm Ҳһõı֣ ҪȷȷĴвѶն˻-
   ˵ԵͨѶ趨ȥ
   
8. ʹóĴװ?

   㲻ҪĶһڣҪʹĴ豸...(ٶûж
   Ļ)
   
   һŵĴвǵģԣ ʹõĴвĿ
   ǱʹõӲжҪԼλַĿ Ⲣ Linux 
   ƣ PC ŵƣָжϸλַÿһ豸 豸
   ǴвڽʽݻǶ಺
   
   ಺Ϊӵвдвʹõͬ IRQ ر
   Ƶģ Linux ԿϵÿһʹòͬλַԱǻȡϣ
   
8.1 ѡ豸жλַ

    PC һὫ ttyS0 Լ ttyS2  IRQ 4  ttyS1 Լ ttyS3 
   IRQ 3 ɼ /proc/interrupts ֪Щ IRQs ʹã Ҫʹ
   ϵĴ豸Ļָһжϣ һѡǴĲ
   Ǳָһжϣ PC һ趨 IRQ5  IRQ7 Ĳв
   Ǻ˻ʹв ָһжϸ豸
   Ȼ˳ʹһв 㽫Ҫõ setserial ʽ
   ⣬ϵ趨(Jumpers)鿴˵ļ
   Ҫÿʹõ IRQ
   
   㽫ҪЩ趨ÿ豸һΨһһжϣ 
    /etc/rc.d/rc.local õ趨 - Ӧϵͳʱĳط
   £
   
        /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 ָ:
              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

   ѡжʱûʲȷģֻҪȷѾ壬
   濨ʹã 2, 3, 4, 5  7 Ǻѡ``not assigned''˼Ŀǰ
   ûʲᶫڱ׼»̶ʹЩӲжҪ ҲҪע⵽ IRQ 2
    IRQ 9 һģԳΪ 2  9ʽǳ˽һ㣮 
   һ 16-bit ͷĴпҲʹ IRQ 10, 11, 12 
   15
   
   ֻҪȷʹõĲ IRQ 0, 1, 6, 8, 13  14! 
   ʹõģ  IRQs Ļʹܲˣ ֮ᣬٴμ
    /proc/interrupts ȷûгͻ
   
8.2 趨豸λַ

   貺λַ鿴ֲ趨жϣÿλַ
   ֻһ豸 Ĳͨó
   
        ttyS0 address 0x3f8
        ttyS1 address 0x2f8
        ttyS2 address 0x3e8
        ttyS3 address 0x2e8

   ѡҪÿһ豸ʹõλַ趨ӣ ҽҵݻ
    ttyS3 ҵĻ ttyS0ҵն˻ ttyS2
   
   ʱ Linux Ӧû趨λַĴв Linux 
    IRQ ܲ趨 صһ㣮 Linux 
   ʱûκε IRQ ⣬ Ϊ IRQ Σղпܱƭģ
   ʹ setserial  Linux ǸʹǸ IRQ ҲԼ
   /proc/ioports  Linux Щ벺λַʹã
   
9. ҵĴв赽ϸߵٶ? ҵݻӦʹʲٶ?

   һӦÿ԰ҳ͸ͨѶʽ getty ʽʹݻʱ
   Ӧʹʲٶȣ
     * еǱ 9600 bps (V.32) ݻҪĶٶ赽
       ݻ֧Ԯٶȣ  300 (V.21/Bell 103), 1200
       (V.22/Bell 212A),  2400 bps (V.22bis)
     *  9600 bps (V.32) ݻ֧Ԯ V.42bis ѹʹ
       38400 ٶȣ V.42bis ѹ 4:1 ֵҲ``4 *
       9600 = 38400''
     *  14400 bps (V.32bis) ݻ֧Ԯ V.42bis ѹ
       ܵĻʹ setserial ʽ spd_hi 꽫Ĵвóʹ
       57600 bps (4 * 14400 = 57600) ٶȣ
        28800  33600 bps (V.FC  V.34) ݻʹ
       spd_vhi  (4 * 28800 = 115200)
       ȻᣬͨѶʽ /etc/inittab ʹ 38400 ٶ趨
       ٶȣҪȷ 16550A ͨ÷ͬת
       (UART)
        libc 汾 5.xн 57600  115200 ٶȣ
       libc  /lib￴һõİ汾ʲᣮ Ӧóʽ
       Ѿȡôŵ㣬ֱʹ( setserial) 
       ׼Ѿˣ汾 Linux ׼õķǳ
       ʹЩߵٶȣ
       
    setserial ָԣȻȷǿᣬ
   ޸ķŽ /etc/rc.d/rc.serial  /etc/rc.d/rc.local Աϵͳִ
   ǣ ҵ /etc/rc.d/rc.local 趨ҵ ttyS3  115200
   bps :
   
/sbin/setserial /dev/ttyS3 spd_vhi

   ȷԺϷ·ʹ setserialԼϷװƣ ·һ
   в趨:
   
setserial -a /dev/ttyS3

10. ͨѶʽ

   һͨѶʽбʹõķ׼ͷûеĻЩ
   һ FTP վҵ
   
     * ecu - һͨѶʽ
     * [62]C-Kermit - Яģɳ򻯵Ĵм TCP/IP ͨѶʽ
       ת
     * minicom -  telix ͨѶʽ
     * procomm -  zmodem procomm ͨѶʽ
     * seyon -  X ΪͨѶʽ
     * xc - xcomm ͨѶ׼
     * õĳʽ term  SLiRPṩʹ shell ʺŵ TCP/IP 
       ܣ
     * screen һҵ(multi-session)ĳʽʽĶ
       ̨
     * callback ֧ʽʹݻز㣮
     * mgetty+fax 񣬲ṩһͬ getty
     * ZyXEL  ZyXEL U-1496 ݻĿƳʽܲӣţز
       ܣ棬Լ书ܣ
     * SLIP  PPP 
       [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 ӳ
       ڵ֮һҵЩǱдгʽĿ¼
       
11. ʹؾ

   һЩֺܷõĴС...
   
11.1 kermit Լ zmodem

   Ҫ kermit ʹ zmodem Ļݼӵ .kermrc ȥ:
   
define rz !rz < /dev/ttyS3 > /dev/ttyS3
define sz !sz \%0 > /dev/ttyS3 < /dev/ttyS3

   ҪȷȷطڵĴвȻᣬҪʹõĻֻҪ kermit 
   ʾ¼ rz  sz <> ɣ
   
11.2 Զ趨ն˻ʽ

   ҪڵǩʱԶ趨ն˻ʽĻն˻ʽӵ
   /etc/inittab Ŀȥ һ̨ vt100 ն˻ ttyS1  Ҫ
   getty ָ ``vt100'':
   
S1:456:respawn:/sbin/getty ttyS1 DT9600 vt100

   Ҳʹ tsetǩʱն˻ԣҲҪ
   εԤֵ
   
11.3 ڴµĲɫ ls

    ls ΪɫԶն˻ģ⣬ص ls --color Լ
   ls --colour ʹòɫԣЩװʽʹ ls ԤΪʹòɫ 
   /etc/profile Լ /etc/csh.cshrc  ls  㲻޸ϵͳԤ
   ֵĻҲ ls  ls --no-color
   
11.4 ն˻ӵӡӡ

   һ vtprint ĳʽõ
   [66]ftp://ftp.sdsu.edu/pub/vtprint  [67]http://www.sdsu.edu/~garrett
   ȡã
   
   һ֧ xprt ĳʽҲ
   [68]ftp://sunsite.unc.edu/pub/Linux/system/printing ҵ
   
11.5 Linux ܹܲԶô豸?

   ԣҪ Linux ʱԶⲢ趨豸Ļһ:
   
/sbin/setserial /dev/ttyS3 auto_irq skip_test autoconfig

   ӵ /etc/rc.d/rc.local  /etc/rc.d/rc.serial 森 ÿһ
   ϣԶõĴвҪҪȷһϵ
   豸ƣ
   
  ಺ע
  
   춿λַԼ IRQs  setserial ʽ渽 rc.serial кܶ
   춶಺ϸڣλַԼ豸ƣ
   
11.6 ʹôп̨

   ڵʮڵ Linux Journal 
   [69]http://www.ssc.com/lj/issue36/index.html ƪ½ʹôп
   ̨(serial console) ҵǣĵʼ߶˻أϣƪ
   »ܿ URL  Linux Journal վУ
   
11.7 ߵĴ

   һʹ (E)IDE ŵϵͳ㷢Ҵв
   ȡ hdparm һ޸ (E)IDE һŵ IRQ 
    IRQs Կɹ ƷӦٶȲȷСĵض
   ֲᣬΪĳЩŵ/ƿϲϲҿٵϵͳ
   
   ҲԿһһ irqtune ĹߣԸıһװ IRQ ˳
   ݻڵĴвҲܸϵͳĴ irqtune ĳ
   (FAQ) [70]http://www.best.com/~cae/irqtune ҵ
   
12. һ...

   һڲҪĶǿܴһЩ Unix ԼͨѶһ
   ˽⣮
   
12.1 ʲ(lock files)?

   Lock files ֻǵһʾĳض豸ʹУ Ǳ
    /usr/spool/uucp  /var/lock 森 Linux  lock files ֶ
   LCK..nameе name 豸ƾһ UUCP ڵƣ Щ
   Щ locks ԱԼԶռ豸ĴȡȨ 
   ݻųȥһ lock Ѿʹݻ
    Lock files Ҫǰס豸ĳг̺(PID) 󲿷ݵ
   ʽ lockȻг̱(process table)豸г
    lock ǷȻЧ  lock ЧĻʽ(Ӧ
   )Ҫ ǣĳЩʽɾʱ lockȻʹø豸
   ִʱԼ lock ĳʽֻý豸ʹ
   У
   
12.2 ``baud''  ``bps''

   ``baud''  ``bps'' ǵ/ͨѶõ֮һ
   ʵϲͬʱ򣬺ܶԽʹЩ
   
   (baud)
          ÿݻ(modulator-demodulator)ͳٴ
          ѶŸıĶ 磬Ϊ 1200 ĺźÿ 833 ΢
          (microsecond)ıһΣ ձı 50, 75, 110, 300, 600,
          1200 Լ 2400󲿷ݵĸݻʹõıΪ 2400 Ϊ
          (voice-grade)绰·Ƶƣ 2400 ıʺѴĵ
          ֻڷǳĵ绰Ʒ² ``baud''һ Emile
          Baudot ֮УǷͬ籨ӡ(asynchronous telegraph
          printer)ķߣ
          
   ÿ봫λԪ(bps)
          ÿλԪÿӴλԪĶձÿλԪ
          50, 75, 110, 300, 1200, 2400, 4800, 9600, ... 115200 ʹ
          V.42bis ѹ(ѹ 4:1)ݻ£ÿλԪʿ
          ߴ 115200 ڴ ``baud'' ʱָ˼
          
   ԣݻ 2400 baud ܹ 14400 bps? 
   ÿ baud ʾĳһλԪʹ bps ܴ baud һ
   λԪһ baud ʱbps ͻᳬԽ baud 
   ݻ 14400 bps ߵĻ 2400 baud ٶÿ baud 
   λԪ
   
   ʼ? ţصĵݻĸݻ
   ʱÿλԪʸźŸıʵȫȵģ ÿ bit 
   һ baudǽʹ bps Լ baud Ϊǵͬ һ̨
   300 bps ݻźŸıҲ 300 ݻռһжıˣ
   ÿλԪʳźŸıʣ
   
12.3 ʲ UARTs? ӰЧ?

   UARTs (ͨ÷ͬתUniversal Asyncronous Receiver
   Transmitter) PC пϵľƬ ǵĹǰתλԪЩ
   λԪϴ·Ȼһ½ϣ UARTs λԪΪλ
   ϣܷҲ׼(ASCII)ԪС
   
   ٶһ̨ӵ PC ն˻һԪʱն˻
   ת(Ҳ UART һ) תָʰλԪ͵
   ·ϣÿһλԪ  PC һˣλԪ UART еλԪȻ
   λԪ鲢ҷŵȥ
   
   ֲͬ UARTs ͣ޴(dumb)UARTs - 8250 
   16450ԼȽȳʽ UARTs - 16550A Ҫ˽ǵĲͬ
   鵱 UART ͳһλԪʱ£
   
    UART ܶʲᴦֻͳԼ ÿͳ
   һλԪʱCPU Ӵ豸ӵһжϣ Ȼ CPU Ͱѽյ
   λԪ UARTs ĻᵽĳṩһλԪ UART 
   ͣ 8250 Լ 16450 UARTs ֻһλԪĻ˼ǣÿͳ
   һλԪͻж CPU һΣ ڵٵû⣮ڸ
   ٵĴ£CPU æ춴 UART ûʱ ĳЩ
   CPU û㹻ԣʱжϷ񣬸λԪ齫˿ٵش
   д
   
    16550A UARTs õĵطЩƬ 16 λԪȽȳ
    ˼ڱж CPU ֮ǰԽջת 16 λԪ飮 
   ܵȣ CPU Ҳͬʱȫ 16 λԪϣ ȻжϽ
   (threshold)赽 16 ģֻһλԪ黺 UARTs
   ȻһҪŵ㣮 CPU յٵжϣ˿ɵ
   ϲ©ʧÿ˶ܸˣ (Ҳ 16550  UART 16450
   һΪ⣮)
   
   һ˵ 8250 Լ 16450 UARTs Ӧܹʤθߴ 38400 bps Ĺ
    ڸ 38400 bps £ܿʼ©ʧ  PC ҵϵ
   ͳ(Ķܿ) DOS Ƕ๤ģпܿ 8250 
   16450s ȴӦĸã ΪʲЩ˲ûп©ʧֱǸ
    Linux ŷ
   
   -UART(Non-UART)ԼǻͶ಺ʹλ(DSP)ƬĻ
   Լƣ˸ܼ CPU ĸ 磬Cyclades Cyclom 
   Stallion EasyIO Щʹ Cirrus Logic CD-1400 RISC Ƭ࿨ʹ
    80186 CPU ر RISC CPU 룮
   
   ҪǵãЩ޴͵ UART ǻģֻǲʺٴ䣮 
   㽫ն˻ӵЩ UARTs ʱӦòѣ ǶԸݻ
   ԣ16550A ˵Ǳģ
   
   ԻһǮ 16550A UARTs ĴпֻҪѯʵ̸ÿ
   ʹõʲͺŵ UARTs ɣ ڵĿֻҪ
   ع 16550A Ƭûڵ 16450 UARTs Ƭ ǵĽλ
   (pin-to-pin compatible)Щ UARTs ;ʹã 
   ǵĻԺӣע⣬Ǯһ¿ܻʡ鷳
    $50 Ԫ£
   
13. ų

13.1 Ҳϵյ ``line NNN of inittab invalid''

   Ҫȷ init 汾ʹȷķûеһЩ init 
   /etc/inittab ʹòͬķ Ҫȷ getty 汾ʹȷ
   ķ
   
13.2 ʱ˵ ``/dev/cuaN: Device or resource busy''

   ܷ DCD  DTR û趨ȷʱ DCD Ӧֻ
   ʱ(˲ӽ)ű趨 getty ࿴òʱ 
   鲢ȷݻȷóֻʱ趨 DCD DTR Ӧκ
   ʹû࿴·ʱ趨 getty, kermit, ͨѶʽ
   
   һ ``device busy'' ձԭ趨ĴвʹһѾ
   ĳʹõжϣ ÿһ豸ʼʱᣬҪ Linux 
   ʹӲжϣ Linux ׷Ǹжϱָ˭ж
   Ѿռã豸ʵسʼ 豸Ĳûʲ취
   £˵㳢ȥʹʱӦ ``device-busy'' 
   ѶϢ еĿ(У̫·SCSI ȵ)ѰӲжϳͻ
   ĵط
   
13.3 ҳӵ ``Id SN respawning too fast: disabled for 5 minutes''

   ȷݻȷã鿴ݴ E  Q ܷݻ
    getty ͨʱ
   
   ȷȷش /etc/inittab  getty ʹôķ豸ƽ
   ص⣮
   
   · /etc/gettydefs ķǷȷ:
   
linux# getty -c /etc/gettydefs

   Ҳܷ uugetty ʹʧʱ [71]getty  uugetty Ȼ޷
    һڣ
   
13.4 豸Ǵ豸ֻܵ

   ӲжϿгͻȷûӲжǱģ еĿ(
   п, ̫·, SCSI ȵ)ȷ㴮豸趨Լ setserial 
   ȷģ ͬʱ /proc/ioports  /proc/interrups ȷǷгͻ
   
   
13.5 ҵݻĳ˶̱ uugetty ûִ

    DTR Ѷŵ¶ݻûʱᷢ Ϸ
   ʱҿҵ RD  SD LEDs ˸Ҫݻã 
   ݵ Hayes ݻʹ &D3 £ҵ USR Courier ϣ
   Ҫ &D2 Լ S13=1ݻֲᣮ
   
13.6 ҽҵն˻ҵ PC ϣǩ֮ᣬס

     * ʹ getty:  /etc/gettydefs Ŀû CLOCAL 
       ն˻ҿõĲ null modem ߣ Ҫ
       CLOCAL  Linux ݻźţ:
       
# 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

        kill  getty гг̻µĿ
     * ʹ agetty:  -L 굽 /etc/initab е agetty 
        ʹݻźţȻ init q ִ init
       Ŀ:
       
s1:345:respawn:/sbin/agetty -L 9600 ttyS1 vt100

13.7 ڸ£ҵݻ©ʧ

   㳢ڴ 38400 bps ʹݻ㲢û 16550A
   UARTs ĻӦҪ й UARTs ˵ [72]ʲ
   UARTs? һڣ
   
13.8 ϵͳʱLinux ûҵûر豸

   ʵLinux ϵͳʱûκε IRQ ⣬ֻ豸
    ԣҪʾйӲжϵĲݣΪֻǼٶʹñ׼Ӳ
   жϣ ΪӲжⲻɿҿܱƭģ
   
   Լʹҵ ttyS2  IRQ5Ȼ
   
Jan 23 22:25:28 misfits vmunix: tty02 at 0x03e8 (irq = 4) is a 16550A

    Linux ʱʹ setserial  Linux ʹõӲжϣ
   Linux ᣬԲ鿴 /proc/interrupts ˽õ IRQ ʲ
   ᣮ
   
13.9 ʹҵݻ Linux ʱ rz Լ/ sz 

    Linux 㳢Դ͵ʱѰ /dev/modem Ļ鿴 /etc/profile
   Լ /etc/csh.cshrc ĳЩ׼ЩطһЩ
   Slackware Щ zmodem ʽõǸǣ
   
13.10 ҵөĻӡܺԪ

   ڵѶλөĻʱ̨ᷢϣʱᷢ
   ڴϣ ޸ķ echo ^v^[cΪԪ֮
   :
   
linux% echo <ctrl>v<esc>c

13.11 getty  uugetty Ȼ޷

   getty_ps и DEBUG ѡ༭ /etc/conf.{uu}getty.ttySN õ
    DEBUG=NNN  NNN е֮һҪʲ
   :
   
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

   趨 DEBUG=010 Ǹʼĺõط
   
   ִ syslogd ĻѶļ¼ û
   ִ syslogd  getty Ѷ /tmp/getty:ttySN 
   uugetty Ѷ /tmp/uugetty:ttySN Ҳᱻŵ
   /var/adm/getty.log ȥ 鿴Ѷʲᣮܵǣ㽫
   ҪһЩõĲݻ
   
   ӦҲȥ mgettyЩʹʱΪˣ
   
14. ѶԴ

     * ֲָ(man pages): agetty(8), getty(1m), gettydefs(5),
       init(1), login(1), mgetty(8), setserial(8)
     * ݻֲ
     * NET-3 HOWTO: й·Ķ SLIP, CSLIP, Լ PPP
     * [73]PPP HOWTO: ʹ PPP
     * Printing HOWTO: 趨ӡ
     * Term HOWTO: ֪ term ʽ
     * UPS HOWTO: 趨Ĵв UPS
     * UUCP HOWTO:  UUCP Ѷ
     * Usenet Ⱥ:
       
comp.os.linux.answers
         Linux  FAQs, How-To's, READMEs ȵȣ
comp.os.linux.hardware
    Linux ҵϵͳӲԣ
comp.os.linux.networking
        Linux ·ͨѶ
comp.os.linux.setup
        Linux İװϵͳ

     * Linux еʼб(mailing list)ҪĻĵʼ
       [74]majordomo@vger.rutgers.eduд ``subscribe
       linux-serial'' д ``help''õһݸ˵
       ŷṩ Linux бͳ ``lists'' ָԵõ
       еʼбб
     * ۴ͨѶ಺пİƤ Cyclades 
       [75]http://www.cyclades.com ȡã
     * Modem FAQs:
       [76]Navas 28800 Modem FAQ
       [77]Curt's High Speed Modem Page
     * гʽд: [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. л

   ׫д HOWTO ǲܵ£ Ȼ HOWTO ݴ󲿷ݶд
   ҾдЩлάдʽԼй׵ˣ лÿ
   ׾ˣЩ˵бѾ޷г(һ) ر
   л Ted T'so йشʽĻش𣬻иά getty_ps 
   Kris GleasonԼά mgetty  Gert D&ouml;ring
   
   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/
