麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁(yè) > 系統(tǒng) > FreeBSD > 正文

FreeBSD handbook中文版 15 串口通訊

2024-07-26 00:29:04
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
目錄
15 串口通訊
15.1 概要
15.2 介紹
15.3 終端
15.4 撥入服務(wù)
15.5 撥出服務(wù)
15.6 設(shè)置串行控制臺(tái)
=============================================================
第15 章串口通訊
=============================================================
(翻譯中出現(xiàn)的任何問(wèn)題或錯(cuò)誤,請(qǐng)廣大讀者及時(shí)反饋給我:[email protected]
15.1 概要
UNIX 都是支持串口通訊的。事實(shí)上,早期的UNIX 系統(tǒng)就是利用串行線來(lái)輸入和輸出數(shù)
據(jù)的。那時(shí)通常的“terminal”包含了一個(gè)每秒10 個(gè)字符的串行打印機(jī)和鍵盤時(shí),現(xiàn)在這
些事情已經(jīng)有所變化了。這章將介紹一些利用FreeBSD 進(jìn)行串行通訊的方法。
讀完這章,你將了解到: 
. 如何通過(guò)終端連接到FreeBSD 系統(tǒng)。
. 如何使用modem 撥號(hào)到遠(yuǎn)程域。
. 如何允許遠(yuǎn)程用戶通過(guò)modem 登陸到你的系統(tǒng)。
. 如何從串行控制臺(tái)引導(dǎo)你的系統(tǒng)。
閱讀這章之前,你應(yīng)當(dāng)了解: 
. 如何配置和安裝一個(gè)新的內(nèi)核。(第9 章) 
. 理解unix 的權(quán)限和進(jìn)程。(第3 章) 
. 通過(guò)網(wǎng)絡(luò)設(shè)備訪問(wèn)技術(shù)參考手冊(cè)。
15.2 介紹
15.2.1 術(shù)語(yǔ)
bps 
每秒比特---數(shù)據(jù)的傳輸速率
DTE 
數(shù)據(jù)終端設(shè)備---如你的電腦
DCE 
第1 頁(yè)FreeBSD 使用手冊(cè)
數(shù)據(jù)通訊設(shè)備---如你的modem 
RS-232 
用于硬件串行通訊的EIA 標(biāo)準(zhǔn)
15.2.2 線纜和端口
要從你的FreeBSD 系統(tǒng)連接到一個(gè)modem 或終端,你需要有一個(gè)串行端口,和連接到你
串行設(shè)備的適當(dāng)?shù)木€纜。如果你比較熟悉硬件和線纜,你可以跳過(guò)這節(jié)。
15.2.2.1 線纜
有好幾種線纜。兩個(gè)最普通的類型是null-modem 線纜和標(biāo)準(zhǔn)RS-232 線纜。你的硬件的
規(guī)格說(shuō)明會(huì)有詳細(xì)描述。
15.2.2.1.1 Null-modem 線纜
一個(gè)null-modem 線纜會(huì)直接通過(guò)象signal ground 這樣的信號(hào)。如果你想自己選擇線
纜,你可以做一個(gè)使用null-modem 的線纜。這個(gè)線纜在一個(gè)DB-25 連接器上會(huì)顯示RS-232C 
信號(hào)名和pin 號(hào)碼。
Pin # Signal Signal Pin # 
TxD 2 連接到3 RxD 
RxD 3 連接到2 TxD 
DTR 20 連接到6 DSR 
DSR 6 連接到20 DTR 
SG 7 連接到7 SG 
DCD 8 連接到4 RTS 
RTS 4 5 CTS 
CTS 5 連接到8 DCD 
15.2.2.1.2 標(biāo)準(zhǔn)RS-232C 線纜
一個(gè)標(biāo)準(zhǔn)的串行線纜會(huì)直接通過(guò)所有的RS-232C 信號(hào)。這是連接一個(gè)modem 到你的
FreeBSD 系統(tǒng)的線纜類型,線纜的類型需要針對(duì)一些終端。
第2 頁(yè)FreeBSD 使用手冊(cè)
15.2.2.2 端口
串行端口是FreeBSD 主機(jī)與終端傳輸數(shù)據(jù)的設(shè)備。這節(jié)描述了端口的種類和他們?cè)?
FreeBSD 上的地址。
15.2.2.2.1 幾種端口
有好幾種端口存在。你在購(gòu)買和做線纜之前,你需要確定它是否適合你機(jī)器的接線端。
絕大多數(shù)的接線端有DB25 端口。個(gè)人電腦包括運(yùn)行FreeBSD 的PC 機(jī),有DB25 或DB9 
端口。如果你有一個(gè)多端口的串行卡,你可以使用RJ-12 或RJ-45 端口。請(qǐng)仔細(xì)看看硬件
的說(shuō)明。
15.2.2.2.2 端口名稱
在FreeBSD 中,你可以通過(guò)/dev 目錄中的一個(gè)記錄來(lái)訪問(wèn)每個(gè)串行端口。有兩種不同
的記錄: 
. 呼入端口被命名為/dev/ttyd N,這兒N 是端口號(hào),從零開(kāi)始。通常,你使用呼入端
口作為接線端。呼入端口要求數(shù)據(jù)線使用載波檢測(cè)信號(hào)來(lái)工作。
. 呼出端口被命名為/dev/cuaa N。你通常不使用呼出端口作為接線端,只使用modem。
如果串行線或接線端不支持載波檢測(cè)數(shù)據(jù)傳輸,你可以使用呼出端口。
如果你已經(jīng)連接到了第一個(gè)串行端口,那你需要使用/dev/ttyd0 來(lái)應(yīng)用接線端。如果它
是在第二個(gè)串行口,那就是/dev/ttyd1,等等。
15.2.3 內(nèi)核配置
FreeBSD 默認(rèn)支持4 個(gè)串行端口。在MS-DOS 下,這些是COM1:, COM2:, COM3:和COM4:。
FreeBSD 當(dāng)前支持dumb 多端口串行接口卡,如BocaBoard 1008 and 2016,就象許多Digiboard 
和Stallion Technologies 制造的智能多接口卡。默認(rèn)的內(nèi)核只會(huì)尋找標(biāo)準(zhǔn)的COM 接口。
要看看你的內(nèi)核是否支持你的串口,需要在內(nèi)核啟動(dòng)時(shí)查看一些信息,或使用
/sbin/dmesg 命令重新播出內(nèi)核啟動(dòng)信息。特別的,尋找以sio 為特征的啟動(dòng)信息。
提示:要看看帶有sio 的信息,可以使用下面的命令: 
# /sbin/dmesg | grep 'sio' 
第3 頁(yè)FreeBSD 使用手冊(cè)
例如,在一個(gè)帶有4 個(gè)串行口的系統(tǒng)上,這些是串行口特定的內(nèi)核啟動(dòng)信息: 
sio0 at 0x3f8-0x3ff irq 4 on isa 
sio0: type 16550A 
sio1 at 0x2f8-0x2ff irq 3 on isa 
sio1: type 16550A 
sio2 at 0x3e8-0x3ef irq 5 on isa 
sio2: type 16550A 
sio3 at 0x2e8-0x2ef irq 9 on isa 
sio3: type 16550A 
如果你的內(nèi)核沒(méi)有認(rèn)出你的所有串行口,你需要為你的系統(tǒng)定制一個(gè)內(nèi)核。更多有關(guān)配
置內(nèi)核的細(xì)節(jié),可以看看第9 章。
在你的內(nèi)核配置文件中相關(guān)的設(shè)備行是這樣的: 
device sio0 at isa? port "IO_COM1" tty irq 4 vector siointr 
device sio1 at isa? port "IO_COM2" tty irq 3 vector siointr 
device sio2 at isa? port "IO_COM3" tty irq 5 vector siointr 
device sio3 at isa? port "IO_COM4" tty irq 9 vector siointr 
你可以注釋掉或完全刪除你沒(méi)有的設(shè)備。請(qǐng)看看sio 的有關(guān)如何為你的多端口主板寫入
配置信息的聯(lián)機(jī)手冊(cè)。如果你使用了一個(gè)不同版本的FreeBSD 的配置文件,請(qǐng)小心點(diǎn),因?yàn)?
設(shè)備的標(biāo)記在兩個(gè)版本之間已經(jīng)改變了。
15.2.4 設(shè)備指定文件
內(nèi)核中的絕大多數(shù)設(shè)備可以通過(guò)device special files 來(lái)訪問(wèn),它就在/dev 目錄下。
Sio 設(shè)備通過(guò)/dev/ttyd N (dial-in)和/dev/cuaa N (call-out)來(lái)訪問(wèn)。FreeBSD 也提供了初
始化的設(shè)備(/dev/ttyid N and /dev/cuai0 N) 和鎖定的設(shè)備(/dev/ttyld N and 
第4 頁(yè)FreeBSD 使用手冊(cè)
/dev/cual0 N)。初始化的設(shè)備在每次端口被打開(kāi)時(shí)被用來(lái)初始化設(shè)備通訊端口參數(shù)。例如使
用CTS/RTS 的流控制信號(hào)的crtscts。鎖定設(shè)備被用來(lái)鎖定端口的標(biāo)記以阻止用戶或程序改
變某個(gè)參數(shù);看看termios, sio, and stty 的聯(lián)機(jī)手冊(cè)了解更多信息。
15.2.4.1 編譯設(shè)備指定文件
注意:FreeBSD 5.0 已把自動(dòng)創(chuàng)建設(shè)備接點(diǎn)的devfs 文件系統(tǒng)作為是必需的。如果你在
運(yùn)行啟用devfs 的FreeBSD 版本,你就可以跳過(guò)這一節(jié)。
一個(gè)在/dev 目錄下的叫做MAKEDEV 的shell 腳本管理著設(shè)備的特殊文件。要使用
MAKEDEV 來(lái)編譯撥號(hào)設(shè)備,以使用COM1:(port 0),cd 進(jìn)入/dev,然后執(zhí)行命令MAKEDEV 
ttyd0。同樣地,要編譯撥號(hào)設(shè)備以使用COM2:(port 1),可以執(zhí)行MAKEDEV ttyd1。MAKEDEV 
不僅僅創(chuàng)建/dev/ttyd N設(shè)備特殊文件,也創(chuàng)建/dev/cuaa N, /dev/cuaia N, /dev/cuala N, 
/dev/ttyld N, 和/dev/ttyid N節(jié)點(diǎn)。
編譯完支持新設(shè)備的特殊文件之后,需要檢查文件的權(quán)限來(lái)確定誰(shuí)可以在這些文件上讀
寫—你可能不想讓普通的用戶來(lái)使用你的modem 吧。默認(rèn)的在/dev/cua*上的權(quán)限應(yīng)當(dāng)比較
充分: 
crw-rw---- 1 uucp dialer 28, 129 Feb 15 14:38 /dev/cuaa1 
crw-rw---- 1 uucp dialer 28, 161 Feb 15 14:38 /dev/cuaia1 
crw-rw---- 1 uucp dialer 28, 193 Feb 15 14:38 /dev/cuala1 
這些許可允許用戶uucp 和在組撥號(hào)上的用戶使用呼出設(shè)備。
15.2.5 串行端口配置
ttyd N (或cuaa N)設(shè)備是你要打開(kāi)你的應(yīng)用程序的規(guī)則設(shè)備。當(dāng)一個(gè)進(jìn)程打開(kāi)某個(gè)設(shè)備, 
它將有一個(gè)終端I/O 的默認(rèn)設(shè)置。你可以在命令行看這些設(shè)置: 
# stty -a -f /dev/ttyd1 
當(dāng)你修改了這個(gè)設(shè)備的設(shè)置,這個(gè)設(shè)置會(huì)生效,除非設(shè)備被關(guān)閉。當(dāng)它被重新打開(kāi)時(shí), 
它將回到默認(rèn)設(shè)置。要修改默認(rèn)設(shè)置,你可以打開(kāi)和調(diào)整initial state 設(shè)備的設(shè)置。例如, 
要打開(kāi)CLOCAL 模式,8 位通訊,默認(rèn)的XON/XOFF 流控制,鍵入: 
第5 頁(yè)FreeBSD 使用手冊(cè)
# stty -f /dev/ttyid5 clocal cs8 ixon ixoff 
系統(tǒng)的串行設(shè)備的初試化可以在/etc/rc.serial 中被控制。這個(gè)文件影響了串行設(shè)備
的默認(rèn)設(shè)置。
要防止某個(gè)設(shè)置被一個(gè)應(yīng)用程序所修改,需要調(diào)整lock state 設(shè)備。例如,要鎖定ttyd5 
的速度為57600 bps,鍵入: 
# stty -f /dev/ttyld5 57600 
現(xiàn)在,一個(gè)打開(kāi)ttyd5 和設(shè)法改變端口速度的應(yīng)用程序?qū)⒈还潭ㄔ?7600 bps。很自然
地,你需要確定初始情形,和鎖定設(shè)備的寫入狀態(tài),只有root 才能寫。
15.3 終端
當(dāng)你不在電腦控制臺(tái)或不在一個(gè)連接的網(wǎng)絡(luò)上時(shí),終端提供了一個(gè)方便和低成本的訪問(wèn)
你的FreeBSD 系統(tǒng)的方法。這節(jié)描述了如何在FreeBSD 上使用終端。
15.3.1 終端的用法和類型
早期的UNIX 系統(tǒng)沒(méi)有控制臺(tái)。人們通過(guò)將終端連接到電腦的串行口來(lái)登陸和使用程序。
它很象用一個(gè)modem 和一些終端軟件來(lái)?yè)芴?hào)進(jìn)入一個(gè)遠(yuǎn)程的系統(tǒng)只執(zhí)行文本的工作。
今天的PC 已經(jīng)可以使用高質(zhì)量的圖形了,但與今天的其他UNIX 操作系統(tǒng)一樣,建立一
個(gè)登陸的能力仍然存在;通過(guò)使用一個(gè)終端連接到一個(gè)沒(méi)有使用的串行口,你就能登陸和運(yùn)
行任何文本程序或在X Window System 中運(yùn)行一個(gè)xterm 窗口程序。
對(duì)于商業(yè)用戶,你可以配上任何終端到FreeBSD 系統(tǒng),然后把它們放在員工的桌面上。
對(duì)于一個(gè)家庭用戶,可以使用一臺(tái)比較老的IBM PC 或Macintosh 運(yùn)行一個(gè)終端連接到一臺(tái)
運(yùn)行FreeBSD 的高性能機(jī)器上。
對(duì)于FreeBSD,有三種終端: 
. Dumb 終端
. 充當(dāng)終端的PCs 
. X 終端
第6 頁(yè)FreeBSD 使用手冊(cè)
下面的小節(jié)將描述每一種。
15.3.1.1 Dumb 終端
Dumb 終端可以適應(yīng)好幾種硬件,讓你通過(guò)串行線連接到電腦。他們被叫做dumb 是因?yàn)?
他們只能夠用來(lái)顯示、發(fā)送和接受文本。你不能在它上面運(yùn)行任何程序。
有好幾百種dumb 終端被制造,包括Digital Equipment Corporation's VT-100 和
Wyse's WY-75。只有幾種可以在FreeBSD 上工作。一些高端的終端可以顯示圖形,但只有某
些軟件包可以使用這些高級(jí)特性。
15.3.1.2 充當(dāng)終端的PCs 
如果一個(gè)dumb 終端有足夠的能力來(lái)顯示、發(fā)送和接受文本,那這些個(gè)人電腦可以作為
一個(gè)dumb 終端。你所需要的只是適當(dāng)?shù)木€纜和一些終端模擬軟件。
這樣一個(gè)配置被廣泛運(yùn)用于家庭。例如,如果你的妻子忙于在你的FreeBSD 系統(tǒng)控制臺(tái)
上工作,你也可以從一臺(tái)低檔的個(gè)人電腦登陸到FreeBSD 系統(tǒng)執(zhí)行一些文本的工作。
15.3.1.3 X 終端
X 終端是最復(fù)雜的終端系統(tǒng)。它們通常需要使用以太網(wǎng)來(lái)連接。他們能顯示任何X 應(yīng)用
程序。我們介紹X 終端只是為了感興趣。然而,這章不會(huì)涉及X 終端的安裝、配置或使用。
15.3.2 配置
這節(jié)描述了你在一個(gè)終端上啟用一個(gè)登陸活動(dòng),需要你在FreeBSD 系統(tǒng)上配置些什么。
假設(shè)你已經(jīng)配置好了你的內(nèi)核來(lái)支持串行端口,你就可以連接了。
回想起第7 章,init 進(jìn)程依賴于系統(tǒng)啟動(dòng)時(shí)所有的處理控制和初始化。通過(guò)init 來(lái)執(zhí)
行的一些任務(wù)將先讀取/etc/ttys 文件,然后在可用的終端上啟用一個(gè)getty 進(jìn)程。getty 
進(jìn)程可用來(lái)閱讀一個(gè)登陸名和啟動(dòng)登陸程序。
然而,要配置你FreeBSD 系統(tǒng)的終端,你需要以root 來(lái)執(zhí)行下面的步驟: 
1. 如果它不在那兒,你需要為串行端口在/dev 目錄下添加一行記錄到/etc/ttys。
2. 指定/usr/libexec/getty 在端口上運(yùn)行,然后從/etc/gettytab 文件指定適當(dāng)?shù)?
getty類型。
第7 頁(yè)FreeBSD 使用手冊(cè)
3. 指定默認(rèn)的終端類型。
4. 設(shè)置端口為on。
5. 確定端口是否為secure。
6. 迫使init 重新讀取/etc/ttys 文件。
作為可選的步驟,你可以通過(guò)在/etc/gettytab 中建立一個(gè)記錄,在第2 步創(chuàng)建一個(gè)定
制的getty類型來(lái)使用。這章不會(huì)介紹如何做;你可以看看gettytab 和getty 的聯(lián)機(jī)手冊(cè)
了解更多信息。
15.3.2.1 添加一個(gè)記錄到/etc/ttys 
/etc/ttys 文件列出了你FreeBSD 系統(tǒng)上允許登陸的所有端口。例如,第一個(gè)虛擬控制
臺(tái)ttyv0 在這個(gè)文件中有一個(gè)記錄。你可以使用這個(gè)記錄登陸進(jìn)控制臺(tái)。這個(gè)文件也包含其
他虛擬控制臺(tái)的記錄、串行口、和偽-ttys。對(duì)于一個(gè)硬連線的終端,只要列出串行端口的
/dev 記錄。
默認(rèn)的FreeBSD 安裝包括了支持最初四個(gè)串行口ttyd0 到ttyd3 的/etc/ttys 文件。如
果你從那些端口來(lái)使用終端,你不需要添加另一個(gè)記錄。
例15-1.添加終端記錄到/etc/ttys 
建議我們連接兩個(gè)終端給系統(tǒng):一個(gè)Wyse-50 和一個(gè)老的運(yùn)行PRocomm 終端軟件模擬一
個(gè)VT-100 終端的286IBM PC。在/etc/ttys 文件中的相應(yīng)的記錄是這樣的: 
"/usr/libexec/getty std.38400" wy50 on insecure ttyd1 
ttyd5 "/usr/libexec/getty std.19200" vt100 on insecure 
,第一部分指定了終端特殊文件的名稱,它可以在/dev 中找到。
,第二部分是在這行執(zhí)行的命令,通常是getty。Getty 初始化然后打開(kāi)一行,設(shè)置
速度,用戶名的命令和執(zhí)行登陸程序。
getty 程序在它的命令行接收一個(gè)參數(shù), getty類型。一個(gè)getty類型會(huì)在終端行描述
一個(gè)特征,象bps rate 和parity。getty 程序從/etc/gettytab 文件讀取這些字符。文件
/etc/gettytab 包含了許多老的和新的終端線的記錄。在很多例子中,啟動(dòng)文本std 的記錄
第8 頁(yè)FreeBSD 使用手冊(cè)
將用硬連線終端來(lái)工作。這些記錄忽略了奇偶性。這是一個(gè)從110 到115200 的每bps 的std 
記錄。當(dāng)然,你可以添加你自己的記錄到這個(gè)文件。Gettytab 的聯(lián)機(jī)手冊(cè)提供了更多的信
息。
當(dāng)在/etc/ttys 中設(shè)置getty類型的時(shí)候,確信在終端上的通訊設(shè)置匹配。
在我們的例子中,Wyse-50 不使用奇偶性,用38400 bps 來(lái)連接。286 PC 不使用奇偶性, 
用19200bps 來(lái)連接。
,第三部分是通常連接到那個(gè)tty 線的終端類型。對(duì)于撥號(hào)端口,不知名的或撥出的
通常被用在這個(gè)地方。對(duì)于硬連線的終端,終端類型不會(huì)改變,所以你可以從termcap 數(shù)據(jù)
庫(kù)文件中放置一個(gè)真正的終端類型。
在我們的例子中,Wyse-50 使用真正的終端類型,而運(yùn)行Procomm 的286 PC 將被設(shè)置成
在VT-100 上的模擬。
,如果端口被啟用,可以指定第四個(gè)部分。在第二部分,把它放在這兒將執(zhí)行初始化
進(jìn)程來(lái)啟動(dòng)程序getty。如果你在這部分推遲,將沒(méi)有g(shù)etty,在端口上因此就沒(méi)有登陸。
,最后部分被用來(lái)指定端口是否安全。標(biāo)記一個(gè)安全的端口意味著你信任它允許用root 
帳戶從哪個(gè)端口登陸。不安全的端口不允許root 登陸。在一個(gè)不安全的端口上,用戶必須
用無(wú)特權(quán)的帳戶登陸,然后使用su 或一個(gè)相似的機(jī)制來(lái)獲得超級(jí)用戶的權(quán)限。
15.3.2.2 重新讀取/etc/ttys 來(lái)強(qiáng)制初始化
對(duì)/etc/ttys 文件做一個(gè)必要的修改后,你必須發(fā)送一個(gè)SIGHUP 信號(hào)給初始化進(jìn)程來(lái)
迫使它重新讀取它的配置文件,例如: 
# kill -HUP 1 
如果能夠被正確設(shè)置,所有的線纜都是適當(dāng)?shù)模K端將可以啟用了,然后一個(gè)getty 
進(jìn)程將在每個(gè)終端被運(yùn)行,你將在你的終端上看到登陸命令行。
15.3.3 你的連接可能出現(xiàn)的問(wèn)題
即使你小心翼翼地注意細(xì)節(jié),你仍然可能會(huì)在設(shè)置終端時(shí)出錯(cuò)。這兒有一個(gè)有關(guān)問(wèn)題的
現(xiàn)象和解決辦法的列表: 
第9 頁(yè)FreeBSD 使用手冊(cè)
1,沒(méi)有登陸命令出現(xiàn): 
確定終端被嵌入和打開(kāi)了。如果把一臺(tái)個(gè)人電腦充當(dāng)一個(gè)終端,確信終端模擬軟件運(yùn)行
在正確的串口上。
確信線纜被穩(wěn)固地連接在終端和FreeBSD 電腦上。確信用了正確的電纜。
確定終端和FreeBSD 的傳輸速率和奇偶設(shè)置已經(jīng)一致了。如果你有一個(gè)圖象顯示終端, 
確信對(duì)比度已經(jīng)調(diào)節(jié)好了。如果它是一個(gè)可打印的終端,確信紙張和墨水已經(jīng)準(zhǔn)備好了。
確定一個(gè)getty 進(jìn)程正在運(yùn)行和服務(wù)終端。例如,可以用ps 命令來(lái)得到運(yùn)行g(shù)etty 程
序的列表,鍵入: 
# ps -axww|grep getty 
你將看到一個(gè)終端的記錄。例如,下面的顯示表明一個(gè)getty 正在第二個(gè)串行端口ttyd1 
運(yùn)行,正在/etc/gettytab 中使用std.38400 的記錄: 
22189 d1 Is+ 0:00.03 /usr/libexec/getty std.38400 ttyd1 
如果沒(méi)有g(shù)etty 進(jìn)程運(yùn)行,確信你已經(jīng)在/etc/ttys 中啟用了端口。在修改完ttys 文
件后,記得運(yùn)行kill -HUP 1 。
2,出現(xiàn)一個(gè)“垃圾”而不是一個(gè)登陸命令行
確信終端和FreeBSD 使用相同的bps 傳輸率和奇偶校驗(yàn)設(shè)置。檢查一下getty 進(jìn)程確信
當(dāng)前使用的正確的getty 類型。如果沒(méi)有,編輯/etc/ttys 然后運(yùn)行kill -HUP 1。
3,當(dāng)鍵入密碼時(shí),字符兩個(gè)兩個(gè)出現(xiàn)
將終端(或終端模擬軟件)從“half duplex”或“l(fā)ocal echo”換成“full duplex”。
15.4 撥入服務(wù)
配置FreeBSD 系統(tǒng)來(lái)用撥入服務(wù)與連接到終端是非常相似的,除非你正在使用modem 
來(lái)?yè)芴?hào)。
15.4.1 外置和內(nèi)置modem 
外置modem 看起來(lái)很容易撥號(hào)。因?yàn)椋庵胢odem 可以通過(guò)儲(chǔ)存在非易失性的RAM 中的
第10 頁(yè)FreeBSD 使用手冊(cè)
參數(shù)來(lái)配置,他們通常提供指示器來(lái)顯示重要的RS-232 信號(hào)的狀態(tài)。不停閃光的信號(hào)燈能
給用戶留下比較深刻的印象,而且指示器也可以用來(lái)查看modem 是否正常地工作。
內(nèi)置modem 通常缺乏非易失性的RAM,所以對(duì)它們的配置可能被限制在通過(guò)DIP 開(kāi)關(guān)來(lái)
設(shè)置。如果你的內(nèi)置modem 有指示燈,你也很難看得到。
15.4.1.1 Modems 和線纜
如果你使用一個(gè)外置的modem,那你將需要適當(dāng)?shù)碾娎|線。一個(gè)標(biāo)準(zhǔn)的串行線應(yīng)當(dāng)足夠
長(zhǎng)以至普通的信號(hào)能夠連接上: 
. Transmitted Data (SD) 
. Received Data (RD) 
. Request to Send (RTS) 
. Clear to Send (CTS) 
. Data Set Ready (DSR) 
. Data Terminal Ready (DTR) 
. Carrier Detect (CD) 
. Signal Ground (SG) 
FreeBSD 需要對(duì)速度超過(guò)2400bps 的RTS 和CTS 信號(hào)進(jìn)行流控制,當(dāng)一個(gè)呼叫被回復(fù)或
線路被掛起的時(shí)候,CD 信號(hào)就會(huì)被偵測(cè)到,一個(gè)任務(wù)完成之后,DTR 信號(hào)就會(huì)刷新modem。
一些線纜不需要任何信號(hào)就可以連接,所以如果你有問(wèn)題,當(dāng)線路被掛起時(shí),一個(gè)登陸任務(wù)
就會(huì)丟失,你可能會(huì)在線纜上有問(wèn)題。
象其它unix 類的操作系統(tǒng)一樣,F(xiàn)reeBSD 使用硬件信號(hào)來(lái)尋找出一個(gè)呼叫什么時(shí)候會(huì)
回復(fù)或一個(gè)線路會(huì)被掛起。FreeBSD 避免發(fā)送命令給modem 或監(jiān)視modem 的狀況。如果你熟
悉連接modem 到BBS,這可能是很難的。
15.4.2 串行接口的考慮
FreeBSD 支持以NS8250-, NS16450-, NS16550-和NS16550A 為基礎(chǔ)的EIA RS-232C 通訊
接口。8250 和16450 設(shè)備有單字符緩沖。16550 設(shè)備提供了一個(gè)16 個(gè)字符的緩沖,可以提
第11 頁(yè)FreeBSD 使用手冊(cè)
高更多的系統(tǒng)性能。因?yàn)閱巫址彌_設(shè)備比16 個(gè)字符的緩沖需要更多的系統(tǒng)資源來(lái)工作, 
所以基于16550A 的接口卡可能更好。如果系統(tǒng)沒(méi)有活動(dòng)的串行口,或有一個(gè)巨大的負(fù)載, 
16 字符緩沖的卡對(duì)于低錯(cuò)誤率的通訊來(lái)說(shuō)更好。
15.4.3 快速預(yù)覽
對(duì)于終端,init 會(huì)在每個(gè)配置串行口上為每個(gè)撥入連接產(chǎn)生一個(gè)getty 進(jìn)程。例如, 
如果一個(gè)modem 被附帶在/dev/ttyd0 中,用命令ps ax 可以顯示下面這些: 
4850 ?? I 0:00.09 /usr/libexec/getty V19200 ttyd0 
當(dāng)一個(gè)用戶撥上modem,并使用它進(jìn)行連接時(shí),CD 線就會(huì)被modem 認(rèn)出。內(nèi)核注意到載
波信號(hào)已經(jīng)被檢測(cè)到,需要完成getty 的端口的打開(kāi)。Getty 發(fā)送一個(gè)登陸:在指定的初始
線速度上的命令行。Getty 會(huì)檢查合法的字符是否被接收,在一個(gè)典型的配置中,如果發(fā)現(xiàn)
垃圾,getty 就會(huì)設(shè)法調(diào)節(jié)線速度,直到它接收到合理的字符。
用戶在鍵入他/她的登陸名稱后,getty 執(zhí)行/usr/bin/login,這會(huì)要求用戶輸入密碼
來(lái)完成登陸,然后啟動(dòng)用戶的shell。
15.4.4 配置文件
在/etc 目錄中,有三個(gè)你將需要編輯的系統(tǒng)配置文件,來(lái)允許撥號(hào)訪問(wèn)到你的FreeBSD 
系統(tǒng)。第一,/etc/gettytab 包含了針對(duì)/usr/libexec/getty 守護(hù)程序的配置信息。第二, 
保存信息來(lái)告訴/sbin/init 什么tty 設(shè)備將有運(yùn)行在他們系統(tǒng)上的getty 進(jìn)程。最后,你
可以把端口初試化命令放在/etc/rc.serial 腳本中。
在unix 上,關(guān)于撥號(hào)modem 的想法主要有兩種。一種是把本地接口配置成一個(gè)固定速
率,以至一個(gè)遠(yuǎn)程用戶撥號(hào)進(jìn)入時(shí)都保持一個(gè)固定速率。這樣配置的好處是遠(yuǎn)程用戶總是可
以立即看到一個(gè)系統(tǒng)的登陸界面。這種下降趨勢(shì)是系統(tǒng)不知道一個(gè)用戶真正的數(shù)據(jù)速率是多
少,所以象eamcs 全屏程序?qū)⒉粫?huì)調(diào)接屏幕刷新來(lái)確保對(duì)比較慢的連接有比較好的回應(yīng)。
其他的配置RS-232 modem 的方法是隨著遠(yuǎn)程用戶連接的速度的變化而變化。例如,連
接到modem 的V.32bis (14.4 Kbps)連接可以使modem 在19.2 Kbps 上運(yùn)行RS-232 接口, 
而連接使得RS-232 接口運(yùn)行在2400 bps 上。
第12 頁(yè)FreeBSD 使用手冊(cè)
因?yàn)間etty 不了解任何特殊的modem 的連接速度報(bào)告,getty 會(huì)給出一個(gè)登陸:在一個(gè)
初始速度和檢測(cè)字符的信息會(huì)作出回應(yīng)。如果用戶看到垃圾,假定他們知道他們鍵入了
enter 鍵,知道他看到了一個(gè)熟悉的命令行界面。
如果數(shù)據(jù)速率不相匹配,getty 會(huì)把用戶鍵入的任何東西都看作“junk”,設(shè)法回到下
面的速度,然后給出登陸:命令行界面。很明顯,這個(gè)登陸順序看起來(lái)不如locked-speed 
的方法,但一個(gè)連接在低速率上的用戶將更好地交互接收來(lái)自全屏幕程序的回應(yīng)。
15.4.4.1 /etc/gettytab 
/etc/gettytab 是一個(gè)用來(lái)配置getty 信息的termcap 風(fēng)格的文件。請(qǐng)看看gettytab 
的聯(lián)機(jī)手冊(cè)了解完整的文件格式和功能列表。
15.4.4.1.1 鎖定速率的配置
如果你把你的modem 的數(shù)據(jù)通訊率鎖定在一個(gè)特殊的速率上, 你不需要對(duì)
/etc/gettytab 文件做任何變化。
15.4.4.1.2 匹配速率的配置
你將需要在/etc/gettytab 中設(shè)置一個(gè)記錄來(lái)給出getty 的你希望用到你的modem 上的
有關(guān)速度的信息。如果你有一個(gè)2400 bps 的modem,你可以使用已存在的D2400 的記錄。

