?? serial-howto.txt
字號:
[34]http://www.nyx.net/~arobinso driver status: supported by author driver location: [35]http://www.nyx.net/~arobinso and included in Linux kernel since version 2.1.15 * Maxpeed SS (Toshiba; 4, 8 and 16 ports) contact: [36]info@maxpeed.com or [37]http://www.maxpeed.com driver status: supported by Maxpeed driver location: [38]ftp://maxpeed.com/pub/ss * Moxa C218 (12MHz 80286; 8 ports), Moxa C320 (40MHz TMS320; 8 - 32 ports) contact: [39]info@moxa.com.tw or [40]http://www.moxa.com.tw driver status: supported by Moxa driver location: [41]ftp://ftp.moxa.com.tw/drivers/c218-320/linux * SDL RISCom/8 (Cirrus Logic CD180; 8 ports) contact: [42]sales@sdlcomm.com or [43]http://www.sdlcomm.com driver status: supported by SDL driver location: [44]ftp://ftp.sdlcomm.com/pub/drivers * Specialix SIO (20MHz Zilog Z280; 4 - 32 ports), XIO (25MHz Zilog Z280; 4 - 32 ports) contact: Simon Allen, [45]simonallen@cix.compulink.co.uk driver status: BETA driver location: [46]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: [47]sales@stallion.com or [48]http://www.stallion.com driver status: supported by Stallion driver location: [49]ftp://ftp.stallion.com/drivers/ata5/Linux and included in linux kernel since 1.3.27 其中 Comtrol, Cyclades, Digi, 及 Stallion 的產品在 1995 年六月份的 Linux Journal 上有篇回顧文章. 這篇文章可在 [50]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: ttyS0 (COM1) address 0x3f8 IRQ 4ttyS1 (COM2) address 0x2f8 IRQ 3ttyS2 (COM3) address 0x3e8 IRQ 4ttyS3 (COM4) address 0x2e8 IRQ 3 如果 Linux 啟動時沒有偵測到任何串列裝置,請確定在編譯核心時有加入串列支 援. 在這份文件中,我是以 ttyS0 參照 COM1,ttyS1 參照 COM2,以 ttyS2 參 照 COM3 ,而以 ttyS3 參照 COM4. 注意這些裝置預設的 IRQ 是重疊的.你無 法由這些預設值使用所有的串列埠,你必須重新指定不同的 IRQ. 參見 [51]我 能使用超過兩個的串列裝置嗎? 一節說明如何設定 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* 在 /dev 中建立設備 如果你沒有其中的一個設備,你必須自己用 mknod 指令建立它. 例如,假定你 需要建立 ttyS0 設備: linux# mknod -m 666 /dev/cua0 c 5 64linux# mknod -m 666 /dev/ttyS0 c 4 64 你也可以使用 MAKEDEV 這個指令稿,在 /dev 下應該會有. 這簡化了設備的建 立.例如,如果你需要建立 ttyS0 設備則應該輸入: linux# cd /devlinux# ./MAKEDEV ttyS0 這將會處理關於連線進來以及連線出去的設備之建立,并設定正確的權限. 3.2 一般多埠板的注意事項 你的多埠板所使用的設備視你使用那一種多埠板而定. 這些細節詳細列在隨附於 setserial 程式的 rc.serial 里面. 如果你嘗試使用多埠板的話我強烈建議你 取得最新版本的 setserial. 你可能會需要建立這些設備.無論是用 mknod 指 令或是 MAKEDEV 指令稿都可以. 多埠板所用設備是以加上 ``64 + 埠號'' 來建 立的.所以,如果你想為 ttyS17 建立設備,你應該輸入: linux# mknod -m 666 /dev/cua17 c 5 81linux# mknod -m 666 /dev/ttyS17 c 4 81 要注意到 ''64 + 17 = 81''.使用 MAKEDEV 指令稿的話,你應該輸入: linux# cd /devlinux# ./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 請 確定你使用了正確的語法. 關於 getty_ps 大部分 Linux 安裝套件都安裝了 getty_ps 套件.它包含了兩個程式: getty 是 由主控臺,以及終端機設備所使用,而 uugetty 則是由數據機所使用的. 因為 我本身是使用這個版本的 getty,所以在這份文件中我將會著重於此套件. 關於 mgetty mgetty 是一個在數據機上使用的 getty 版本. 除了能夠允許簽入之外, mgetty 也提供傳真(FAX)支援及自動 PPP 偵測. 這套 mgetty 的文件寫得相當 地好,因而不需要再補充什麼.請參考它的安裝說明. 你也可以在 [52]http://www.leo.org/~doering/mgetty/ 找到 mgetty 的最新資訊. 關於 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 接頭. 把你的數據機接到其中一個串列埠上.如果你需要關於這個動作的 輔助說明請參考你的數據機手冊. 內接式數據機注意事項 對於內接式數據機而言,你不需要連接線.內接式數據機不需要串列埠,它自己 有內建一個. 你只要配置一個沒有被使用的硬體中斷給它,并且配置該埠的輸出 入位址.如果你卡在某個問題上請參考你的數據機手冊. 同樣,如果你需要關於 選擇中斷以及位址上的幫助,參閱 [53]我能使用超過兩個的串列裝置嗎? 一節的 說明. 在某些主機板上你必須關掉被數據機取代的串列埠以避免沖突. 這可經由跳線或 BIOS 的設定來辦到,視你的主機板而定.查閱你的主機板手冊. 由於 IBM8514 視訊卡的一個錯誤,如果你想要將你的內接式數據機設在 ttyS3 的話可能會遭遇一些問題. 如果 Linux 沒有偵測到你設在 ttyS3 上的內接式數 據機,你可以使用 setserial 程式來設定然後數據機將會正常運作. 設在 ttyS{0-2} 上的內接式數據機在偵測上應該不會有任何問題. 由於此視訊卡的錯 誤 Linux 在 ttyS3 沒有任何自動偵測的動作. 5.2 與你的數據機交談 在你使用復雜的通訊程式如 SLIP 或 PPP 之前先以 kermit 或其它簡單的通訊程 式來測試這些設定. 你可以從 [54]http://www.columbia.edu/kermit/ 以及映 射節點上找到最新的 kermit 版本. 例如,要是你的數據機設在 ttyS3 上,而 且可以接受 115200 bps 的話,你可以這樣做: linux# kermitC-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 BINARYType ? or HELP for help.C-Kermit>set line /dev/ttyS3C-Kermit>set carrier-watch offC-Kermit>set speed 115200/dev/ttyS3, 115200 bpsC-Kermit>cConnecting 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>quitlinux# 這個不過是用"手動"方式的撥號測試.正常的方法是讓 kermit 用它內建的數據 機資料庫自動為你撥號,例如,使用 US Robotics (USR) modem: linux# kermitC-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 BINARYType ? or HELP for helpC-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 115200The escape character is Ctrl-\ (ASCII 28, FS).Type the escape character followed by C to get back,
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -