Man page - setserial(8)

Packages contains this manual

Available languages:

en ja zh_TW zh_CN

Manual

SETSERIAL

NAME
總 覽
描 述
選 項
命 令 引 數
CONISIDERATIONS OF CONFIGURING SERIAL PORTS
MULTIPORT CONFIGURATION
Hayes ESP 的 設 定
警 告
檔 案
另 見 ,
作 者


NAME

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 可 接 受 下 列 引 數 :

-a

當 輸 出 序 列 口 裝 置 的 設 定 時 , 顯 示 出 所 有 有 效 資 訊 .

-b

當 輸 出 序 列 口 裝 置 的 設 定 時 , 輸 出 主 要 的 裝 置 設 定 資 訊 , 此 項 適 合 於 在 引 導 過 程 時 , 在 /etc/rc 指 令 碼 中 輸 出 裝 置 資 訊 .

-G

以 特 定 形 式 輸 出 序 列 口 的 設 定 資 訊 , 此 形 式 可 以 設 定 資 訊 以 命 令 列 引 數 的 形 式 返 饋 回 序 列 口 裝 置 .

-q

靜 默 .

SetSerial

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

-V

輸 出 詳 細 資 訊 . Setserial 可 以 輸 出 附 加 的 狀 態 的 資 訊 .

-V

顯 示 版 本 資 訊 然 後 退 出 .

-W

強 制 初 始 化 中 ,斷 然 後 退 出 .些 選 項 在 核 心 版 本 2.1後 的 Linux中 不 在 提 供 . -z 在 開 始 設 定 標 記 前 清 除 原 有 的 設 定 的 序 列 標 記 .此 項 與 使 用 -G 標 記 自 動 儲 存 序 列 口 的 設 定 標 記 有 關 .

命 令 引 數

以 下 命 令 引 數 可 以 賦 於 一 個 序 列 口 .

所 有 的 引 數 值 都 被 假 定 為 一 個 八 進 位 制 數 , 除 非 值 前 標 有 "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 有 一 些 錯 誤 致 使 FIFO’s不 可 用 , FIFO 只 可 用 來 16550A型 別 的 非 同 步 通 訊 機 。 設 定 非 同 步 通 訊 (UART)型 別 為 8250, 16450, 或 16550 將 啟 用 不 使 用 FIFO的 串 行 口 .使 用 非 同 步 通 訊 型 別 為 none 將 停 用 埠 .

一 些 內 貓 標 註 著 "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 等 引 數 使 用 後 也 被 指 定 .

auto_irq

在 自 動 配 置 的 過 程 中 , 會 自 動 分 配 中 斷 號 IRQ. 此 功 能 不 能 保 證 一 定 有 一 個 正 確 的 結 果 ; 一 些 硬 體 的 配 置 可 能 會 迷 惑 Linux的 核 心 .一 般 來 說 不 使 用 引 數 auto_irq
的 功 能 更 安 全 一 些 , 寧 可 明 確 地 定 IRQ中 斷 號 . irq
引 數 指 定 中 斷 號 .

ˆauto_irq

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

skip_test

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

ˆskip_tet

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

baud_base 波 特 基 率

此 選 項 設 埠 的 波 特 率 , 此 值 為 時 鐘 頻 率 除 以 16. 一 般 情 況 此 項 值 為 115200, 這 也 是 UART能 支 援 的 最 快 波 特 率 .

spd_hi

當 程 式 要 求 38.4kb時 , 使 用 57.6kb的 連 線 速 度 . 這 個 引 數 可 以 用 由 無 特 權 的 使 用 者 指 定 .

spd_vhi

當 要 求 38.4kb時 , 使 用 115kb的 連 線 速 度 . spd_cust 當 要 求 38.4kb時 , 使 用 指 定 的 divisor(除 數 )來 計 算 速 度 .這 時 波 特 率 由 baud_base(波 特 基 率 )
除 以 divisor(除 數 ) 得 到

spd_normal

當 要 求 38.4kb 時 使 用 38.4kb的 速 度 . 此 引 數 可 以 由 無 特 權 的 使 用 者 指 定 .

divisor divisor(除 數 )

此 選 項 指 定 了 自 定 義 的 除 數 .這 個 除 數 將 被 用 在 spd_cust 選 項 中 被 指 定 時 , 當 要 求 38.4kb的 速 度 時 , 用 來 自 行 設 定 序 列 口 連 線 速 度 此 引 數 可 由 無 特 權 的 普 通 使 用 者 設 定 .

sak

設 定 break鍵 為 引 發 安 全 注 意 鍵 .

ˆsak

停 用 引 發 安 全 注 意 鍵 .

fourport

配 置 埠 為 一 AST Fouroart 卡 .

ˆfourport

停 用 AST Fourport 配 置 .

close delay delay(延 時 )

指 定 時 間 長 度 , 單 位 是 百 分 之 一 秒 , DTR在 聯 出 裝 置 被 關 閉 後 , 仍 會 保 持 一 個 低 速 序 列 通 路 , 在 有 資 料 進 來 之 前 會 重 新 起 動 DTR.這 選 項 的 默 認 值 為 50, 即 半 秒 延 時 .

close_delay delay(延 時 )

指 定 時 間 長 度 , 單 位 是 百 分 之 一 秒 , 在 接 受 端 被 禁 之 前 關 閉 埠 時 , 核 心 需 要 等 待 從 序 列 口 傳 來 的 資 料 . 如 果 指 定 為 "none", 將 不 會 有 延 時 .如 果 指 定 "infinite" 時 , 核 心 將 會 以 不 確 定 的 時 間 等 待 緩 衝 資 料 的 傳 輸 .此 選 項 的 預 設 值 為 是 "none" .

closing_wait2 delay(延 時 )

指 定 時 間 的 長 度 , 單 位 是 百 分 之 一 秒 , 在 接 受 端 被 停 用 後 , 在 關 閉 端 口 時 核 心 會 等 待 從 序 列 口 傳 來 的 資 料 .而 用 closing_wait 命 令 , "none" 和 "infinite" 兩 引 數 都 將 被 指 定 , 此 項 的 預 設 值 是 3000, 也 就 是 30  秒 延 時 。   closing_wait 和 closing_wait2的 預 設 值 對 大 多 數 的 裝 置 都 會 適 用 。 如 果 選 擇 的 延 時 太 長 , 當 序 列 口 斷 開 後 , 它 會 掛 起 太 長 時 間 , 致 使 資 料 掛 起 而 被 消 除 。 如 果 設 太 短 , 將 會 有 可 能 致 使 一 些 傳 輸 的 資 料 溢 位 。

如 果 裝 置 非 常 慢 , 像 一 個 繪 圖 儀 , 那 麼 , 兩 項 值 可 能 要 增 大 一 些 。

如 果 裝 置 使 用   XON/XOFF 訊 號 交 換 , 那 麼 預 設 值 將 會 反 過 來 。 然 而 這 可 能 會 致 使 在 linux 與 回 波 貓 之 間 有 一 個 "回 波 衝 突 "。

session_lockout

對 不 同 的 任 務 , 鎖 定 聯 出 裝 置 的 埠 (/dev/cuaXX), 也 就 是 說 , 一 但 有 一 個 程 序 開 啟 埠 , 就 不 允 許 其 它 不 同 號 的 任 務 開 啟 此 埠 , 直 到 前 一 個 程 序 放 開 此 埠 。

ˆsession_lockout

對 聯 出 的 埠 不 開 啟 上 述 功 能 。

pgrp_lockout

對 不 同 程 序 組 , 鎖 定 聯 出 的 埠 (/dev/cuaXX)。 也 就 是 說 , 一 但 一 個 程 序 開 啟 一 個 埠 , 不 允 其 它 程 序 組 的 程 序 共 享 此 埠 , 直 到 前 一 個 程 序 釋 放 它 。

此 引 數 的 一 個 應 用 就 是 在 當 一 個 登 陸 端 被 一 個 撥 號 的 序 列 口 鎖 定 。 它 將 允 許 登 陸 端 重 置 調 變 解 調 器 (使 用 指 定 裝 置 的 程 式 可 能 會 修 改 它 的 設 定 ) 在 鎖 定 被 開 啟 之 前 。

ˆhup_notify

當 程 序 鎖 定 在 打 一 個 撥 號 時 , 而 此 時 聯 郵 裝 置 正 掛 起 的 話 , 不 通 知 程 序 。

split_termios

對 於 聯 出 裝 置 的 終 端 設 定 與 聯 入 裝 置 的 終 端 設 定 分 開 對 待 。

ˆsplit)termios

對 以 上 兩 者 相 同 對 待 .此 值 為 預 設 選 項 。

callout_nohup

如 果 這 個 特 殊 序 列 口 被 當 成 一 個 聯 出 裝 置 開 啟 , 那 麼 當 載 波 檢 測 消 失 時 , 不 掛 起 通 訊 埠 。

ˆcallout_nohup

當 序 列 口 當 作 聯 出 裝 置 開 啟 時 , 不 忽 略 掛 起 通 訊 埠 。 當 然 , 如 果 掛 起 的 話 HUPCL終 端 標 識 將 會 被 啟 用 。

ˆlow_latency

以 更 高 的 CPU佔 用 率 來 使 得 接 受 滯 延 達 到 最 小 。 (通 常 傳 輸 中 的 5- 10ms的 滯 延 以 使 系 統 開 銷 最 小 .) 此 項 預 設 值 為 關 閉 , 但 某 些 即 時 程 式 可 能 會 用 到 此 引 數 。

CONISIDERATIONS OF CONFIGURING SERIAL PORTS

明 白 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 保 留

MULTIPORT CONFIGURATION

一 些 多 埠 的 串 行 板 可 以 讓 多 的 端 中 共 享 一 箇 中 斷 號 ,使 用 一 個 或 是 多 個 埠 以 顯 示 是 否 有 埠 需 要 服 務 。 如 果 你 的 多 埠 呂 行 板 支 援 這 些 埠 , 你 須 保 證 如 果 中 斷 丟 失 時 , 能 避 免 潛 在 的 死 鎖 。

為 了 詳 細 設 定 這 些 埠 , 使 用 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

Hayes ESP 的 設 定

Setserial 也 可 以 用 來 在 賀 氏 的 ESP串 行 板 上 設 定 埠 。

以 下 引 數 在 設 定 時 使 用 :
rx_trigger

這 是 一 個 接 收 的 FIFO的 觸 發 水 平 (以 位 元 組 為 單 位 ), 較 大 的 值 可 減 少 中 斷 時 間 提 高 效 能 ;然 而 值 太 大 會 引 起 資 料 丟 失 。 有 效 值 在 1 到 1023 之 間 .

tx_trigger

這 是 一 個 傳 送 的 FIFO的 觸 發 水 平 (安 節 為 單 位 ),較 在 的 值 可 減 少 中 斷 時 間 提 高 性 能 , 但 值 太 大 會 引 起 傳 輸 效 率 下 降 。 有 效 值 在 1 到 1023之 間 .

flow_off

這 是 通 知 ESP埠 斷 開 遠 端 的 傳 輸 (如 , 告 訴 它 停 止 傳 送 資 料 ).有 效 值 在 1 到 1023之 間 , 這 個 值 要 比 接 收 的 觸 發 等 級 和 聯 接 的 水 平 值 高 .

flow_on

這 是 ESP埠 通 知 聯 接 的 等 級 (單 位 位 元 組 ),(如 , 通 知 重 新 開 始 傳 送 資 料 )在 結 束 通 話 之 後 , 有 效 值 在 1 到 1023之 間 .這 個 值 應 在 斷 開 (flow off)等 級 值 之 下 但 要 比 接 收 的 觸 發 等 級 高 .

rx_timeout

這 是 ESP埠 在 接 收 完 最 後 一 個 字 元 , 且 在 中 斷 訊 號 之 前 將 要 等 待 的 時 間 。 有 效 值 是 0到 255.值 太 大 會 增 加 延 時 , 太 小 會 引 起 不 必 要 的 中 斷 。

警 告

警 告 : 設 定 一 個 序 列 埠 時 使 用 一 個 不 正 確 的 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