BBS水木清华站∶精华区

中文 Serial-HOWTO 
 
目录 
        0.      简介Introduction 
        0.1     New versions of this document 
        0.2     Recommended reading 
        0.3     Feedback 
        0.4     Disclaimer 
        1.      所支援的硬体 
        2.      DEVICE 是如何命名的 
        3.      什麽是 'getty_ps 2.0.7b'? 
        3.1     安装 
        3.2     设定 'getty' 
        4.      何如由魔电拨号出去 
        4.1     硬体需求 
        4.2     魔电连接 
        5.      如何由魔电接话与拨号 
        5.1     NUCP 使用者注意事项 
        6.      终端机的设定 
        6.1     硬体需求 
        6.2     'getty'的设定 
        7.      我可以用两个 serial ports? 
        8.      Linux 会自动检查 serial devices 吗? 
        9.      我的serial devices 在 /dev目录会是什麽号码? 
        9.1     用'mknod'指令产生DEVICE 
        10.     如何configure modem? 
        10.1    拨号的 configuration 
        10.2    通接话的 configuration 
        11.     如何将印表机接上 serial port? 
        12.     什麽是 locks, 其作用是什麽呢? 
        13.     什麽是 UARTs?  它们是如何影响效率的? 
        14.     'kermit': 快速启蒙 
        15.     问题解决 
        15.1    我仍有 "line XXX of inittab invalid" 错误讯息出现。 
        15.2    当我要用魔电拨号出去时,出现 "/dev/cuaX: Device or 
                resource busy"的讯息 
        15.3    为什麽有 "respawning too fast, disableing for 5 minutes" 
                的讯息出现? 
        15.4    我有魔电/终端机的连接,但是 root 却不能从 serial device 
                login ,为什麽? 
        15.5    我有设一终端机连接我的 PC,但是每次我输入名字进去时,就 
                锁住了,为什麽? 
        15.6    在高速之下,我的魔电都会遗失一些字元,而且电脑也会变得慢下 
                来? 
        16.     贡献 
 
==============================================================================. 
 
 
0.      Introduction 
 
        这是 Linux SERIAL-HOWTO文件,这文件是由原先 serial-FAQ 改篇而成 
        .  由於serial-FAQ 过时了,以後就不再出了。 
 
        这文件是描述 Linux serial drivers,和相关软体的使用。 
 
        我将尝试提供各类有关 serial 问题的解答。 
 
 
0.1     新版文件 
 
        新版文件可到如下的地方取得: 
        sunsite.unc.edu:/pub/Linux/docs.  当然它也会贴到有关的新闻铺上去。 
        像是在 comp.os.linux.announce 公告。. 
 
 
0.2     文件解读建议 
 
        - 使用 man 指令查下列指令: 
                init(1), getty(1), login(1) 
                gettydefs(4) 
                setserial(8) 
 
        - 个人魔电的手册 
 
        -  参考 Tom O'Reilly and Grace Todino,所写的书 
           "Managing UUCP and Usenet" 
          (highly recommended by nearly everyone) 
 
        - 其它的 HOWTOs:像 UUCP-HOWTO, Printing-HOWTO 
 
 
0.3     Feedback 
 
        请寄给我,你的建议、批评、或其它的。我很期望知道你们对这个文件的看 
        法。当然我也会力求改进的,但是千万别只告诉我"火阑",而告诉我什麽你 
        不了解,或是怎样才会更清楚。 
 
        若你发觉有错,也请尽快告诉我。 
 
 
0.4     Disclaimer 
 
        此文件中所给的答案,并不保证适合各个系统,和各种组合的机器。 
 
 
1.      所支援的硬体 
 
        Linux 支援标准的 PC serial 板, 内建魔电, 及一些多埠的 serial 板, 
        包括有: 
                Usenet Serial Board II 
                Boca 4-port (BB-1004), 
                8-port (BB-1008), 和 16-port (BB-2016) boards, 
                AST FourPort boards and clones. 
        一般而言,Linux 将支援任何使用 8250, 16450, 16550, or 16550A ( 
        或相容的) UART, 并指定 UART 暂存器给 386/486 上的8个I/O 埠。 
 
        Linux 不支援任何的 intelligent serial ports。 
 
        The Usenet Serial Board II is available from: 
        South Coast Computing Services, Inc. 
        phone +1 713 661 3301 
        email info@sccsi.com 
 
 
2.      serial devices 是如何命名的? 
 
        LINUX 有4 serial devices对应到  COM1 - COM4, /dev/cua0 - 
        /dev/cua3 and /dev/ttyS0 - /dev/ttyS3. The /dev/ttyS* 供拨进用 
        , /dev/cua* devices 供拨出用. 
 
        有一些的安装会额外产生两个DEVICE /dev/modem 给魔电 
         /dev/mouse 给滑  这两个都是以 
        symbolic links 到适当的 /dev/cua* 当然这都是安装时依你的指定做的 
 
        有人讲到有关於 /dev/mouse和 /dev/modem 这种symbolic links 的device. 
        我个人比较喜欢 实际名字的device,如此比较不会混淆. 不过各人喜好不同 
 
 
3.      什麽'是getty_ps 2.0.7b'? 
 
        这是另一版的 'getty', 它是处理一般LOGIN处理的程式, 这版的功能远比 
        旧版的来的好,目前的LINUX 大部分是用旧版的GTTY. 新版由 
         Paul Sutcliffe, Jr.  <paul@devon.lns.pa.us> 
        .  2.0.7b 是目前的版本,也函盖以往版本的功能。你若没有此版本的话, 
        我强烈建议你去取得,同样在一些找得到 linux 的ftp站上应该也找得到。 
 
3.1     安装 getty_ps 2.0.7b 
 
        首先取得软体, 台湾地区请从交大或其它地区取得。 
 
         SLS 1.0.1/1.0.2 的使用者必须注意,因为你的硬碟中可能会有两种的 
         'getty_ps' 。预设的版本是 2.0.4 版,另一个是 2.0.7b ,请确定你 
        使用的是那一版。 
 
        要确定你的 'getty_ps' 正常动作,必须拿掉不必的东东。我建议是 
        在 /etc/inittab 中的如下一行: 
        c2:23456:respawn:/etc/getty tty2 
        改成: 
        c2:23456:respawn:/etc/getty_ps tty2 VC console 
 
        并加入如下一行到 /etc/gettydefs: 
        VC# B9600 SANE CLOCAL # B9600 SANE -ISTRIP CLOCAL #@S @L login: #VC 
 
        然後,重新启动 'init': 像如下的动作 
        yourbox# init q         (for poegil init, use "kill -HUP 1") 
 
        如果你能用 'getty_ps'login 进去,就是能成功了。 将'getty_ps' 改名成 
        'getty', 或用符号链结。并确定你的 /etc/inittab 中所执行的是新版的 
        'getty'。 'getty_ps' 能处理旧版 getty  的语法。 
 
        一旦你成功安装,并确定能动的话,就能拿掉旧版的 getty 程式。 
        也要确定在各个目录如 /bin, /etc, /usr/bin, /usr/etc, /usr/man/man1, 
        和 /usr/man/cat1 下有关 getty 旧版的相关程式、文件是否都以更新成新版 
        的。并可以拿掉旧版的 /etc/gettytab 档,用新版的只需 /etc/gettydefs 
 
3.2     Customizing 'getty' 
 
        你可以为你的每一个埠设定参数,它们都有各自的组态档,如果你真的想 
        这样做的话。我并不鼓励如此做。一般你只要用一些常用的即可。你可以考 
        虑用 ALTLOCK 选项,并要确定所有的 LOCK 都适当的设定了。底下有一些 
        例子是有关 /etc/default 的。注意 /etc/default/getty 会被每一个的 
        执行中的 'getty'所使用到,而 /etc/default/getty.tty* 则只会被其中 
        一个所使用到。 
 
        /etc/default/getty:例子 
 
        SYSTEM=<systemname> 
        VERSION=/proc/version 
        LOGIN=/bin/login 
        ISSUE=/ etc/issue 
        CLEAR=NO 
        HANGUP=YES 
 
        /etc/default/getty.ttySX:例子 
 
        SYSTEM=<systemname> 
        VERSION=/proc/version 
        LOGIN=/bin/login 
        ISSUE=/etc/issue 
        CLEAR=NO 
        HANGUP=YES 
        INIT="" ATZ\r OK 
        TIMEOUT=60 
        WAITFOR=RING 
        CONNECT="" ATA\r CONNECT \s\A 
        ALTLINE=cuaX 
 
        /etc/default/uugetty.ttySX: 例子 
 
        ALTLOCK=cuaX 
        TIMEOUT=60 
        INIT="" ATZ\r OK 
        DELAY=1 
        CLEAR=NO 
 
        /etc/default/uugetty.ttySX:例子 
 
        SYSTEM=<systemname> 
        VERSION=/proc/version 
        LOGIN=/bin/login 
        ISSUE=/etc/issue 
        CLEAR=NO 
        HANGUP=YES 
        INIT="" ATZ1\r 
        ALTLINE=cuaX 
        ALTLOCK=cuaX 
        INITLINE=cuaX 
        TIMEOUT=60 
 
 
4.      如何用魔电拨号出去 
 
4.1     硬体需求 
 
        首先确定你有正确的硬体。你要正确的接上你的魔电到pc 上,通常用的缆线 
        是 DB25 pin 的,而一般的 9 pin 的都给 mouse 使用。 
 
        若用的是内接魔电,当然不用缆线的,不过要设定使用的中断是不会与其它 
        相冲的。 
 
        现在确认 port 没有在使用。检查有否 getty 程式正锁定此 port,或是有其 
        它的程式锁定。如有getty 锁定你的 serial port,则检查 /etc/inittab 档 
        中有用到 serial port 的几项。将那几行用"#",将其化成注解,之後重新启 
        动 init 程式。只要注解掉有 ttyS* 与 cua* 的几行即可,其它就不动。 
        tty* 的device 是你的虚拟console。 
 
        用 'kermit'来测试你的设定,连线应设到 device /dev/cua* 速度则设定到 
        你的魔电的极限。现在试试拨号,若你的魔电接法正确的话,你的魔电应该 
        对 "AT" 指令会有反应的,你输入"AT" 它应该会回应"OK"才对。一旦你的魔 
        电能动时,你就能使用更复杂的通讯程式,像是"Seyon" 或 "xconn"。 
 
 
5.      我要如何才能用魔电拨话与接话? 
 
 
        将旧的 'getty' 换成 'getty_ps'像上一节所写的一样。 
        更改 /etc/gettydefs 中,将 modems 的使用也加入。 
        就像底下的例子一样: 
 
        # Modem entries 
        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: #1200 
 
        1200# B1200 CS8 # B1200 SANE -ISTRIP HUPCL #@S @L @B login: #300 
 
        300# B300 CS8 # B300 SANE -ISTRIP HUPCL #@S @L @B login: #38400 
 
        如果你的魔电是9600 或更快并有 flow control, 你可以锁住你的 serial port 
        速度,使魔电能自动转换到其它的速度。然後在 /etc/gettydefs 档中就只要 
        有如下一行即可: 
 
        38400# B38400 CS8 # B38400 SANE -ISTRIP HUPCL #@S login: #38400 
        或是 
        19200# B19200 CS8 # B19200 SANE -ISTRIP HUPCL #@S login: #19200 
 
        如果你有设你的魔电做 RTS/CTS 硬体的 flow control,你可以加入 CRTSCTS 
        进去。 
 
        接著,确定你有设接话与拨话的deviec 给适当的埠使用。若你的魔电是在 
         /dev/cua1,那你就需要有一个device 叫 /dev/ttyS1。若你没有此device 
        看看底下的说明,去产生一个device。 
 
        更改你的 /etc/inittab,使得 'getty' 也会锁定你的 serial port: 
 
        可加如下的一行: 
        S1:456:respawn:/etc/getty ttyS1 38400 
        (                               ^-- 这数字是你魔电的最高速度) 
 
 
        用底下的方法启动'init': 
        yourbox# init q         (for poegil init, use "kill -HUP 1") 
 
        现在 Linux 就会锁定你的 serial port 等待连线。 
 
        此时你就可以高高兴兴等待别人拨号进入你的Linux 。 
 
5.1     注意了! UUCP 使用者 
 
        用 UUCP 方式进入的使用者,应该用 'uu_getty'而不是 'getty'. 
        uu_getty 是专门设计给 UUCP 的。详细的不同,请自己去参考。 
        主要是 uu_getty 会去检查  UUCP 产生的 lock 档。 
 
 
6.      如何设定一个接我的pc 的终端机 
 
