








			   Linux Serial HOWTO 

		 : Greg Hankins greg.hankins@cc.gatech.edu

			      : Asd L. Chen &
				      C.W.Huang

	      v1.11, 15 November 1997 : 18 November 1997



				   Abstract

     ļ Linux 趨ͨѶ豸



1.  

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

1.1  Ȩ

İȨ Greg Hankins(copyright (C) 1993 - 1997)ļ LDP
İȨɢ: 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 http://sun
site.unc.edu/LDP/COPYRIGHT.html.  This document may not be distibuted in modi
fied form without consent of the author.

1.2  ļ°汾

° Serial HOWTO ŵ

ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO/Serial-HOWTO
Լӳڵ㣮һЩ  Postscript  Լ DVI ʽİ汾 other-formats
Ŀ¼ һ Serial HOWTO Ҳ http://sunsite.unc.edu/LDP/HOWTO/Serial-
HOWTO.html ȡãҲÿ¶ڵ comp.os.linux.answers

1.3  

뽫κε⣬ۣ򲹳ݼ͸ңԶ HOWTO
뷨 ҲСĵעĽ!
ȷʵظʲ᲻ĵطʲطдø
Ծʼλַ greg.hankins@cc.gatech.edu ϵ
еʼҶظҪһڻʱ䣬Ҷæ


Linux Serial HOWTO 						      1





Linux Serial HOWTO 						      2



յһ root 趨վ̨
ʵݼŸңȷĵʼϵͳʹܹŸ㣮
֮㻹ûյҵĻ볢ټһΣ

ҲԽĵַԳٻĴͳż:

Greg Hankins

College of Computing

801 Atlantic Drive

Atlanta, GA 30332-0280

ԼȫѶҵҳ

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 








Linux Serial HOWTO 						      3



     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)

    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: info@comtrol.com or http://www.comtrol.com









Linux Serial HOWTO 						      4



     driver status: supported by Comtrol

     driver location: 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, 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: sales@cyclades.com or http://www.cyclades.com

     driver status: supported by Cyclades

     driver location: ftp://ftp.cyclades.com/pub/cyclades and included in Linux
     kernel since version 1.1.75

    Decision PCCOM8 (8 ports)

     contact: pccom8@signum.se

     driver location: 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: sales@dgii.com or http://www.dgii.com

     driver status: supported by Digi

     driver location: 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, 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, fray@krypton.mankato.msus.edu has graciously volunteered to
     make the driver available if you need it.	Mark is not maintaining or sup
     porting the driver.








Linux Serial HOWTO 						      5



    Equinox SuperSerial Technology (30MHz ASIC; 2 - 128 ports)

     contact: sales@equinox.com or http://www.equinox.com

     driver status: supported by Equinox

     driver location: 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: spot@gtek.com or http://www.gtek.com

     driver status: supported by GTEK

     driver location: ftp://ftp.gtek.com/pub

    Hayes ESP (COM-bic; 1 - 8 ports)

     contact: Andrew J. Robinson, arobinso@nyx.net or
     http://www.nyx.net/~arobinso

     driver status: supported by author

     driver location: http://www.nyx.net/~arobinso and included in Linux kernel
     since version 2.1.15

    Maxpeed SS (Toshiba; 4, 8 and 16 ports)

     contact: info@maxpeed.com or http://www.maxpeed.com

     driver status: supported by Maxpeed

     driver location: ftp://maxpeed.com/pub/ss

    Moxa C218 (12MHz 80286; 8 ports),

     Moxa C320 (40MHz TMS320; 8 - 32 ports)

     contact: info@moxa.com.tw or http://www.moxa.com.tw

     driver status: supported by Moxa

     driver location: ftp://ftp.moxa.com.tw/drivers/c218-320/linux

    SDL RISCom/8 (Cirrus Logic CD180; 8 ports)

     contact: sales@sdlcomm.com or http://www.sdlcomm.com









Linux Serial HOWTO 						      6



     driver status: supported by SDL

     driver location: ftp://ftp.sdlcomm.com/pub/drivers

    Specialix SIO (20MHz Zilog Z280; 4 - 32 ports),

     XIO (25MHz Zilog Z280; 4 - 32 ports)

     contact: Simon Allen, simonallen@cix.compulink.co.uk

     driver status: BETA

     driver location: 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: sales@stallion.com or http://www.stallion.com

     driver status: supported by Stallion

     driver location: ftp://ftp.stallion.com/drivers/ata5/Linux and included in
     linux kernel since 1.3.27


 Comtrol, Cyclades, Digi,  Stallion ĲƷ 1995 ·ݵ Linux Jour
nal ƪع£ ƪ¿ 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:








Linux Serial HOWTO 						      7



     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 μ
ʹóĴװ? (section 8., page 17) һ˵趨 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*

3.1.1   /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


⽫ᴦ߽Լ߳ȥ豸֮趨ȷȨޣ









Linux Serial HOWTO 						      8



3.2  һ಺ע

Ķ಺ʹõ豸ʹһֶ಺ Щϸϸ渽 setse
rial ʽ 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
ȷʹȷ﷨

4.1.1   getty_ps

      󲿷 Linux  װ׼װ getty_ps ׼ʽ: getty
̨Լն˻豸ʹã uugetty ݻʹõģ
Ϊұʹ汾 gettyļҽ춴׼

4.1.2   mgetty

mgetty һݻʹõ getty 汾 ܹǩ֮⣬ mgetty
Ҳṩ(FAX)֧ԮԶ PPP ⣮  mgetty
ļд൱غãҪٲʲᣮοİװ˵ Ҳ
http://www.leo.org/~doering/mgetty/ ҵ mgetty Ѷ










Linux Serial HOWTO 						      9



4.1.3   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 ͷ
ݻӵһвϣҪĸ˵οݻֲᣮ

5.1.1  ڽʽݻע

ڽʽݻԣ㲻ҪߣڽʽݻҪвԼڽһ
ֻҪһûбʹõӲжϸøòλַ㿨ĳοݻֲᣮ
ͬҪѡжԼλַϵİ
ʹóĴװ? (section 8., page 17) һڵ˵

ĳЩصݻȡĴвԱͻ ɾ߻ BIOS
趨쵽ֲᣮ

 IBM8514 ѶһҪڽʽݻ ttyS3
ĻܻһЩ⣮  Linux û⵽ ttyS3
ϵڽʽݻʹ setserial ʽ趨Ȼݻ 
ttyS{0-2} ϵڽʽݻӦòκ⣮ 춴ѶĴ Linux
 ttyS3 ûκԶĶ

5.2  ݻ̸

ʹøӵͨѶʽ SLIP  PPP ֮ǰ kermit
򵥵ͨѶʽЩ趨 Դ http://www.columbia.edu/kermit/
Լӳڵҵµ kermit 汾 磬Ҫݻ ttyS3
ϣҿԽ 115200 bps Ļ:













Linux Serial HOWTO 						     10



     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 Serial HOWTO 						     11



     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:

ҪһЩָй ͨѶ (section 10., page 20) һ˵

ݻųȥʱݻ赽֧Ԯٶȣ Linux 
libc 5.x Ѿ֧Ԯ 115200 bps libc ͨ
/lib˵￴һʲ汾  Linux ޷ϵ 57600  115200
bps setserial ʽĴв赽ߵٶȣ
Ҫ趨 νҵĴв趨Ϊٶ? (section 9., page 19)
ý˵ ȻͨѶʽｫٶ赽 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
ƣҪοݻֲᣬΪڲͬݻ֮ǲͬģ
ݻ֧Ԯ趨ĻҪȷôݻ








Linux Serial HOWTO 						     12



6.  Ҫݻ getty_ps 뼰?

ݻܹȷزųȥ㻹ûж ݻųȥ (sec
tion 5., page 9) һڵĻȥ
зǳҪ趨ѶֻݻĻ㲻Ҫ˽ڣ

6.1  뼰ݻ

ҪܲԼųȥĻȷʵ趨ݻһζݻʹ
AT ָȺ

     E1       ػӦָ
     Q0       رӦ
     V1       ߳ģʽ
     S0=0     Ҫ (uugetty  WAITFOR ѡ)


ûȷ趨õʼ(INIT)ִܻʧܣͣס
ǣиõѡ...

     &C1     DCD ֻſ
     &S0     DSR ԶΪ
	     DTR /ر ݻݻ̶ - RTFM)


ЩӰݻйؿʼԼŵĶ

ݻ֧Ԯ趨͸õʼִ趨Щ
һЩݻ DIP
Ӱݴ趨ҲҪȷЩ趨ȷģ

Ѿʼռͬݻ趨
ĿǰΪֹһֻǵһС֣Ҫ͸Ŀǰãǳӭ!
ԴЩȡЩ趨: ftp://ftp.cc.gatech.edu/pub/people/gregh/modem-con
figs

ע: Ϊҵ 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

 ftp://sunsite.unc.edu/pub/Linux/system/serial µİ汾
رأʹøͨѶ(57600  115200 bps)ȡ 2.0.7j
İ汾 Ҳ libc 5.x ֮İ汾

Ԥֵgetty_ps  Linux ĵϵͳ׼(FSSTND, File System Stan
dard)ã˼Ƕλ뽫 /sbin £õ
/etc/conf.{uu}getty.ttySN  㲢ܴļҵҲٶ lock
files Ҫŵ /var/lock Ŀ¼Ҫȷ /var/lock Ŀ¼









Linux Serial HOWTO 						     13



㲻 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 login: #F115200

ҪĻ uugetty ǩʱıӡЩȤĶ








Linux Serial HOWTO 						     14



ҵӡϵͳƣ·ԼĿǰÿλԪʣ
ԼĶ

	    @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 豸
ûȷ豸  /dev н豸 (section 3.1.1, page 7)
ý˵ν豸ҽЩ豸 ϣ 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








Linux Serial HOWTO 						     15



ͻĴвִ(㻷ȷѶȡ -
õλãвٶȣԤն˻ʽ):

     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
					    |








Linux Serial HOWTO 						     16



	  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 ǩıӡһЩȤĶ
ҵӡϵͳԼ·ԼĶ:









Linux Serial HOWTO 						     17



     @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
;ϱֵ÷ǳã ̨ http://www.columbia.edu/kermit/
ҵκִҵϵͳʹõѱ kermit 汾 е DOS
ͨѶʽ telix Լ procomm Ҳһõı֣
ҪȷȷĴвѶն˻-˵ԵͨѶ趨ȥ


8.  ʹóĴװ?

㲻ҪĶһڣҪʹĴ豸...(ٶûж಺Ļ)

һŵĴвǵģԣ
ʹõĴвĿǱʹõӲжҪԼλַĿ
Ⲣ Linux ƣ PC
ŵƣָжϸλַÿһ豸
豸ǴвڽʽݻǶ಺

಺Ϊӵвдвʹõͬ IRQ رƵģ
Linux ԿϵÿһʹòͬλַԱǻȡϣ










Linux Serial HOWTO 						     18



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/inter
rupts ȷûгͻ

8.2  趨豸λַ

貺λַ鿴ֲ趨жϣÿλַֻһ豸
Ĳͨó








Linux Serial HOWTO 						     19



	  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￴һõİ汾ʲᣮ
     ӦóʽѾȡôŵ㣬ֱʹ( setse
     rial) ׼Ѿˣ汾 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ԼϷװƣ
·һв趨:









Linux Serial HOWTO 						     20



     setserial -a /dev/ttyS3


10.  ͨѶʽ

һͨѶʽбʹõķ׼ͷûеĻЩһ
FTP վҵ

    ecu - һͨѶʽ

    C-Kermit1	- Яģɳ򻯵Ĵм TCP/IP
     ͨѶʽת

    minicom -  telix ͨѶʽ

    procomm -  zmodem procomm ͨѶʽ

    seyon -  X ΪͨѶʽ

    xc - xcomm ͨѶ׼

    õĳʽ term  SLiRPṩʹ shell ʺŵ TCP/IP ܣ

    screen һҵ(multi-ses
     sion)ĳʽʽĶ̨

    callback ֧ʽʹݻز㣮

    mgetty+fax 񣬲ṩһͬ getty

    ZyXEL  ZyXEL U-1496
     ݻĿƳʽܲӣţزܣ棬Լ书ܣ

    SLIP  PPP  ftp://sunsite.unc.edu/pub/Linux/system/net
     work/serial ҵ

     ftp://sunsite.unc.edu/pub/Linux/system/serial Լ
     ftp://sunsite.unc.edu/pub/Linux/apps/serialcomm
     ӳڵ֮һҵЩǱдгʽĿ¼


11.  ʹؾ


һЩֺܷõĴС...

11.1  kermit Լ zmodem

Ҫ kermit ʹ zmodem Ļݼӵ .kermrc ȥ:

     define rz !rz < /dev/ttyS3 > /dev/ttyS3

____________________

1. <URL:http://www.columbia.edu/kermit/>







Linux Serial HOWTO 						     21



     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 ĳʽõ ftp://ftp.sdsu.edu/pub/vtprint 
http://www.sdsu.edu/~garrett ȡã

һ֧ xprt ĳʽҲ ftp://sunsite.unc.edu/pub/Linux/sys
tem/printing ҵ

11.5  Linux ܹܲԶô豸?

ԣҪ Linux ʱԶⲢ趨豸Ļһ:

     /sbin/setserial /dev/ttyS3 auto_irq skip_test autoconfig


ӵ /etc/rc.d/rc.local  /etc/rc.d/rc.serial 森
ÿһϣԶõĴвҪҪȷһϵ豸ƣ

11.5.1	಺ע

춿λַԼ IRQs  setserial ʽ渽 rc.serial
кܶ춶಺ϸڣλַԼ豸ƣ

11.6  ʹôп̨

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









Linux Serial HOWTO 						     22



11.7  ߵĴ

һʹ (E)IDE ŵϵͳ㷢Ҵвȡ
hdparm һ޸ (E)IDE һŵ IRQ ڼ IRQs
Կɹ
ƷӦٶȲȷСĵضֲᣬΪĳЩŵ/ƿϲϲҿٵϵͳ

ҲԿһһ irqtune ĹߣԸıһװ IRQ
˳ݻڵĴвҲܸϵͳĴ irqtune
ĳ(FAQ) 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-demodula
	    tor)ͳٴѶŸıĶ 磬Ϊ 1200 ĺźÿ
	    833 ΢(microsecond)ıһΣ ձı 50, 75, 110, 300,
	    600, 1200 Լ 2400󲿷ݵĸݻʹõıΪ 2400
	    Ϊ(voice-grade)绰·Ƶƣ 2400
	    ıʺѴĵֻڷǳĵ绰Ʒ²
	    ``baud''һ Emile Baudot ֮УǷͬ籨ӡ(asyn
	    chronous telegraph printer)ķߣ

      ÿ봫λԪ(bps)
	    ÿλԪÿӴλԪĶձÿλԪ 50,
	    75, 110, 300, 1200, 2400, 4800, 9600, ... 115200 ʹ V.42bis
	    ѹ(ѹ 4:1)ݻ£ÿλԪʿԸߴ
	    115200 ڴ ``baud'' ʱָ˼










Linux Serial HOWTO 						     23



ԣݻ 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








Linux Serial HOWTO 						     24



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 ʹʧʱ getty  uugetty Ȼ޷ (sec
tion 13.11, page 26) һڣ










Linux Serial HOWTO 						     25



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 ˵ ʲ UARTs? (section 12.3,
page 23) һڣ

13.8  ϵͳʱLinux ûҵûر豸

ʵLinux ϵͳʱûκε IRQ ⣬ֻ豸⣮
ԣҪʾйӲжϵĲݣΪֻǼٶʹñ׼Ӳжϣ
ΪӲжⲻɿҿܱƭģ

Լʹҵ ttyS2  IRQ5Ȼ

     Jan 23 22:25:28 misfits vmunix: tty02 at 0x03e8 (irq = 4) is a 16550A








Linux Serial HOWTO 						     26



 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










Linux Serial HOWTO 						     27



    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)ҪĻĵʼ major
     domo@vger.rutgers.eduд ``subscribe linux-serial''
     д ``help''õһݸ˵
     ŷṩ Linux бͳ ``lists''
     ָԵõеʼбб

    ۴ͨѶ಺пİƤ Cyclades  http://www.cyclades.com
     ȡã

    Modem FAQs:

     Navas 28800 Modem FAQ2

     Curt's High Speed Modem Page3

    гʽд: Advanced Programming in the UNIX Environment4 , by W.
     Richard Stevens (ISBN 0-201-56317-7; Addison-Wesley)

     POSIX Programmer's Guide5 , by Donald Lewine (ISBN 0-937175-73-0;
     O'Reilly)



____________________

2. <URL:http://web.aimnet.com/~jnavas/modem/faq.html>

3. <URL:http://www.teleport.com/~curt/modems.html>

4. <URL:http://heg-school.aw.com/cseng/authors/stevens/advanced/advanced.nclk>

5. <URL:http://www.ora.com/catalog/posix/>







Linux Serial HOWTO 						     28



15.  л

      ׫д HOWTO ǲܵ£ Ȼ HOWTO
ݴ󲿷ݶдģҾдЩлάдʽԼй׵ˣ
лÿ׾ˣЩ˵бѾ޷г(һ)
رл Ted T'so йشʽĻش𣬻иά getty_ps  Kris
GleasonԼά mgetty  Gert Dring

SERIAL HOWTO 





















































Linux Serial HOWTO 						     29





































































				   CONTENTS



1.   .................................................................... 1
    1.1   Ȩ .......................................................... 1
    1.2   ļ°汾 ................................................ 1
    1.3    .............................................................. 1
    1.4    .......................................................... 2

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

3.  вʲ? ..................................................... 6
    3.1    /dev Ĵ豸ҪʹҪ .............................. 7
    3.2   һ಺ע .............................................. 8
    3.3   ǻͶ಺ע ............................................ 8

4.  Ӧ֪Ȥʽ ...................................................... 8
    4.1   ʲ getty? ..................................................... 8
    4.2   ʲ setserial? ................................................. 9

5.  ݻųȥ? ................................................. 9
    5.1   Ӳ .......................................................... 9
    5.2   ݻ̸ .................................................. 9
    5.3   õݻ ............................................... 11
    5.4   Ӳ ..................................................... 11

6.  Ҫݻ getty_ps 뼰? .............................. 12
    6.1   뼰ݻ ........................................... 12
    6.2   װ getty_ps .................................................... 12
    6.3   趨 uugetty ..................................................... 13
    6.4   Զ uugetty ..................................................... 14

7.  趨ն˻ߵҵ PC ? ...................................... 15
    7.1   Ӳ ......................................................... 15
    7.2   趨 getty ....................................................... 16
    7.3    PC 趨ն˻ע ..................................... 17

8.  ʹóĴװ? .......................................... 17
    8.1   ѡ豸жλַ ........................................... 18
    8.2   趨豸λַ ............................................... 18

9.  ҵĴв赽ϸߵٶ? ҵݻӦʹʲٶ? .... 19

10. ͨѶʽ ......................................................... 20

11. ʹؾ ........................................................... 20
    11.1  kermit Լ zmodem ............................................... 20
    11.2


				       i









	  Զ趨ն˻ʽ ............................................... 21
    11.3  ڴµĲɫ ls ............................................ 21
    11.4  ն˻ӵӡӡ ................................... 21
    11.5  Linux ܹܲԶô豸? ................................ 21
    11.6  ʹôп̨ ................................................... 21
    11.7  ߵĴ ................................................... 22

12. һ... ............................................................ 22
    12.1  ʲ(lock files)? ...................................... 22
    12.2  ``baud''  ``bps'' .............................................. 22
    12.3  ʲ UARTs? ӰЧ? .................................. 23

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

14. ѶԴ ......................................................... 26

15. л ................................................................... 28



























				       ii


