Provided by: manpages-zh_1.5.1-1_all bug

NAME

       setserial - 取得/設置 Linux 串行口的信息

`覽
       setserial  [  -abqvVWZ]  設備  [  命令參數一  [  設備變元參數  ]  ] ...
       setserial -g [....-abGv ] 設備一 ...

yz
       setserial  是一茈峔茬]置和取得與一茼磞璊f有關的信息與設置的程式。這些信
       息包括某茼磞璊f正在使用的I/o地址與中斷號,以及break鍵是否被當
       做引起安全注意的鍵,等等。

       在通常的引導的過程中,只有端口         COM1至COM4被初始化,並使用預設的
       I/O地址和中斷號,正如以下所列。為了初始化其它的串行口,或者是把
       COM1至COM4中的設置改為一茷D標準的設置。就必須使用             setserial
       程式。一般這茧{式會在        rc.serial       稿本中使用,此稿本通常會在
       /etc/rc.local.
        中被執行

       ]
        由變元參數定義的需n設置的串行設備。它抭q常具有以下形式:
       /dev/cua[0-3].

       如果沒有設定命令參數, setserial
        將列印出此端口的類型(如,8250,16450 ,14330,16550A,等等),
        硬體I/O地址,各硬體中也斷號,波特數,和一些可操作或更改的標識。

       如果選擇 -g 選項,命令將列出所給出的設備參數的一些基本信息。

       如果沒有指定參數          -g         命令所指定的第一茬]備變元將被當作-
       蚹鴭峈怓O顯示內容的目標設備,
       而其它的設備變元參數將被當作命令參數賦於目標設備。

       對於大多數情況,需n有系統管理的權才能設置串行口。當然有一
       些串行口的參數,也可由普通使用者設置,這些參數在本手冊中會有另有 說明。

項
       Setserial 可接受下列參數:

       -a     當輸出串行口設備的設置時,顯示出所有有效信息.

       -b     當輸出串行口設備的設置時,輸出主n的設備設置信息,此項適合於
              在引導過程時,在/etc/rc 稿本中輸出設備信息.

       -G     以特定形式輸出串行口的設置信息,此形式可以設置信息以命令行
              參數的形式返饋回串行口設備.

       -q     靜默.

       SetSerial
              命令將以更簡潔的形式輸出.

       -V     輸出詳細信息.  Setserial 可以輸出附加的狀態的信息.

       -V     顯示版本信息然後退出.

       -W     強制初始化中,斷然後退出.些選項在核心版本2.1後的Linux中不在提供.
              -z     在開始設置標記前清除鴞釭熙]置的串行標記.此項與     使用-G
              標記自動保存串行口的設置標記有關.

RO數
       以下命令參數可以賦於一茼磞璊f.

       所有的參數ㄢQ假定為一茪K進制數,除非e標有"0x".

       port 端口號
              port 此選項設置I/O地址如上.

       irq中斷號
              irq 此選項設置硬體的中斷號IRQ如上.

       uart異步通訊(UART)類型
               此選項用來設置異步通訊(UART)的類型.允釭疑型有            none,
              8250,16450, 16550,16550A,16550,16650V2,and 16750.  並且8250 類型
              和      16450      沒有FIFO's      ,起初的16550     有一些錯誤P
              使FIFO's不可用,FIFO    只可用來16550A類型的異步通訊機。設置異步
              通訊(UART)類型為    8250,16450,或16550  將啟用不使用  FIFO的串
              行口.使用異步通訊類型為 none 將禁用端口.

              一些內貓標注著"16650A    UART帶有1K緩沖",這是騙人的.它怢S有真正
              相容    16550A的UART;相反的它怚u有   一16450相容的帶1K接收緩沖
              UART,以防止接       收時溢出.這是非常南的,因為它怢S有一茖S有一
              茈i傳導的FIFO.因此,他抳P16650A   UART   並不相容,自動配置過程將
              正確的識別它怓16450      類型。如果你想強行使用,需n       uart
              參數,這樣你在傳輸檔案時會發現有字符遺失.這些  UART 通常還有其它
              一些問題.  skip  test  參數也經常被使用.   autoconfig  當使用這-
              荌捊氶A     Setserial    將向核心請求自動設置串行口.I/O地址一-
              n正確設置;核心將會       試圖檢測UART類型,如果        auto_irq
              參數選用,Linux將試圖自動分配中斷號IRQ.    autoconfig   參數應在
              port,auto_irq,and skip_test 等參數使用後也被指定.

       auto_irq
              在自動配置的過程中,會自動分配中斷號IRQ. 此弁鄐ㄞ鄎O証一 定有一-
              茈蕭T的結果;一些硬體的配置可能會迷惑Linux的核心.一
              般來說不使用參數 auto_irq
               的弁鄑韟w全一些,寧可明確地定IRQ中斷號.  irq
               參數指定中斷號.

       ^auto_irq
              在自動配置的過程中.並  試圖分配中斷號IRQ.

       skip_test
              在自動配置的過程中,忽略UART檢測.一些內貓沒有國際半導體公司
              相容的UART設備類型,只有一些便宜的仿制品.有一些甚至不完全支持
              loopback檢測模式,此模式是核心在試圖配置之前用來確定在特定的
              地址上是不真有UART設備.因此對於某些內貓你可能需n指定這荌捊
              以便Linux能正確的初始化UART.

       ^skip_tet
              在自動配置過程中,  忽略UART的檢測.

       baud_base波特基率
              此選項設端口的波特率,此乾厊謊W率除以16.       一般情況此項
              115200, 這也是UART能支持的最快波特率.

       spd_hi 當程式n求          38.4kb時,使用57.6kb的連接速度.           這-
              荌捊i以用由無特權的使用者指定.

       spd_vhi
              當n求38.4kb時,使用115kb的連接速度.         spd_cust         當-
              n求38.4kb時,使用指定的divisor(除數)來p算速度.這時波特率由
              baud_base()
               除以 divisor(spd_normal
              當n求38.4kb 時使用38.4kb的速度.  此參數可以由無特權的使用者指定.

       divisordivisor(除數)
              此選項指定了自定義的除數.這荌ˉN被用在                spd_cust
              選項中被指定時,當n求38.4kb的速度時,用來自行設置串行口連接
              速度此參數可由無特權的普通使用者設定.

       sak    設置break鍵為引發安全注意鍵.

       ^sak   禁用引發安全注意鍵.

       fourport
              配置端口為一AST Fouroart 卡.

       ^fourport
              禁用 AST Fourport 配置.

       closedelaydelay(close_delaydelay(延時)
              指定時間長度,單位是百分之一秒,在接受端被禁之前關閉端口時,
              核心需n等待從串行口傳來的數據.        如果指定為"none",將不會有
              延時.如果指定"infinite"       時,核心將會以不確定的時間等待緩沖
              數據的傳輸.此選項的預設鬲O "none" .

       closing_wait2delay(延時)
              指定時間的長度,單位是百分之一秒,在接受端被禁用後,在關閉端
              口時核心會等待從串行口傳來的數據.而用  closing_wait 命令,"none"
              和          "infinite"           兩參數都將被指定,此項的預設O
              3000,也就是30 秒延時。   closing_wait 和 closing_wait2的預設-
              鴾j多數的設備都會適用。
              如果選擇的延時太長,當串行口斷開後,它會掛起太長時間,
              P使數據掛起而被消除。如果設太短,將會有可能P使一些傳輸的
              數據溢出。

              如果設備非常慢,像一蚚號牰騿A那麼,兩項i能n增大一些。

              如果設備使用 XON/XOFF     信號交換,那麼預設N會反過來。然而這
              可能會P使在linux 與回波貓之間有一"回波沖突"。

       session_lockout
              對不同的任務,鎖定聯出設備的端口(/dev/cuaXX),也就是說,一但
              有一荈i程打開端口,就不允釣銗忖ㄕP號的任務打開此端口,直到 前一-
              荈i程放開此端口。

       ^session_lockout
              對聯出的端口不開啟上z弁遄C

       pgrp_lockout
              對不同進程組,鎖定聯出的端口(/dev/cuaXX)。     也就是說,一但一-
              荈i程打開一蚨搕f,不允其它進程組的進程共     享此端口,直到前一-
              荈i程釋放它。

              此參數的一蚗野帤N是在當一茧n陸端被一蚍溢鼓漲磞璊f鎖定。它將
              允陬n陸端姜m調制解調器(使用指定設備的程式可能會蚹鴷扛熙]置)
              在鎖定被打開之前。

       ^hup_notify
              當進程鎖定在打一蚍溢僥氶A而此時聯郵設備正掛起的話,不通知進程。

       split_termios
              對於聯出設備的終端設置與聯入設備的終端設置分開對待。

       ^split)termios
               對以上兩者相同對待.此偎w設選項。

       callout_nohup
               如果這荅S殊串行口被當成一蚆p出設備打開,那麼當載波檢測消失
              時,不掛起通訊端口。

       ^callout_nohup
              當串行口當作聯出設備打開時,不忽略掛起通訊端口。當然,如果掛起
              的話HUPCL終端標識將會被啟用。

       ^low_latency
                以更高的CPU佔用率來使得接受滯延達到最小。(通常傳輸中的5-10ms的
              滯延以使系統開銷最小.)   此項預設冕鶶活A但某些實時程式可能會用
              到此參數。

CONISIDERATIONS OF CONFIGURING SERIAL PORTS

       明白setserial              命令只是告訴linux核心它想找到某荅S定的端口的
       I/O地址各中斷號IRQ是很南的。它並不操作硬體,串行設備實際      使用的一-
       荅S定的I/O地址。為了達到更改實際的硬體參數,你需n
       手動設置硬體,通常是設置跳線,或更改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不能被兩茈H上的串行口
       共享。如果你試圖這這樣做,那麼當你同時啟用兩蚨搕f時,它怳        的一-
       茤峊部將會不可靠。這和制可由一多端口的串行口板來克服,     它用來讓多-
       茼磞璊f共享一茪刈_號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

       釵h人都發現中斷號IRQ       5     是一茼n的選擇,假設電腦中只有一茖疆璊f
       是正在使用的。那麼中斷號IRQ   2   也是一茼n的選擇(也可能是9);   雖然這-
       茪刈_號IRQ有時也被網卡使用,也有極荍O的的顯卡可能n使用        中斷號IRQ
       2作為一茷囿膠^掃的中斷。如果你的顯卡是這樣設置的;            那你可能-
       n禁用此項弁遄A以便能給其它的設備釋放一茪刈_。當然這對
       於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   
       能被使用,因為他抭Q安排給了其它的硬體,而且一般上不能
       更改。以下是一些「標準」的設置:

              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     咿w向給中斷號IRQ  2
              IRQ  10    保留
              IRQ  11    保留
              IRQ  12    保留(ps/2相容的設備)
              IRQ  13    數學協處理器
              IRQ  14    硬碟控制器
              IRQ  15    保留

MULTIPORT CONFIGURATION

       一些多端口的串行板可以讓多的端中共享一茪刈_號,使用一茤峎O多蚨搕f
       以顯示是否有端口需n服務。如果你的多端口呂行板支持這些端口,你須保
       証如果中斷丟失時,能避免潛在的死鎖。

       為了詳細設置這些端口,使用                                set_multiport
       為參數,緊接其後的是多端口的參數。這茼h端中的參數須指定為以下形式  port
       這需n檢測一下,參數 mask 可以顯示在已注冊的位中那茯O南的,最後參數 math
       用來指定在已注冊的位中,當沒有進一步工作n做時,那一位必須匹配。

       當有四茬o種          /port/mask/match時,就n指定聯合。第一茬o種聯合應該
       使用如下參數 port1, mask1,match1.   第二茬o種聯合需n用如下參數指定
       port2, mask2,match2, 等等。為了禁用這茼h端口檢測,設置 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

Hayes ESP]m
       Setserial 也可以用來在賀氏的ESP串行板上設置端口。

       以下參數在設置時使用:

       rx_trigger
              這是一荓策洩慚IFO的觸發水(以字節為單位),較大的-
              i減少中斷時間提  高性能;然而茪j會引起數據丟失。有效b1   到
              1023  之間.

       tx_trigger
              這是一荈e的FIFO的觸發水(安節為單位),較在的-
              i減少中斷時間提高性 能,但茪j會引起傳輸效率下陛C有效b1  到
              1023之間.

       flow_off
              這是通知ESP端口斷開遠端的傳輸(如,告訴它停止發送數據).有效b1
              到 1023之間,這蚧n比接收的觸發等級和聯接的水玄高.

       flow_on
              這是ESP端口通知聯接的等級(單位字節),(如,通知奐s開始發送數據)在
              掛斷之後,有效b1   到   1023之間.這蚧應在斷開(flow   off)等級
              之下但n比接收的觸發等級高.

       rx_timeout
              這是ESP端口在接收完最後一茼r符,且在中斷信號之前將n等待的時間。
              有效O0到255.茪j會增加延時,太小會引起不必n的中斷。

i
       警告:設置一茼磞皞搕f時使用一茪ㄔ蕭T的I/O地址可能會造成死機.

案
       /etc/rc.local /etc/rc.serial

t ,
       tty(4), ttys(4), kernel/chr_drv/serial.c

@者
       最初seterial的版本是由Rick        Sladkey(jrs@world.std.com)所作,而後由
       Michael K. Johnson(johsonm@stolaf.edu).