# Fast dialup terminals, 2400/1200/300 rotary (can start either way) 

D2400|d2400|Fast-Dial-2400:/ 
:nx=D1200:tc=2400-baud: 
3|D1200|Fast-Dial-1200:/ 
:nx=D300:tc=1200-baud: 
5|D300|Fast-Dial-300:/ 
:nx=D2400:tc=300-baud: 
第13 頁(yè)FreeBSD 使用手冊(cè)
如果你有一個(gè)更高速度的modem,你必須在/etc/gettytab 中添加一個(gè)記錄;這兒是一
個(gè)你可以使用的一個(gè)最高19.2 Kbps 的接口用在14.4 Kbps 的modem 上的記錄: 

# Additions for a V.32bis Modem 

um|V300|High Speed Modem at 300,8-bit:/ 
:nx=V19200:tc=std.300: 
un|V1200|High Speed Modem at 1200,8-bit:/ 
:nx=V300:tc=std.1200: 
uo|V2400|High Speed Modem at 2400,8-bit:/ 
:nx=V1200:tc=std.2400: 
up|V9600|High Speed Modem at 9600,8-bit:/ 
:nx=V2400:tc=std.9600: 
uq|V19200|High Speed Modem at 19200,8-bit:/ 
:nx=V9600:tc=std.19200: 
上面使用19.2 Kbps 的連接速度的例子,也可以使用9600 bps (for V.32), 2400 bps, 
1200 bps, 300 bps,直到19.2 Kbps。通訊率的調(diào)節(jié)使用nx= (“next table”)來(lái)實(shí)現(xiàn)。每
條線使用一個(gè)tc= (“table continuation”)的記錄來(lái)加速對(duì)于一個(gè)特殊數(shù)據(jù)率的標(biāo)準(zhǔn)設(shè)
置。
如果你有一個(gè)28.8 Kbps 的modem,或你想使用它的14.4Kbps,你需要使用一個(gè)更高的
超過(guò)19.2 Kbps 的通訊速率的modem。這是一個(gè)啟動(dòng)57.6 Kbps 的gettytab 記錄的例子: 

# Additions for a V.32bis or V.34 Modem 
第14 頁(yè)FreeBSD 使用手冊(cè)
# Starting at 57.6 Kbps 

vm|VH300|Very High Speed Modem at 300,8-bit:/ 
:nx=VH57600:tc=std.300: 
vn|VH1200|Very High Speed Modem at 1200,8-bit:/ 
:nx=VH300:tc=std.1200: 
vo|VH2400|Very High Speed Modem at 2400,8-bit:/ 
:nx=VH1200:tc=std.2400: 
vp|VH9600|Very High Speed Modem at 9600,8-bit:/ 
:nx=VH2400:tc=std.9600: 
vq|VH57600|Very High Speed Modem at 57600,8-bit:/ 
:nx=VH9600:tc=std.57600: 
如果你有一個(gè)低速的CPU 或一個(gè)龐大負(fù)載的系統(tǒng),你沒(méi)有16550A 的串行端口,你可能
會(huì)在57.6 Kbps 上得到sio 錯(cuò)誤。
15.4.4.2 /etc/ttys 
/etc/ttys 文件的配置在例15-1 中介紹過(guò)。配置modem 是相似的,但我們必須指定一
個(gè)不同的終端類型。鎖定速度和匹配速度配置的通用格式是: 
ttyd0 "/usr/libexec/getty xxx" dialup on 
上面的第一條是這個(gè)記錄的設(shè)備特定文件—ttyd0 意味著/dev/ttyd0 是這個(gè)getty 將被
監(jiān)視的文件。第二條"/usr/libexec/getty xxx"是將運(yùn)行在設(shè)備上的處理init。第三條, 
dialup,是默認(rèn)的終端類型。第四個(gè)參數(shù),on,指出了線路是可操作的init。也可能會(huì)有第
五個(gè)參數(shù),secure,但它將只被用作擁有物理安全的終端(如系統(tǒng)終端)。
第15 頁(yè)FreeBSD 使用手冊(cè)
默認(rèn)的終端類型可以依賴于本地參考。撥號(hào)是傳統(tǒng)的默認(rèn)的終端類型,以至用戶可以定
制他們的登陸腳本來(lái)注意終端什么時(shí)候撥號(hào),和自動(dòng)調(diào)節(jié)他們的終端類型。然而,作者發(fā)現(xiàn)
它很容易在他的站點(diǎn)上指定vt102 作為默認(rèn)的終端類型,既然用戶剛才在他們的遠(yuǎn)程系統(tǒng)上
使用的是VT102 模擬器。
你對(duì)/etc/ttys 作修改之后,你可以發(fā)送init 進(jìn)程給一個(gè)HUP 信號(hào)來(lái)重讀文件。你可
以使用下面的命令來(lái)發(fā)送信號(hào)。: 
# kill -HUP 1 
如果這是你的第一次設(shè)置系統(tǒng),你可能要在發(fā)信號(hào)init 之前等一下,等到你的modem 
被正確地配置并連接好。
15.4.4.2.1 鎖定速率的配置
對(duì)于一個(gè)鎖定速率的配置,你的ttys 記錄必須有一個(gè)為getty 提供固定速率的記錄。
對(duì)于一個(gè)速度被鎖定在19.2kbps 的modem,ttys 記錄是這樣的: 
ttyd0 "/usr/libexec/getty std.19200" dialup on 
如果你的modem 被鎖定在一個(gè)不同的數(shù)據(jù)速率,為std. speed使用適當(dāng)?shù)乃俾蕘?lái)代替
std.19200。確信你使用了一個(gè)在/etc/gettytab 中列出的正確的類型。
15.4.4.2.2 匹配速度的配置
在一個(gè)匹配速率的配置中,你的ttys 記錄需要參考在/etc/gettytab 中適當(dāng)?shù)钠鹗?
auto-baud 記錄。例如,如果你為一個(gè)以19.2 Kbps 開(kāi)始的可匹配速度的modem 添加上面建
議的記錄的話,你的ttys 記錄可能是這樣的: 
ttyd0 "/usr/libexec/getty V19200" dialup on 
15.4.4.3 /etc/rc.serial 
高速modem,象V.32, V.32bis, 和V.34 modems,需要使用硬件(RTS/CTS)流控制。你
可以在/etc/rc.serial 中添加stty 命令來(lái)設(shè)置硬件流控制標(biāo)記。
例如,在撥入和撥出初始設(shè)備的#1's (COM2:)串行端口上設(shè)置termios 標(biāo)記crtscts, 
下面這些行會(huì)被添加到/etc/rc.serial 中: 
第16 頁(yè)FreeBSD 使用手冊(cè)
# Serial port initial configuration 
stty -f /dev/ttyid1 crtscts 
stty -f /dev/cuai01 crtscts 
15.4.5 Modem 設(shè)置
如果你有一個(gè)modem,它的參數(shù)能被存儲(chǔ)在非易失性的RAM 中,你將必須使用一個(gè)終端
程序來(lái)設(shè)置參數(shù)。使用同樣的通訊速率來(lái)連接modem 作為初始速度getty 將使用和配置
modem 的非易失性RAM 來(lái)匹配這些要求: 
. CD asserted when connected 
. DTR asserted for Operation; dropping DTR hangs up line and resets modem 
. CTS transmitted data flow control 
. Disable XON/XOFF flow control 
. RTS received data flow control 
. Quiet mode (no result codes) 
. No command echo 
請(qǐng)讀讀你的modem 的文檔找到你需要用什么命令和DIP 接口設(shè)置。例如,要在一個(gè)
USRobotics Sportster 14,400 的外置modem 上設(shè)置上面的參數(shù),你可以用下面這些命令: 
ATZ 
AT&C1&D2&H1&I0&R2&W 
你也可能想要在modem 上尋找機(jī)會(huì)調(diào)節(jié)這個(gè)設(shè)置,例如它是否使用V.42bis 和MNP5 壓
縮。USR Sportster 14,400 外置modem 也有一些用來(lái)設(shè)置的DIP 開(kāi)關(guān),也許你可以使用這
些設(shè)置作為一個(gè)例子: 
. Switch 1: UP -- DTR Normal 
. Switch 2: Do not care (Verbal Result Codes/Numeric Result Codes) 
. Switch 3: UP -- Suppress Result Codes 
第17 頁(yè)FreeBSD 使用手冊(cè)
. Switch 4: DOWN -- No echo, offline commands 
. Switch 5: UP -- Auto Answer 
. Switch 6: UP -- Carrier Detect Normal 
. Switch 7: UP -- Load NVRAM Defaults 
. Switch 8: Do not care (Smart Mode/Dumb Mode) 
15.4.5.1 鎖定速率的配置
對(duì)于一個(gè)鎖定速率的配置,你需要配置modem 來(lái)獲得一個(gè)不依賴于通訊率的穩(wěn)定的
modem-to-computer 的數(shù)據(jù)率。在一個(gè)USR Sportster 14,400 外置modem 上,這些命令將
鎖定modem-to-computer 的數(shù)據(jù)率: 
ATZ 
AT&B1&W 
15.4.5.2 匹配速率的配置
對(duì)于一個(gè)變速的配置,你需要配置你的modem 來(lái)調(diào)節(jié)它的串行端口數(shù)據(jù)率來(lái)匹配接收的
數(shù)據(jù)率。在一個(gè)USR Sportster 14,400 的外置modem 上,這些命令將鎖定modem 的錯(cuò)誤修
正數(shù)據(jù)率適合命令要求的速度,但允許串行端口速率適應(yīng)non-error-corrected 的連接: 
ATZ 
AT&B2&W 
15.4.5.3 檢查modem 的配置
大多數(shù)高速的modem 提供了用來(lái)查看當(dāng)前操作參數(shù)的命令。在USR Sportster 14,400 
外置modem 上,命令A(yù)TI5 顯示了存儲(chǔ)在非易失性RAM 中的設(shè)置。要看看正確的modem 操作
參數(shù),可以使用命令A(yù)TZ 然后是ATI4。
如果你有一個(gè)不同牌子的modem,檢查modem 的使用手冊(cè)看看如何雙重檢查你的modem 
的配置參數(shù)。
15.4.6 問(wèn)題解答
第18 頁(yè)FreeBSD 使用手冊(cè)
這兒是幾個(gè)檢查撥號(hào)modem 的步驟。
15.4.6.1 檢查FreeBSD 系統(tǒng)
把你的modem 連接到FreeBSD 系統(tǒng),啟動(dòng)系統(tǒng),然后,如果你的modem 有一個(gè)指示燈, 
當(dāng)?shù)顷憰r(shí)看看modem 的DTR 指示燈是否亮:會(huì)在系統(tǒng)控制臺(tái)出現(xiàn)命令行---如果它亮,意味
著FreeBSD 已經(jīng)在適當(dāng)?shù)耐ㄓ嵍丝趩?dòng)了一個(gè)getty 進(jìn)程,等待modem 接受一個(gè)呼叫。
如果DTR 指示燈不亮,通過(guò)控制臺(tái)登陸到FreeBSD 系統(tǒng),然后執(zhí)行一個(gè)ps ax 來(lái)看
FreeBSD 是否正在正確的端口運(yùn)行一個(gè)getty 進(jìn)程。你將在進(jìn)程顯示中看到象這樣的一行: 
114 ?? I 0:00.10 /usr/libexec/getty V19200 ttyd0 
115 ?? I 0:00.10 /usr/libexec/getty V19200 ttyd1 
如果你看到這樣的: 
114 d0 I 0:00.10 /usr/libexec/getty V19200 ttyd0 
說(shuō)明,modem 不接受呼叫,這意味著getty 已經(jīng)在通訊端口打開(kāi)了。這可以指出線纜有
問(wèn)題或modem 錯(cuò)誤配置,因?yàn)間etty 不能打開(kāi)通訊端口。
如果你沒(méi)有看到任何getty 進(jìn)程等待打開(kāi)渴望的ttyd N端口,在/etc/ttys 中雙擊你的
記錄看看那兒是否有錯(cuò)誤。另外,檢查日志文件/var/log/messages 看看是否有一些來(lái)自
init 或getty 的關(guān)于一些問(wèn)題的日志信息。如果有任何信息,仔細(xì)檢查配置文件/etc/ttys 
和/etc/gettytab,還有適當(dāng)?shù)脑O(shè)備文件/dev/ttydN,是否有錯(cuò)誤,丟失記錄,或丟失了設(shè)
備指定文件。
15.4.6.2 嘗試接入
設(shè)法撥入系統(tǒng);確信使用8 位,沒(méi)有奇偶檢驗(yàn),在遠(yuǎn)程系統(tǒng)上的1 阻止位。如果你不能
立刻得到一個(gè)命令行,試試每隔一秒鍵入enter。如果你仍沒(méi)有看到一個(gè)登陸:設(shè)法發(fā)送一
個(gè)BREAK。如果你正使用一個(gè)高速的modem 來(lái)?yè)芴?hào),請(qǐng)?jiān)阪i定撥號(hào)modem 的接口速度后再試
試。
如果你不能得到一個(gè)登陸:prompt,再檢查一下/etc/gettytab,重復(fù)檢查: 
. 在/etc/ttys 中指定的初始可用的名稱與/etc/gettytab 中的一個(gè)可用的相匹配。
第19 頁(yè)FreeBSD 使用手冊(cè)
. 每個(gè)nx=記錄與另一個(gè)gettytab 可用名稱匹配。
. 每個(gè)tc=記錄與另一個(gè)gettytab 可用名稱相匹配。
如果你撥號(hào)但FreeBSD 系統(tǒng)上的modem 沒(méi)有回應(yīng),確信modem 能回應(yīng)電話。如果modem 
看起來(lái)配置正確了,通過(guò)檢查modem 的指示燈來(lái)確認(rèn)DTR 線連接正確。
如果你做了好幾次,它仍然無(wú)法工作,打斷一會(huì),待會(huì)再試試。如果還不能工作,也許
你應(yīng)該發(fā)一封電子郵件給<[email protected]>尋求幫助。
15.5 撥出設(shè)備
下面將讓你的主機(jī)通過(guò)modem 連接到另一臺(tái)電腦上。這只要建立一個(gè)終端作為遠(yuǎn)程主
機(jī)。這可以用來(lái)登陸進(jìn)一個(gè)BBS。
如果你用PPP 有問(wèn)題,那這種連接在internet 上下載一個(gè)文件是非常有幫助的。如果
你必須FTP 一些東西,而PPP 斷了,使用終端連接到FTP。然后使用zmodem 來(lái)把它傳輸?shù)?
你的機(jī)器上。
15.5.1 我的Stock Hayes Modem 不被支持,我該怎么辦? 
事實(shí)上,聯(lián)機(jī)手冊(cè)對(duì)于這個(gè)的描述已經(jīng)過(guò)期了。有一個(gè)通用的Hayes 撥號(hào)已經(jīng)建構(gòu)在里
面了。只要在你的/etc/remote 文件中使用at=hayes。
Hayes 驅(qū)動(dòng)器不夠“聰明”只能認(rèn)出一些比較新的modem 的高級(jí)特性---如BUSY, NO 
DIALTONE, or CONNECT 115200 的信息將被搞亂。當(dāng)你使用的時(shí)候,你必須把這些信息關(guān)掉。
另外,撥號(hào)的延遲是60 秒。你的modem 可能使用另外的時(shí)間或提示認(rèn)為有其他的通訊
問(wèn)題。試試ATS7=45&W。
實(shí)際上,有些提示不完全被支持。解決方法是編輯/usr/src/usr.bin/tip/tip 目錄中
的tipconf.h 文件。很明顯,你需要它的源代碼。
把行#define HAYES 0 修改成#define HAYES 1。然后make,make install。這樣就好了。
15.5.2 我如何鍵入這些命令? 
在/etc/remote 文件中編譯一個(gè)叫做direct 的記錄。例如,如果你的modem 連接在第
一個(gè)串行端口,/dev/cuaa0,就放進(jìn)下面這行: 
第20 頁(yè)cuaa0:dv=/dev/cuaa0:br#19200:pa=none 
在br 項(xiàng)中使用最高的傳輸速率。然后鍵入cuaa0,你就可以連接到你的modem 了。如果
在你的系統(tǒng)上沒(méi)有/dev/cuaa0,可以這樣: 
# cd /dev 
# MAKEDEV cuaa0 
或以root 使用cu: 
# cu -l line -s speed 
line是串行端口(如./dev/cuaa0), speed是速度(如57600)。當(dāng)你鍵入~.就退出。
15.5.3 在pn 現(xiàn)@標(biāo)記不能工作? 
在電話號(hào)碼項(xiàng)@標(biāo)記告訴電腦在/etc/phones 文件中查找一個(gè)電話號(hào)碼。但@標(biāo)記也是一
個(gè)在象/etc/remote 這樣的可用文件中的特殊的字符。用一個(gè)反斜線符號(hào)退出: 
pn=/@ 
15.5.4 我如何在命令行撥電話號(hào)碼? 
在你的/etc/remote 文件中通常放著一個(gè)叫做generic 的記錄。例如: 
tip115200|Dial any phone number at 115200 bps:/ 
:dv=/dev/cuaa0:br#115200:at=hayes:pa=none:du: 
tip57600|Dial any phone number at 57600 bps:/ 
:dv=/dev/cuaa0:br#57600:at=hayes:pa=none:du: 
然后,你可以這樣: 
# tip -115200 5551234 
如果你更喜歡cu,使用一個(gè)通用的cu 記錄: 
cu115200|Use cu to dial any number at 115200bps:/ 
FreeBSD 使用手冊(cè)
第21 頁(yè)FreeBSD 使用手冊(cè)
:dv=/dev/cuaa1:br#57600:at=hayes:pa=none:du: 
然后鍵入: 
# cu 5551234 -s 115200 
15.5.5 通過(guò)一個(gè)終端服務(wù)器我能訪問(wèn)許多主機(jī)。
不用等待,除非你每次連接需要鍵入CONNECT <host>,使用tip 的cm 功能。例如,這
些記錄在/etc/remote 中: 
pain|pain.deep13.com|Forrester's machine:/ 
:cm=CONNECT pain/n:tc=deep13: 
muffin|muffin.deep13.com|Frank's machine:/ 
:cm=CONNECT muffin/n:tc=deep13: 
deep13:Gizmonics Institute terminal server:/ 
:dv=/dev/cuaa2:br#38400:at=hayes:du:pa=none:pn=5551234: 
15.6 設(shè)置串行控制臺(tái)
15.6.1 介紹
FreeBSD 可以通過(guò)一個(gè)串行口只使用一個(gè)啞終端就可以啟動(dòng)一個(gè)系統(tǒng)。這樣一種配置只
有兩種人能使用:希望在機(jī)器上安裝FreeBSD 的系統(tǒng)管理員,他沒(méi)有鍵盤或顯示器,還有就
是要調(diào)試內(nèi)核或設(shè)備驅(qū)動(dòng)程序的開(kāi)發(fā)人員。
就象第7 章描述的,F(xiàn)reeBSD 可以使用一個(gè)三步的啟動(dòng)過(guò)程。最先兩步被儲(chǔ)存在FreeBSD 
啟動(dòng)磁盤的啟動(dòng)slice 的啟動(dòng)代碼塊中。啟動(dòng)塊然后就被加載,接著運(yùn)行第三步啟動(dòng)引導(dǎo)器
(/boot/loader)。
為了設(shè)置串行控制臺(tái),你必須配置啟動(dòng)塊代碼,啟動(dòng)引導(dǎo)器代碼和內(nèi)核。
15.6.2 串行控制臺(tái)的配置
1. 準(zhǔn)備一個(gè)串行線纜。
第22 頁(yè)FreeBSD 使用手冊(cè)
你需要使用一個(gè)null-modem 的線纜或一個(gè)標(biāo)準(zhǔn)的串行線和一個(gè)null-modem 適配器。看
看第15.2.2 節(jié)有關(guān)串行線的討論。
2. 拔去你的鍵盤。
絕大多數(shù)的PC 在開(kāi)機(jī)檢測(cè)的時(shí)候會(huì)檢測(cè)到鍵盤,如果鍵盤沒(méi)有被檢測(cè)到,將會(huì)出現(xiàn)一
個(gè)錯(cuò)誤。一些機(jī)器會(huì)提示丟失鍵盤,就不會(huì)繼續(xù)引導(dǎo)系統(tǒng)。
如果你的電腦出現(xiàn)錯(cuò)誤,但仍能繼續(xù)啟動(dòng),你可以不必理它。
如果你的電腦沒(méi)有鍵盤拒絕啟動(dòng),那你需要配置BIOS 來(lái)避免這個(gè)錯(cuò)誤。看看你的主板
的使用說(shuō)明了解更多細(xì)節(jié)。
提示:在BIOS 中設(shè)置鍵盤Not installed 并不意味著你不能使用鍵盤。這樣做只是告
訴BIOS 不要在機(jī)器開(kāi)機(jī)檢測(cè)時(shí)檢測(cè)鍵盤,以至不會(huì)提示說(shuō)系統(tǒng)找不到鍵盤。即使你設(shè)置了
Not installed,只要把你的鍵盤插上去仍然可以使用。
注意:如果你的系統(tǒng)有一個(gè)PS/2 鼠標(biāo),如果機(jī)會(huì)好的話,你也可以象鍵盤一樣把它拔
下來(lái),這是因?yàn)镻S/2 鼠標(biāo)與鍵盤的一些硬件是共享的,你的鼠標(biāo)插上去,系統(tǒng)會(huì)認(rèn)為鍵盤
仍在那兒。
3. 插一個(gè)啞終端到COM1: (sio0)。
如果你沒(méi)有一個(gè)啞終端,你可以使用一個(gè)比較老的帶有一個(gè)modem 程序的PC/XT 機(jī)器, 
或在其他unix 機(jī)器的串行口。如果你沒(méi)有COM1: (sio0),去找一個(gè)。這時(shí),你沒(méi)有辦法只
能選擇COM1:來(lái)啟動(dòng)系統(tǒng)。如果你已經(jīng)在另一臺(tái)設(shè)備上使用COM1:,你必須臨時(shí)刪除那個(gè)設(shè)
備,然后安裝一個(gè)新的系統(tǒng)啟動(dòng)塊和內(nèi)核。
4. 確信你的內(nèi)核配置文件已經(jīng)為COM1: (sio0)設(shè)置了適當(dāng)?shù)臉?biāo)記: 
有關(guān)的標(biāo)記是: 
0x10 
啟用控制臺(tái)支持。其他的控制臺(tái)標(biāo)記會(huì)被忽略,除非它被設(shè)置了。現(xiàn)在,絕大多數(shù)的設(shè)
置都有控制臺(tái)的支持;這個(gè)標(biāo)記的第一個(gè)就是首選的。這個(gè)單獨(dú)選項(xiàng)是不能確保串行口適用
于控制臺(tái)的,設(shè)置下面的標(biāo)記或加上下面描述的-h 選項(xiàng),和這個(gè)放在一起。
0x20 
第23 頁(yè)FreeBSD 使用手冊(cè)
不管下面有沒(méi)有討論,都迫使這個(gè)選項(xiàng)支持控制臺(tái)。這個(gè)標(biāo)記在FreeBSD 2. X中替換了
COMCONSOLE 選項(xiàng)。標(biāo)記0x20 必須和0x10 一起使用。
0x40 
保存這個(gè)設(shè)置,確保這個(gè)設(shè)置不能用于普通訪問(wèn)。你不要把這個(gè)標(biāo)記放在你要使用的串
口設(shè)置中。這個(gè)標(biāo)記的唯一的用處是在進(jìn)行遠(yuǎn)程內(nèi)核調(diào)試時(shí)用于指派單位。看看開(kāi)發(fā)人員手
冊(cè)了解更多信息。
注意:在FreeBSD 4.0-CURRENT 和以后的版本中,標(biāo)記0x40 通常是不同的,有另一個(gè)
標(biāo)記可以來(lái)指定一個(gè)串行口用于遠(yuǎn)程調(diào)試。
例: 
device sio0 at isa? port "IO_COM1" tty flags 0x10 irq 4 
看看sio 的聯(lián)機(jī)手冊(cè)了解更多信息。如果標(biāo)記沒(méi)有被設(shè)置,你必須運(yùn)行UserConfig 或
重新編譯內(nèi)核。
5. 在啟動(dòng)磁盤的a 分區(qū)的根目錄創(chuàng)建一個(gè)boot.config 文件。
這個(gè)文件將指導(dǎo)啟動(dòng)塊代碼如何啟動(dòng)系統(tǒng)。為了激活串行控制臺(tái),你必須有一個(gè)或多個(gè)
下面的選項(xiàng)---如果你要多個(gè)選項(xiàng),在同一行必須都包含它們: 
-h 
切換內(nèi)部和串行控制臺(tái)。你使用這個(gè)來(lái)交換控制臺(tái)設(shè)備。例如,如果你從內(nèi)部控制臺(tái)啟
動(dòng),你可以使用-h 來(lái)直接使用啟動(dòng)引導(dǎo)器和內(nèi)核來(lái)使用串行口作為它的控制臺(tái)設(shè)備。另外, 
如果你從串行口啟動(dòng),你可以使用-h 來(lái)告訴啟動(dòng)引導(dǎo)器和內(nèi)核使用顯示設(shè)備作為控制臺(tái)。
-D 
切換單一和雙重控制臺(tái)配置。在單一配置中,控制臺(tái)將是本機(jī)的控制臺(tái)(顯示設(shè)備)或
串行口。在雙重控制臺(tái)配置中,顯示設(shè)備和串行口將同時(shí)成為控制臺(tái),無(wú)論-h 的選項(xiàng)的情
形。然而,雙控制臺(tái)配置只在啟動(dòng)塊運(yùn)行的過(guò)程中起作用。一旦啟動(dòng)引導(dǎo)器獲得控制,由-h 
選項(xiàng)指定的控制臺(tái)將成為唯一的控制臺(tái)。
-P 
第24 頁(yè)FreeBSD 使用手冊(cè)
在啟動(dòng)時(shí),探測(cè)鍵盤。如果鍵盤找不到,-D 和-h 選項(xiàng)會(huì)自動(dòng)設(shè)置。
注意:由于啟動(dòng)塊的當(dāng)前版本的限制,-P 選項(xiàng)只能探測(cè)擴(kuò)展的鍵盤。少于101 鍵的鍵
盤將無(wú)法被探測(cè)到。如果你碰到這個(gè)情況,你必須避免使用-P 選項(xiàng)。不幸的是這個(gè)問(wèn)題還
沒(méi)有解決。
使用-P 選項(xiàng)來(lái)自動(dòng)選擇控制臺(tái),或使用-h 選項(xiàng)來(lái)激活控制臺(tái)。
你也可以使用boot 聯(lián)機(jī)文檔中所描述的其他選項(xiàng)。
除了-P 選項(xiàng),所有選項(xiàng)將被傳給啟動(dòng)引導(dǎo)器(/boot/loader)。啟動(dòng)引導(dǎo)器將通過(guò)檢查
-h 選項(xiàng)的狀態(tài)來(lái)決定是顯示設(shè)備成為控制臺(tái),還是串行口成為控制臺(tái)。這意味著如果你指
定-D 選項(xiàng),但在/boot.config 中沒(méi)有-h 選項(xiàng),你在啟動(dòng)塊時(shí)使用串行口作為控制臺(tái);啟動(dòng)
引導(dǎo)器將使用內(nèi)部顯示設(shè)備作為控制臺(tái)。
6. 啟動(dòng)機(jī)器
當(dāng)你啟動(dòng)你的FreeBSD 時(shí),啟動(dòng)塊將把/boot.config 的內(nèi)容發(fā)給控制臺(tái)。例如: 
/boot.config: -P 
Keyboard: no 
如果你把-P 放在/boot.config 中并指出鍵盤存在或不存在,那將只出現(xiàn)第二行。這些
信息會(huì)被定位到串行口或內(nèi)部控制臺(tái),或兩個(gè)都是,完全取決于/boot.config 中的選項(xiàng)。
定位信息選項(xiàng)
none internal console 
-h serial console 
serial and internal consoles -D 
serial and internal consoles -Dh 
-P, keyboard present internal console 
-P, keyboard absent serial console 
出現(xiàn)上面信息后,在啟動(dòng)塊加載啟動(dòng)引導(dǎo)器和更多信息被映到屏幕之前將有一個(gè)小小的
停頓。在通常情況下,你不需要打斷啟動(dòng)進(jìn)程,但為了確信設(shè)置是否正確,你也可以這樣做。
第25 頁(yè)FreeBSD 使用手冊(cè)
鍵入任何鍵,而不是Enter,控制臺(tái)會(huì)打斷啟動(dòng)進(jìn)程。啟動(dòng)塊將進(jìn)入命令行模式。你看
到: 
>> FreeBSD/i386 BOOT 
Default: 0:wd(0,a)/boot/loader 
boot: 
檢驗(yàn)上面出現(xiàn)的信息,可能是串行口,或內(nèi)部控制臺(tái),或兩個(gè)都是,完全取決于你在
/boot.config 中的選項(xiàng)。如果信息出現(xiàn)在正確的控制臺(tái),鍵入Enter 繼續(xù)啟動(dòng)進(jìn)程。
如果你要使用串行控制臺(tái),但你沒(méi)有看到命令行,那可能設(shè)置有問(wèn)題。這時(shí),你鍵入-h 
然后單擊Enter/Return 來(lái)告訴啟動(dòng)塊選擇串行口作為控制臺(tái)。一旦系統(tǒng)起來(lái)了,回去檢查
一下是什么出問(wèn)題了。
啟動(dòng)引導(dǎo)器被加載完后,你將進(jìn)入啟動(dòng)進(jìn)程的第三步,你仍然可以在啟動(dòng)引導(dǎo)器通過(guò)設(shè)
定你喜歡的環(huán)境來(lái)切換內(nèi)部控制臺(tái)和串行控制臺(tái)。看看第15.6.5 節(jié)。
15.6.3 摘要
這是幾個(gè)在這章要討論的幾個(gè)設(shè)置和選擇的控制臺(tái)的摘要。
15.6.3.1 Case 1: You Set the flags to 0x10 for sio0 
device sio0 at isa? port "IO_COM1" tty flags 0x10 irq 4 
Console in Console during boot Console during boot Options in 
kernel loader blocks /boot.config 
nothing internal internal internal 
-h serial serial serial 
internal internal -D serial and internal 
serial serial -Dh serial and internal 
internal internal internal -P, keyboard present 
serial serial -P, keyboard absent serial and internal 
第26 頁(yè)FreeBSD 使用手冊(cè)
15.6.3.2 Case 2: You Set the flags to 0x30 for sio0 
device sio0 at isa? port "IO_COM1" tty flags 0x30 irq 4 
Console in Console during Console during Options in 
kernel boot loader boot blocks /boot.config 
nothing internal internal serial 
-h serial serial serial 
-D serial and internal internal serial 
-Dh serial and internal serial serial 
serial internal internal -P, keyboard present 
serial serial serial and internal -P, keyboard absent 
15.6.4 串行控制臺(tái)的提示
15.6.4.1 設(shè)置一個(gè)快速的串行口速度
默認(rèn)的串行口被設(shè)置成9600 波特,8 位,沒(méi)有奇偶性,1 個(gè)停止位。如果你希望改變速
度,你必須重新編譯啟動(dòng)塊。在/etc/make.conf 中添加下面一行,然后編譯新的啟動(dòng)塊: 
BOOT_COMCONSOLE_SPEED=19200 
如果串行控制臺(tái)用其他方法來(lái)配置而不是在啟動(dòng)時(shí)用-h,或內(nèi)核使用的串行控制臺(tái)與啟
動(dòng)塊使用的不同,那你必須在內(nèi)核配置文件中添加下面這行,然后編譯內(nèi)核: 
options CONSPEED=19200 
15.6.4.2 使用串行口而不是sio0 作為控制臺(tái)
使用串行口而不是sio0 作為控制臺(tái)需要做一些重編譯。如果你無(wú)論如何都要使用另一
個(gè)串行口,重新編譯啟動(dòng)塊,啟動(dòng)引導(dǎo)器和內(nèi)核。
1. 得到內(nèi)核源代碼。
2. 編輯/etc/make.conf 文件,然后設(shè)置BOOT_COMCONSOLE_PORT 作為你要使用(0x3F8, 
0x2F8, 0x3E8 or 0x2E8)端口的地址。只有sio0 到sio3(COM1: through COM4:)能被使
用;多接口串行卡將不會(huì)工作。不需要任何中斷設(shè)置。
第27 頁(yè)FreeBSD 使用手冊(cè)
3. 創(chuàng)建一個(gè)定制的內(nèi)核配置文件,在你要使用的串行口添加合適的標(biāo)記。例如,如果
要將sio1(COM2:)作為控制臺(tái): 
4. device sio1 at isa? port "IO_COM2" tty flags 0x10 irq 3 

