Subject: 中文 Serial HOWTO

From: crh2@sparc1 ()
Date: 16 Apr 1994 05:14:22 GMT

==========================================
目的工款   希望眾人 看有 對你有幫助
==========================================

目錄 
        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 [email-masked]

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.  <[email-masked]>
        .  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 使用。

        若用的是內接魔電，當然不用纜線的，不過要設定使用的中斷是不會與其它
        相衝的。

4.2     接上魔電

        現在確認 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
        給 平行埠用，但是很少人會用到兩個平行埠的。你可以重指定一個中斷給SERIAL
        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 <[email-masked]>
        Karl Buck <[email-masked]>
        Bryan Curnutt <[email-masked]>
        Arthur Donkers <[email-masked]>
        Karlheinz Hagen <[email-masked]>
        Michael Hamilton <[email-masked]>
        Wayne Hayes <[email-masked]>
        John Henders <[email-masked]>
        Ed Carp <[email-masked]>
        Cheng Chang Huang <[email-masked]>
        Camillus Jayewardena <[email-masked]>
        Jerry Kaidor <[email-masked]>
        Juha Laiho <[email-masked]>
        Bambang N. Prastowo <[email-masked]>
        Mark Schwabacher <[email-masked]>
        Andrew Tefft <[email-masked]>
        Theodore Ts'o <[email-masked]>

翻譯者：ＣＲＨ　在台灣工業技術學院 管理研究所 資管學程
E-MAIL：[email-masked]   (有效期限 83年6月 最好是這樣)
         ================================
         台灣俗語咧講：做牛著拖  做人著磨
         ================================

--
 ==========================================
  阮的故鄉 是底咧 台灣中部耶彰化縣寶斗鎮啦
  阮這陣是 店底咧 台灣頂港耶台北縣樹林鎮啦
 ==========================================
  歹勢啦! 這段哄 用台語呷這通喔   衰尾道人