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
最初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 |