6.1     硬体需求 
 
        确定你有正确的缆线。null 魔电的缆线在台湾听说买不到,要用别种的 
        来改装。不过至少的接法是如下: 
 
                        2 - 3 
                        3 - 2 
                        7 - 7 
                       20 - 20 
 
        这样若不能动作的话,那麽试试如下的接法: 
 
                        2 - 3                           接脚名称: 
                        3 - 2                           1 Frame Ground 
                        4 - 5                           2 TxD 
                        5 - 4                           3 RxD 
                        6 - 20                          4 RTS 
                        7 - 7                           5 CTS 
                        8 - 20                          6 DSR 
                       20 - 6                           7 Signal Ground 
                       20 - 8                           8 DCD 
                                                       20 DTR 
 
        你若有需要硬体的flow control 那麽pin 4 和 5 if是需要的。 
 
        接上端终机和电脑,如果可以,设定你的端终机忽略魔电的控制信号,试著 
        用这样的设定: 9600 bps, 8 data bits, 1 stop bit, no parity bits. 
 
6.2     设定 'getty' 
 
        将旧版的 'getty' 换成 'getty_ps' 像前面所说的一样。并在 
        /etc/gettydefs. 加上如下的几行: 
 
        # 9600 baud Dumb Terminal entry 
        DT9600# B9600 CS8 CLOCAL # B9600 SANE -ISTRIP CLOCAL #@S @L login: 
        #DT9600 
 
        (没有注解的那一行,不能分开成两行写) 
 
        你可以加 HUPCL 使得一旦你变换端终机之後, login 就会被杀掉。 
 
        更改 /etc/inittab 档,加上如下一行: 
 
        S1:456:respawn:/etc/getty ttyS1 DT9600 vt100 
 
        重新启动 'init' 
        yourbox# init q         (for poegil init, use "kill -HUP 1") 
 
        此时该应可以看到login的提示画面出现在你的端终机上。 
 
 
7.      我可以用 2 个serial ports?  我可以用,魔电、端终机与 mouse? 
 
        这些都有关联的,你所能用的 serial ports 是看可以用的中断而定。每一个 
        serial devices 必须有它的中断。在pc 每一个serial port 的号码是一个 
        device,但是有一些特殊的serial 卡是能够一个device 有多个serial port。 
 
        一般的 pc 有COM1 和 COM3 用 IRQ 4,  COM2 和 COM4 用 IRQ 3。要用两个以 
         上的 serial devices,当然就要放弃一个中断给多的serial edvice 用。一 
        个比较好的方式是拿一个给平行埠的中断来用,一般的PC 会将 IRQ5 和 IRQ 7 
        给 
平行埠用,但是很少人会用到两个平行埠的。你可以重指定一个中断给SERIA. 
        DEVICE,而仍然快乐地使用你的平行埠。不过你需要一个"setserial"的程式 
        来做这件事。可能的话,也需要调板上的 jumper。 
 
        底下的中断设定例子,是我的做法: 
        (/etc/rc.local 是放这些指令的好地方。): 
 
        /etc/setserial /dev/cua0 irq 3          # mouse 
        /etc/setserial /dev/cua1 irq 4          # terminal 
        /etc/setserial /dev/cua2 irq 5          # modem 
        /etc/setserial /dev/cua3 irq 9          # modem 
        # 我的印表机仍是用平行埠的 IRQ 7 - 没变 
 
        问题是 ISA bus 上的排线是连接在一起的,而且所有的排线是 TTL 闸所 
        驱动。会有两个devices 同时想要驱动一个 IRQ ,最後是它们在线上打架了 
        ,而有一 TTL 闸是用低电压驱动 IRQ 的,另一个却是用高电压驱动 IRQ 
        最後你得到的是一个不知道的行为。结果是有一个DEVICE 会嬴,然後 IRQ 
        就为它所用。底下是一般的设定: 
 
        标准的 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 (Reserved in PS/2) 
              IRQ  6    Floppy diskette 
              IRQ  7    Parallel port 1 
              IRQ  8    Real-time clock 
              IRQ  9    Redirected to IRQ2 
              IRQ 10    保留 
              IRQ 11    保留 
              IRQ 12    保留 (Auxillary device in PS/2) 
              IRQ 13    Math coprocessor 
              IRQ 14    Hard disk controller 
              IRQ 15    保留 
 
        There is really no Right Thing to do when choosing interrupts.  Just 
        make sure it isn't being used.  5 is a good choice.  If 5 is also 
        taken, I suggest 2 (which is the same as 9). 
 
8.      Linux 会自动检查 serial devices 吗? 
 
        会的,要 Linux 在开机时能自动检查并设定 serial devices 加底下一行 
        #define CONFIG_AUTO_IRQ 
        到 /usr/src/linux/chr_drv/serial.c 之中 
        当然,此时你就要重新编译 kernel. 
 
 
9.      一般的在/dev 目录下的serial devices 号码是多少呢? 
 
        一般的建议是如下: 
 
        /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 
 
9.1     用 'mknod' 指令产生device 
 
        如果你需要产生一个 device, 就用"mknod"指令来产生吧! 
 
        假设你需要产生一个 devices 给 cua0 (COM1):用类似的作法 
 
        yourbox# mknod /dev/cua0 c 5 64 
        yourbox# mknod /dev/ttyS0 c 4 64 
 
 
 
10.     如何 configure 魔电? 
 
        魔电有几个暂存器,你可以依个人喜好而变更。设好暂存器之後,再尝试 
        连接魔电。详细的暂存器设定请参考魔电的手册。 
 
        魔电有几个暂存器,你可以依个人喜好而变更。设好暂存器之後,再尝试 
        连接魔电。详细的暂存器设定请参考魔电的手册。 
 
10.1    拨号出去的 configuration 
 
        若只是要拨号出去而已,随你需要而 configure 。 
 
        我的偏好是要看结果,所以我设成 Q0,而且我也想看看我输入了什麽, 
        所以我设 E1. 
 
10.2    接话与拨号的 configuration 
 
        接话与拨号的使用,有一定的方法: 
 
        底下就是你要设定的东东: (在每个指令值之前加上 AT 
                                  指,例如 ATE0, 等等..) 
 
        E0      Command echo OFF 
        Q1      NO result codes are reported 
 
        如果你不完全关上魔电的talk,它就会和'getty' talk. 然後 'getty'程式 
        就会认为有人想要 log in, 它也就会产生 'login'执行。 
        这样就会混洧不清了。不正确的设定,可能会产生如下的错误讯息了 
        "respawning to fast"。 
 
        &C1     DCD is on after connect *only* 
 
        如果 DCD 都是 on, 表示有连接存在。而且 'getty' 就会想让人 login 进来 
        没有设这个的话,将会有 "device busy" 的错误讯息。 
 
        其它要设的有: 
 
        &S0     DSR is always on 
        &D3     DTR on/off resets modem 
        enable your data compression (看你的魔电是否有支援) 
        autobaud                     (同上) 
 
 
11.     如何将印表机接上 serial port? 
 
        在 Printing-HOWTO 中可找到答案。 
 
 
12.     什麽是 locks, 其作用又是如什麽? 
 
        Locks 只是一个档,说明著某一device 是正在使用中。这些是记录在 
        /usr/spool/uucp中。  Locks 的名字是像 LCK..<name>, 其中的<name> 
        是一个 device 名称,或是一个 UUCP 主机名字。有些程式会产生一些 
        locks 以便能独自使用那些 devices。例如,你用魔电拨号,有一个lock 
        就会告诉其它程式某人正使用魔电中。Locks 主要是包含那个锁定device 
        程式的PID。大部分的程式会查看 lock 并决定lock 是否还有效,是由 
        程式表中的程式是否还在。 lock 若有效,则程式应该还在程式表中,若 
        无效的话,这程式就可以锁定此device了。 
 
 
13.     什麽是 UARTs?  它是如何影响效率的? 
 
        UARTs (Universal Asyncronous Receiver Transmitter) 是位在你的 
        通讯设备中的晶片(像是络端机, PC 一端有一个)。它的作用是将字元 
        转换成 bits, 将它送出线路外,而另一端则是将收到的bits 还原成字元 
        UARTs 是非同步设备,因为字元传送的时段不是固定的。 
 
        例如你有一个终端机连上你 PC,当你输一个字元时,终端机就将它送到 
        UART。 UART 则将字元的每一个bit 递送到 序列线上,一次一个bit 在 
        一特定的速度。而我们有各种 110,330,1200,2400,...每秒的bit数的速度 
        。这是简单的量魔电速度的方法。在另一端则依序收下每一个bit 并转成 
        字元。 
 
        目前有几种的 UARTs. 你可以听过 dumb UARTs - 像 8250 和 16450, 或是 
        smart 或 FIFO UARTs - 像 16550A。要了解它们的不同,首先我们看看当 
        一个 UART 收到一个字元时,会发生什麽事情。 
 
        UART 本身不对字元做任何事,而只是传送与接收它们。当一个字元被处理 
        完之後,CPU 就会得到一个中断。 8250 和 16450 UARTs 只有一个字元的 
        缓冲区。这就是说,每一次一个字元被处理完,它就中断 CPU。在低速下, 
        这还不错。但是在高速传送下,CPU 就显的很忙来处理 UART ,也没有其它 
        的时间来注意其它的工作。有时CPU会无法及时来处理中断,所以字元就会 
        被盖过了。 
 
        这也就16550A UART出现的原因。这些晶片具有16字元的缓冲区。这就是说 
        每次接传16个字元,才会处理一次中断。不仅是等待,而且 cpu 也能一次 
        传送16个字元。这是一个比其它UART明显的优点。cpu 处理少一点的中断 
        也能有多一点的时间来处理其它事。 
 
        一般而言,8250 和 16450 UARTs 在速度 19200 bps 之下还算不错。 
        超过 19200, 你就会看到字元遗失,计算速度也降低了。 
 
        要记住的是:dumb UART 并非就是不好或有害,而只是不适合在高速下 
        运作。用这些 UART 来连接 终端机,滑鼠 应该不会有问题的。但对一个 
        高速的魔电,那 16550A 是必须的。 
 
        你可用多一点钱买有 FIFO UARTs 的 serial 卡,或是你也可以只买一个 
        16550A 的晶片来更新。16550A 与 16550 UARTs 的接脚是相容的。当然 
        买一个新卡是比较省事的方法。 
 
 
14.     'kermit': 快速启蒙 
 
        'kermit' 是众多通讯程式之一,它几乎是被 port 到各种的机器上了。 
        你若是一个新手,kermit 是一个使用魔电的简单方法。 
 
        启动 'kermit' 用 "kermit" 指令。你将需要设定一些东西,你的魔电才 
        能使用。你也许将这些指令存在  $HOME/.kermrc 以後就不用每次去设定 
        底下是一个例子: 
 
        set line /dev/cua3      # 使用serial device 
        set modem v42-telebit   # 使用的魔电型别 
        set speed 38400         # 速度 
 
        此时,你可以输入 "c" 来连接上魔电,并用 "at" 指令来手动拨号。或在 
        kermit> 此提示符号下,使"dail"指令拨号。 
 
        如果你要用 zmodem 档案传输协定,你可以将以下的两行: 
 
        define rz !rz </dev/cua3 >/dev/cua3 
        define sz !sz \%0 >/dev/cua3 </dev/cua3 
 
        加到你的.kermrc 档中(其中的device 是看你使用的而定) 
 
        这只是一个快速启蒙,更详细的介绍请用 man 查 'kermit'。 
 
 
15.     问题的排除 
 
15.1    我还是有这样的 "line XXX of inittab invalid" 讯息出现 
 
        确定你的 init 设定是否合乎语法。不同的 'init' 程式有它们自己的 
        /etc/inittab 档案的写法。并且要检查使用的getty 的语法是否也是合乎 
        语法的规则。 
 
15.2    当我要拨号时,出现 "/dev/cuaX: Device or resource busy" 的讯息 
 
        这是一个常常遇到的问题。可能的原因有很多种,不过若是你是小心地 
        依指示来安装,应该不会出现这样的问题。 
 
        最普遍的原因是 DCD 设定不正确。DCD 是当实际有连接时,才能设定,而不 
        是在 getty 锁定此 port 时设定的。当 getty 知道 DCD 已设定时,它就会 
        锁定那个 port 并呼叫 login 程式,出现 login 画面。检查以确定你的魔 
        电在连接时,是 configure 到唯一的DCD 。DTR 和 RTS 在有些被使用时 
        应该被设定,或是锁定连线,像是  'getty', 'kermit', 或是其它的通讯程 
        式一样。 
 
        另外可能的原因是使用的中断与其它设备使用的中断相冲。当每一个 device在 
        被初始时,都会要求 linux 允许它使用硬体中断。 
 
        Linux 记录每一个中断是分配给那一个device,而且如果你要的中断已经给 
        别的device 时,你的 device 就不能正确的初始化了。deviec 并没有其它 
        的方式告诉你发生这种事了,除了在你要使用此 device 时,它才会告诉你 
        device-busy 的错误讯息。 
 
        这问题的解决是重建 kernel,在做完 "make config"之後,对於没的device 
        都要回答 "no" 。当然另外是直接改原始的程式中的设定:类似如下的例子 
        "grep IRQ /usr/src/linux/include/linux/*" 得到有行是 
        "#define MOUSE_IRQ 5" 在 busmouse.h.  就改成适当的值就可以了。 
 
        另外就是直接找出相冲的硬体,看是否改变其中一个的中断设定。 
 
15.3    我有这样的错误的讯息"respawning too fast, disableing for 5 minutes". 
 
        确定你的魔电 configured 正确。看看暂存器E 和 Q。这通常是因为你的 
        魔电和getty 程式在"聊天"。 
 
15.4    我有一个 魔电/端终机 的连接,但是 root 却无法从 serial device 
        login进来。 
 
        这样的目的是安全考量。一般而言,你应该只允许root从 主控台 login 
        进来。因为若允许 root 从任何地方 login 的话是非常的危险的。 
 
        不过你还是可以改 /etc/login.defs, 并找出有 CONSOLE的一行, 
        将 serial device 名称加入即可。例如我有一个终端机在 /dev/ttyS1. 
        我就原先那一行: 
        CONSOLE tty1:tty2:tty3:tty4:tty5:tty6:tty8 
        改成: 
        CONSOLE tty1:tty2:tty3:tty4:tty5:tty6:tty8:ttyS1 
        即可。 
 
15.5    我已设一终端机接上我的 pc,但是只要我输入login 名字之後,就 
        锁住了。 
 
        你可以没有设 CLOCAL 给 /etc/gettydefs 档中的终端机项。 
        你必须设 CLOCAL.  底下是一个例子: 
 
        # 9600 baud Dumb Terminal entry 
        DT9600# B9600 CS8 CLOCAL # B9600 SANE -ISTRIP CLOCAL #@S @L login: 
        #DT9600 
 
        接著下"kill -HUP" 强迫'getty' 程式重读 /etc/gettydefs 内容。 
 
15.6    在高速之下,我的魔电会遗失一些字,而且电脑也跟著慢下来。 
 
        如果你要让你的魔电速度超过 19200 bps,而你没有 16550A UARTs, 
        你应该要更新了,看前面有关 UARTs 的部份。 
 
16.     贡献 
 
        一个人是不可能完成 HOWTO 这文件,底下即是一些有所贡献的人 
 
 
        Brandon S. Allbery <bsa@kf8nh.wariat.org> 
        Karl Buck <kxb@cis.ksu.edu> 
        Bryan Curnutt <bryan%uhura1@uunet.uu.net> 
        Arthur Donkers <arthur%ptt-iat@nluug.nl> 
        Karlheinz Hagen <kalle@dg8lav.toppoint.de> 
        Michael Hamilton <hamilton@golem.wcc.govt.nz> 
        Wayne Hayes <wayne@csri.toronto.edu> 
        John Henders <jhenders@jonh.wimsey.bc.ca> 
        Ed Carp <erc@apple.com> 
        Cheng Chang Huang <huangch@cps.msu.edu> 
        Camillus Jayewardena <jayeward@abs.ascom.ch> 
        Jerry Kaidor <jkaidor@synoptics.com> 
        Juha Laiho <jlaiho@ichaos.nullnet.fi> 
        Bambang N. Prastowo <prastowo@qucis.queensu.ca> 
        Mark Schwabacher <schwabac@yoko.rutgers.edu> 
        Andrew Tefft <teffta@engr.dnet.ge.com> 
        Theodore Ts'o <tytso@Athena.MIT.EDU> 
 
翻译者:CRH 在台湾工业技术学院 管理研究所 资管学程 
E-MAIL:m8109009@cs.ntit.edu.tw   (有效期限 83年6月 最好是这样) 
 
 
 

BBS水木清华站∶精华区