SETSERIAL(8) | System Manager's Manual | SETSERIAL(8) |
setserial - 取得/設定 Linux 序列口的資訊
setserial [ -abqvVWZ] 裝置 [ 命令引數一 [ 裝置變元引數 ] ] ... setserial -g [ -abGv ] 裝置一 ...
setserial 是一個用來設定和取得與一個序列口有關的資訊與設定的程式。這些信 息包括某個序列口正在使用的I/o地址與中斷號,以及break鍵是否被當 做引起安全注意的鍵,等等。
在通常的引導的過程中,只有埠
COM1至COM4被初始化,並使用預設的
I/O地址和中斷號,正如以下所列。為了初始化其它的序列口,或者是把
COM1至COM4中的設定改為一個非標準的設定。就必須使用
setserial
程式。一般這個程式會在
rc.serial
指令碼中使用,此指令碼通常會在
/etc/rc.local.
中被執行
裝置
由變元引數定義的需要設定的序列裝置。它們通常具有以下形式:
/dev/cua[0-3].
如果沒有設定命令引數,
setserial
將打印出此埠的型別(如,8250,16450
,14330,16550A,等等),
硬體I/O地址,各硬體中也斷號,波特數,和一些可操作或更改的標識。
如果選擇 -g 選項,命令將列出所給出的裝置引數的一些基本資訊。
如果沒有指定引數 -g 命令所指定的第一個裝置變元將被當作修改或者是顯示內容的目標裝置, 而其它的裝置變元引數將被當作命令引數賦於目標裝置。
對於大多數情況,需要有系統管理員的許可權才能設定序列口。當然有一 些序列口的引數,也可由普通使用者設定,這些引數在本手冊中會有另有 說明。
Setserial 可接受下列引數:
以下命令引數可以賦於一個序列口.
所有的引數值都被假定為一個八進位制數,除非值前標有"0x".
一些內貓標註著"16650A UART帶有1K緩衝",這是騙人的.它們沒有真正 相容 16550A的UART;相反的它們只有 一個16450相容的帶1K接收緩衝 UART,以防止接 收時溢位.這是非常重要的,因為它們沒有一個沒有一 個可傳導的FIFO.因此,他們與16650A UART 並不相容,自動配置過程將 正確的識別它們為16450 型別。如果你想強行使用,需要 uart 引數,這樣你在傳輸檔案時會發現有字元遺失.這些 UART 通常還有其它 一些問題. skip test 引數也經常被使用. autoconfig 當使用這個引數時, Setserial 將向核心請求自動設定序列口.I/O地址一要正確設定;核心將會 試圖檢測UART型別,如果 auto_irq 引數選用,Linux將試圖自動分配中斷號IRQ. autoconfig 引數應在 port,auto_irq,and skip_test 等引數使用後也被指定.
如果裝置非常慢,像一個繪圖儀,那麼,兩項值可能要增大一些。
如果裝置使用 XON/XOFF 訊號交換,那麼預設值將會反過來。然而這 可能會致使在linux 與回波貓之間有一個"回波衝突"。
此引數的一個應用就是在當一個登陸端被一個撥號的序列口鎖定。它將 允許登陸端重置調變解調器(使用指定裝置的程式可能會修改它的設定) 在鎖定被開啟之前。
明白setserial 命令只是告訴linux核心它想找到某個特定的埠的 I/O地址各中斷號IRQ是很重要的。它並不操作硬體,序列裝置實際 使用的一個特定的I/O地址。為了達到更改實際的硬體引數,你需要 手動設定硬體,通常是設定跳線,或更改DIP開關。
以下一節將針對設定你的串列埠給於一些幫助。
以下是"標準MS-dos"的埠設定:
/dev/ttys0(COM1), port 0x3f8, irq 4 /dev/ttys1(COM2), port 0x2f8, irq 3 /dev/ttys2(COM3), port 0x3e8, irq 4 /dev/ttys3(COM4), port 0x2e8, irq 3
根據AT/ISA匯流排結構的限定,通常中斷號IRQ不能被兩個以上的序列口 共享。如果你試圖這這樣做,那麼當你同時啟用兩個埠時,它們中 的一個或全部將會不可靠。這和限制可由一多埠的序列口板來克服, 它用來讓多個序列口共享一箇中斷號IRQ。此種板對linux的支援已加入 到AST FourPort, Accent Async 板,Usenet Serial II 板,Bocabord BB-1004, BB-1008,和 BB-2016 板,以及HUB-6 serial 板之中。
修改一個裝置的中斷號IRQ是比較困難的,因為大多數中斷號已經被使用了, 以下是"標準MS-DOS"設定的有效的中斷號列表:
IRQ 3: COM2 IRQ 4: COM1 IRQ 5: LPT2 IRQ 7: LPT1
許多人都發現中斷號IRQ 5 是一個好的選擇,假設電腦中只有一個並行口 是正在使用的。那麼中斷號IRQ 2 也是一個好的選擇(也可能是9); 雖然這個中斷號IRQ有時也被網絡卡使用,也有極個別的的顯示卡可能要使用 中斷號IRQ 2作為一個垂直回掃的中斷。如果你的顯示卡是這樣設定的; 那你可能要禁用此項功能,以便能給其它的裝置釋放一箇中斷。當然這對 於linux或是其它作業系統不一定是必須的。
另外其它可用的中斷號有 3 ,4,和 7,這些中斷可能也被另一些串 行或是並行口所用。(如果你的序列卡有一個16位的電子資料收集器的 接線口,並且支援更高的中斷號,那麼中斷號IRQ 10 ,11, 12,和 15 也是可用的。)
在一些AT類的機器上,中斷號IRQ 2 被當作中斷號IRQ 9,所以linux 會如此認為。
其它中斷號除了2(9),3, 4, 5, 7, 10, 11, 12 和15 不 能被使用,因為他們被安排給了其它的硬體,而且一般上不能 更改。以下是一些“標準”的設定:
IRQ 0 時鐘發生器 0 IRQ 1 鍵盤 IRQ 2 可程式設計的中斷控制器 2 IRQ 3 序列口 2 IRQ 4 序列口 1 IRQ 5 並行口 2(保留給PS/2) IRQ 6 軟盤驅動器 IRQ 7 並行口 1 IRQ 8 系統實時名鍾 IRQ 9 重定向給中斷號IRQ 2 IRQ 10 保留 IRQ 11 保留 IRQ 12 保留(ps/2相容的裝置) IRQ 13 數學協處理器 IRQ 14 硬碟控制器 IRQ 15 保留
一些多埠的串行板可以讓多的端中共享一箇中斷號,使用一個或是多個埠 以顯示是否有埠需要服務。如果你的多埠呂行板支援這些埠,你須保 證如果中斷丟失時,能避免潛在的死鎖。
為了詳細設定這些埠,使用 set_multiport 為引數,緊接其後的是多埠的引數。這個多端中的引數須指定為以下形式 port 這需要檢測一下,引數 mask 可以顯示在已註冊的位中那個是重要的,最後引數 math 用來指定在已註冊的位中,當沒有進一步工作要做時,那一位必須匹配。
當有四個這種 /port/mask/match時,就要指定聯合。第一個這種聯合應該 使用如下引數 port1, mask1, 和 match1. 第二個這種聯合需要用如下引數指定 port2, mask2, 和 match2, 等等。為了禁用這個多埠檢測,設定 port1 為零。
如果想檢視當前多埠的設定,指定命令列引數 get_multiport
以下是一些通常的串行板的設定:
AST FourPort port1 0x1BF match1 0xf mask1 0xf Boca BB-1004/8 port1 0x107 match1 0xff match1 0 Boca BB-2016 port1 0x107 match1 0xff match1 0 port2 0x147 match2 0xff match2 0
Setserial 也可以用來在賀氏的ESP串行板上設定埠。
以下引數在設定時使用:
警告:設定一個串列埠時使用一個不正確的I/O地址可能會造成宕機.
/etc/rc.local /etc/rc.serial
tty(4), ttys(4), kernel/chr_drv/serial.c
最初seterial的版本是由Rick Sladkey(jrs@world.std.com)所作,而後由 Michael K. Johnson(johsonm@stolaf.edu).
本頁面中文版由中文
man 手冊頁計劃提供。
中文 man
手冊頁計劃:https://github.com/man-pages-zh/manpages-zh
1998年9月 | Setserial 2.15 |