device sio1 at isa? port "IO_COM2" tty flags 0x30 irq 3 
其他端口的控制臺(tái)標(biāo)記也不要設(shè)。
5. 重新編譯和安裝啟動(dòng)塊: 
6. # cd /sys/boot/i386/boot2 
7. # make 
8. # make install 
9. 重編譯和安裝啟動(dòng)引導(dǎo)器: 
10. # cd /sys/boot/i386/loader 
11. # make 
12. # make install 
13. 重建和安裝內(nèi)核。
14. 用disklabel 將啟動(dòng)塊寫到啟動(dòng)磁盤上,然后從新內(nèi)核啟動(dòng)。
15.6.4.3 通過(guò)串行線鍵入DDB 調(diào)試器
如果你想通過(guò)串行控制臺(tái)進(jìn)行內(nèi)核調(diào)試,你需要在編譯內(nèi)核時(shí)加上下面選項(xiàng): 
options BREAK_TO_DEBUGGER 
options DDB 
15.6.4.4 在串行控制臺(tái)上得到一個(gè)登陸命令行
第28 頁(yè)FreeBSD 使用手冊(cè)
你可能希望通過(guò)串行線得到一個(gè)登陸命令行,現(xiàn)在你可以看到啟動(dòng)信息,通過(guò)串行控制
臺(tái)鍵入內(nèi)核調(diào)試信息。可以這樣做。
用一個(gè)編輯器打開(kāi)/etc/ttys 文件,然后定位到下面的行: 
ttyd0 "/usr/libexec/getty std.9600" unknown off secure 
ttyd1 "/usr/libexec/getty std.9600" unknown off secure 
ttyd2 "/usr/libexec/getty std.9600" unknown off secure 
ttyd3 "/usr/libexec/getty std.9600" unknown off secure 
ttyd0 到ttyd3 相當(dāng)于COM1 到COM4。可以打開(kāi)或關(guān)閉某個(gè)端口。如果你已經(jīng)改變了串
行口的速度,你必須修改標(biāo)準(zhǔn)的9600 與當(dāng)前的例如19200 相匹配。
你也可以改變終端的類型從不知名的到你串行終端的真實(shí)類型。編輯完這個(gè)文件,你必
須殺掉-HUP 1 來(lái)使這個(gè)修改啟用。
15.6.5 從啟動(dòng)引導(dǎo)器修改控制臺(tái)
前面一節(jié)描述了如何通過(guò)調(diào)整啟動(dòng)塊來(lái)設(shè)定串行控制臺(tái)。這節(jié)將講到在啟動(dòng)引導(dǎo)器中通
過(guò)鍵入一些命令和環(huán)境變量來(lái)指定控制臺(tái)。由于啟動(dòng)引導(dǎo)器會(huì)被啟動(dòng)進(jìn)程的第三步所調(diào)用, 
啟動(dòng)塊以后,在啟動(dòng)引導(dǎo)器中的設(shè)置將忽略在啟動(dòng)塊中的設(shè)置。
15.6.5.1 設(shè)定串行控制臺(tái)
你可以很容易地指定啟動(dòng)引導(dǎo)器和內(nèi)核來(lái)使用串行控制臺(tái),只需要在/boot/loader.rc 
中寫入下面這行: 
set console=comconsole 
你最好把上面一行放在文件的第一行,以至于盡早地在啟動(dòng)時(shí)看到串行控制臺(tái)的啟動(dòng)信
息。同樣地,你可以指定內(nèi)部控制臺(tái)為: 
set console=vidconsole 
如果你不設(shè)置啟動(dòng)引導(dǎo)環(huán)境變量控制臺(tái),啟動(dòng)引導(dǎo)器和內(nèi)核將使用在啟動(dòng)塊時(shí)用-h 選
項(xiàng)指定的控制臺(tái)。
第29 頁(yè)FreeBSD 使用手冊(cè)
在版本3.2 或以后的版本中,你可以在/boot/loader.conf.local 或/boot/loader.conf 
中指定控制臺(tái),而不是在/boot/loader.rc 中。在這個(gè)方法中,你的/boot/loader.rc 文件
將是這樣的: 
include /boot/loader.4th 
start 
然后,創(chuàng)建/boot/loader.conf.local 放上下面的行。
console=comconsole 

console=vidconsole 
看看loader.conf 的聯(lián)機(jī)手冊(cè)了解更多信息。
15.6.5.2 使用串行口而不是sio0 作為控制臺(tái)
你需要使用一個(gè)串行口而不是sio0 重新編譯啟動(dòng)引導(dǎo)器作為串行控制臺(tái)。下面的步驟
跟第15.6.4.2 節(jié)描述的相似。
15.6.6 警告
這篇文章本意是想告訴人們?nèi)绾卧O(shè)定沒(méi)有顯示設(shè)備或鍵盤的專用服務(wù)器。不幸的是,絕
大多數(shù)系統(tǒng)沒(méi)有鍵盤可以讓你啟動(dòng),而沒(méi)有顯示設(shè)備就不讓你啟動(dòng)。使用AMI BIOS 的機(jī)器
可以通過(guò)在CMOS 中將“graphics adapter”項(xiàng)設(shè)為“Not installed”來(lái)在啟動(dòng)時(shí)不需要顯
示適配器。
然而,許多機(jī)器不支持這個(gè)選項(xiàng),如果你的系統(tǒng)沒(méi)有顯示硬件就拒絕啟動(dòng)。對(duì)于這些機(jī)
器,即使你沒(méi)有顯示器,你也必需在你機(jī)器上插上顯示適配器。建議你試試用AMI BIOS 的
機(jī)器。
第30 頁(yè)
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 538任你躁在线精品视频网站 | 国产成人精品视频在线 | 日韩一级电影在线观看 | 欧美一级无毛 | 中文字幕涩涩久久乱小说 | 99热高清 | 国产精品久久久久久久久久了 | 国产午夜精品视频免费不卡69堂 | 黄色网址在线视频 | 草莓福利社区在线 | 亚洲九色| 宅男噜噜噜66国产免费观看 | 亚洲欧美日韩久久精品第一区 | 国产精品久久久久久一区二区三区 | 精品国产91久久久久 | 艹男人的日日夜夜 | 国产精品美女久久久免费 | 精品国产一区二区三区成人影院 | 久久久久亚洲a | 一级毛片真人免费播放视频 | 亚洲天堂午夜 | 欧美中文字幕在线视频 | 久久精品视频免费 | 一级片999 | 久久伊人精品热在75 | 亚洲一区二区三区视频免费 | 国产日韩精品欧美一区视频 | 亚洲精品久久久久久 | 日韩激情一区 | 91精品视频免费 | 91精品视频在线看 | 欧产日产国产精品v | 一二区成人影院电影网 | 成人在线视频一区 | 亚洲无线看| 黑人一区二区三区四区五区 | 国产日韩线路一线路二 | 国产精品亚洲欧美一级在线 | 久久男人的天堂 | 欧美高清一级片 | 91精品国产综合久久男男 |