?? serial-howto.txt
?? linux-bible.rar linux-bible.rar
?? TXT
?? 第 1 頁 / 共 5 頁
字號:
??
or followed by ? to see other options.Welcome to ...login: 如果你需要一些指引,查閱有關 [55]通訊軟體 一節說明. 當你用你的數據機撥號出去時,將你的數據機設到它所能支援的最高速度. Linux 的 libc 5.x 版以上已經支援到 115200 bps. libc 通常放在 /lib,因 此到那里看一下你用什麼版本. 如果 Linux 無法認得 57600 或 115200 bps, 那麼你必須用 setserial 程式來將你的串列埠設到更高的速度. 關於要怎麼設 定參閱 [56]如何將我的串列埠設定為更高速度? 該節說明. 然後在通訊程式里 將速度設到 38400 bps. 5.3 撥出用的數據機配置 只要撥號出去的話,你可以任意以你想要的方式配置你的數據機. 如果你計畫用 你的數據機來接受撥接,那麼你必須將你的數據機配置成與你想要執行的 getty 在相同速度設定下. 所以,如果你想要在 38400 bps 的速度下執行 getty 的話 ,在配置你數據機的時候將速度設成 38400 bps. 這樣做是為了避免你的電腦與 數據機之間的速度無法配合. 一般來說,開啟錯誤校正及硬體流量控制的出廠設 定值是最適合撥出用的數據機,這些設定值可查閱你的數據機手冊. 5.4 硬體流量控制 如果你的數據機支援硬體流量控制(RTS/CTS)的話, 我強烈地建議你去使用它. 這對於支援資料壓縮的數據機將格外重要.首先,你必須在串列埠本身上面啟動 RTS/CTS 流量控制功能. 這最好是在啟動系統的時候做,像是放在 /etc/rc.d/rc.local 或是 /etc/rc.d/rc.serial 里面. 要確定這些檔案會被主 要的 rc.sysinit 檔案執行!你需要對每一個你想要啟動硬體流量控制的串列埠 執行下列操作: stty crtscts < /dev/ttyS3 你也必須在你的數據機上啟動 RTC/CTS 流量控制.要怎麼做請參考你的數據機手 冊,因為這在不同的數據機制造商之間是不同的. 如果你的數據機支援設定儲存 的話則要確定將配置存入你的數據機. 6. 我要怎麼樣用數據機以 getty_ps 撥入及撥出? 讓你的數據機能夠正確地撥號出去.如果你還沒有讀過 [57]我怎麼用數據機撥號 出去 一節的話現在去讀! 它包含有非常重要的設定資訊.如果你只想用數據機 來撥出的話你不需要讀此節. 6.1 撥入及撥出的數據機配置 要用來接受撥接以及撥號出去的話,那麼你必須確實地設定你的數據機(再一次 對你的數據機使用 AT 指令群): E1 本地回應指令Q0 回報結果回應V1 開啟冗長模式S0=0 不要接聽 (uugetty 以 WAITFOR 選項來處理) 如果你沒有正確地設定,放在你配置檔里的起始(INIT)字串可能會失敗,因而停 住整個程序. 但是,下面有更多配置檔的選項... &C1 DCD 只有在連線以後才開啟&S0 DSR 永遠為開啟 DTR 開啟/關閉 重置數據機(是數據機制造商而定 - RTFM) 這些會影響你數據機有關開始以及結束撥號的動作. 如果你的數據機不支援儲存設定,你可以透過在你配置檔里的起始字串來設定這 些東西. 參閱下面所述.有一些數據機是以 DIP 開關來影響暫存器的設定,也 要確定這些設定是正確的. 我已經開始著手收集不同種類數據機的設定. 到目前為止,我還只有它們的一小 部分,如果你想要寄送給我你目前所用配置,非常歡迎! 你可以從這些取得設些 設定: [58]ftp://ftp.cc.gatech.edu/pub/people/gregh/modem-configs. 注意: 為了讓我的 USR Courier V.34 數據機在 DTR 訊號掉下去後正常地重置, 我必須設定 &D2 及 S13=1(這是設定暫存器 S13 的 bit 0).這確定能在 USR Sportster V.34 上運作正常. 注意: 某些 Supra 數據機處理 DCD 訊號的方式異於其它的數據機. 如果你在用 Supra 數據機,試著設定為 &C0 而不是 &C1. 你也必須設定 &D2 使之正常地處 理 DTR 訊號. 6.2 安裝 getty_ps 從 [59]ftp://sunsite.unc.edu/pub/Linux/system/serial 最新的版本. 特別 地,如果你想使用高速通訊(57600 或 115200 bps),你必須取得 2.0.7j 或以後 的版本. 你也必須有 libc 5.x 或之後的版本. 依照預設值,getty_ps 將會照 Linux 的檔案系統標準(FSSTND, File System Standard)來配置,這個意思是二進位碼將會放在 /sbin 下,而配置檔將會以 /etc/conf.{uu}getty.ttySN 來命名. 這點并不能從文件敘述中找到!它也會假 定 lock files 將得要放到 /var/lock 目錄里.要確定你有 /var/lock 這個目 錄. 如果你不想依照 FSSTND 的話,二進位碼將會放到 /etc 里面,而配置檔將會放 到 /etc/default/{uu}getty.ttySN 里面,而 lock files 則將會放到 /usr/spool/uucp 里面. 如果你有使用 UUCP 的話那麼我建議這樣做,因為如果 你把 lock files 搬到 UUCP 無法找到的地方去那麼它將會出問題的. getty_ps 也可使用 syslogd 來記錄訊息.如果你目前沒有執行它的話,參閱 syslogd(1) 以及 syslog.conf(5) 的線上手冊來設定 syslogd. 訊息會優先以 LOG_AUTH 記錄,錯誤使用 LOG_ERR 記錄,而除錯使用 LOG_DEBUG. 如果你不想 使用 syslogd 的話那麼你可以編輯在 getty_ps 原始檔案里的 tune.h 用一個記 錄檔來取代,預設檔名為 /var/adm/getty.log. 決定好是否要依照 FSSTND 以及使用 syslog.你也可以選擇兩者的組合. 編輯 Makefile,tune.h 以及 config.h 來反應你所作的決定. 然後,根據套件里的 說明編譯及安裝. 從現在起,所有談到 getty 的地方都是指 getty_ps 而言. 談到 uugetty 則是 指 getty_ps 套件里的 uugetty 而言. 這些指令在 mgetty 或 agetty 上將不 能運作. 6.3 設定 uugetty 為了要能從你的數據機撥入及撥出,我們想要用 uugetty.uugetty 執行很重要 的 lock file 檢查. 如果沒有的話更新 /etc/gettydefs 以便為數據機增加項 目(注意到這里的項目互相參考,它們并非固定速度 - 每個項目之間的空白行是 必要的): # Modem entries115200# B115200 CS8 # B115200 SANE -ISTRIP HUPCL #@S @L @B login: #5760057600# B57600 CS8 # B57600 SANE -ISTRIP HUPCL #@S @L @B login: #3840038400# B38400 CS8 # B38400 SANE -ISTRIP HUPCL #@S @L @B login: #1920019200# B19200 CS8 # B19200 SANE -ISTRIP HUPCL #@S @L @B login: #96009600# B9600 CS8 # B9600 SANE -ISTRIP HUPCL #@S @L @B login: #24002400# B2400 CS8 # B2400 SANE -ISTRIP HUPCL #@S @L @B login: #115200 如果你有 9600 bps 或更快且具資料壓縮功能的數據機,你可以鎖定你的串列埠 速度而讓數據機去處理傳輸的其它速度. 然後,不像上面在 /etc/gettydefs 里 的一連串列表,只需為數據機加上一行,例如: # 115200 fixed speedF115200# B115200 CS8 # B115200 SANE -ISTRIP HUPCL #@S @L @B login: #F115200 如果你將你的數據機設成 RTS/CTS 執行硬體流量控制的話,那麼你可以將 CRTSCTS 加到這些項目里: # 115200 fixed speed with hardware flow controlF115200# B115200 CS8 CRTSCTS # B115200 SANE -ISTRIP HUPCL CRTSCTS #@S @L @B login: #F115200 如果你要的話,你可以讓 uugetty 在簽入時的標題上印出些有趣的東西. 在我 的例子里,我印出系統名稱,串列線路,以及目前的每秒位元傳輸率. 你可以加 入其它的東西: @B 目前的每秒位元傳輸率(bps, 在看到 @B 時估計的). @D 現在日期, 格式 MM/DD/YY. @L getty 所連接的串列線路. @S 系統名稱. @T 現在時間,格式 HH:MM:SS (24 小時制). @U 目前簽入的使用者.這是在 /etc/utmp 檔中非空 ut_name 欄位項目的計數值. @V 版本值,在預設檔中給定的. 如果要顯示 '@' 符號的話,用 '\@' 或 '@@'. 接下來,確定你數據機所接的串列埠有輸出及輸入的設備. 如果你的數據機設在 ttyS3 的話你將會需要 /dev/cua3,以及 /dev/ttyS3 這兩個設備. 如果你沒有 正確的設備,參閱 [60]在 /dev 中建立設備 該節說明如何建立設備,并且建立 這些設備. 如果你希望在你的 uugetty 正在監視這個串列埠是否有人簽入時還 能夠用數據機撥出的話,用 /dev/cuaN 設備而不要用 /dev/ttySN. 當你正在編輯 /etc/gettydefs 時,你可以這樣來檢查它的語法是否正確: linux# getty -c /etc/gettydefs6.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-initializedALTLOCK=cua3ALTLINE=cua3# line to initializeINITLINE=cua3# timeout to disconnect if idle...TIMEOUT=60# modem initialization string...# format: <expect> <send> ... (chat sequence)INIT="" AT\r OK\r\nWAITFOR=RINGCONNECT="" ATA\r CONNECT\s\A# this line sets the time to delay before sending the login bannerDELAY=1#DEBUG=010 將下面那一行加到你的 /etc/inittab 里去,那麼 uugetty 就會在你的串列埠上 執行(用你環境的正確資訊來取代 - 配置檔的位置,串列埠名,速度,及預設終 端機形式): S3:456:respawn:/sbin/uugetty -d /etc/default/uugetty.ttyS3 ttyS3 F115200 vt100 重新啟動 init: linux# init q 對於在你 /etc/inittab 里面的速度參數,你會希望使用你數據機所能支援的最 高每秒位元傳輸率. 現在 Linux 將會隨時監視你的串列埠是否有連線.從別的地方撥號并簽入你的 Linux 機器. uugetty 還有更多的選項,參閱 getty (lm) 線上手冊獲得更完整的敘述. 別的 不提它還有排程(scheduling)的功能,以及回撥的能力. 7. 我怎麼設定終端機連線到我的 PC 上? 本節的指示能讓終端機及其它電腦連上你的 Linux 機器的串列埠. 7.1 硬體需求 要確定你有一條正確的連接線.在電腦商店買的 null modem 連接線就可以勝任 . 但是它一定得要是一條 null modem 線!許多的電腦站將這類的連接線說成是 串列印表接線. 確定你是使用你的串列埠,公的 DB25 或是 DB9 接頭,而不是 你的并列埠(母的 DB25 或 centronics). 對 DB-25 接頭而言,至少你得要有: PC male DB25 Terminal DB25 TxD Transmit Data 2 --> 3 RxD Receive Data RxD Receive Data 3 <-- 2 TxD Transmit Data SG Signal Ground 7 --- 7 SG Signal Ground 如果你想要擁有流量控制以及硬體連線協商(handshaking)的話,你必須要有一條 完整的 null modem 接線: PC male DB25 Terminal DB25 TxD Transmit Data 2 --> 3 RxD Receive Data RxD Receive Data 3 <-- 2 TxD Transmit Data RTS Request To Send 4 --> 5 CTS Clear To Send CTS Clear To Send 5 <-- 4 RTS Request To Send DSR Data Set Ready 6 | DCD Carrier Detect 8 <-- 20 DTR Data Terminal Ready SG Signal Ground 7 --- 7 SG Signal Ground 6 DSR Data Set Ready | DTR Data Terminal Ready 20 --> 8 DCD Carrier Detect 如果你的串列埠上有一個 DB9 的接頭,試試看下面這個: PC DB9 Terminal DB25 RxD Receive Data 2 <-- 2 TxD Transmit Data TxD Transmit Data 3 --> 3 RxD Receive Data SG Signal Ground 5 --- 7 SG Signal Ground 或者,一條完整的 DB9 對 DB25 null modem 連接線: PC DB9 Terminal DB25
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -