Linux Serial HOWTO 中譯版: 串列埠的名稱是什麼?

Next Previous Contents

## 3. 串列埠的名稱是什麼?

一個輸出/入(I/O)埠是用來將資料送入電腦及從電腦取出的通路． 有許多種類的輸出/入埠，例如串列埠，平行埠，磁碟控制器，乙太網路卡等等． 我們要處理的是串列埠，因為數據機及終端機是串列裝置． 每一個串列埠必須有一個輸出/入位址，以及一個插斷號碼(IRQ)． 有四個串列設備對應到 COM1 - COM4:

> `

>     ttyS0 (COM1) address 0x3f8 IRQ 4
>     ttyS1 (COM2) address 0x2f8 IRQ 3
>     ttyS2 (COM3) address 0x3e8 IRQ 4
>     ttyS3 (COM4) address 0x2e8 IRQ 3

> `

如果 Linux 啟動時沒有偵測到任何串列裝置，請確定在編譯核心時有加入串列支援． 在這份文件中，我是以 `ttyS0` 參照 COM1，`ttyS1` 參照 COM2，以 `ttyS2` 參照 COM3 ，而以 `ttyS3` 參照 COM4． 注意這些裝置預設的 IRQ 是重疊的．你無法由這些預設值使用所有的串列埠，你必須重新指定不同的 IRQ． 參見 我能使用超過兩個的串列裝置嗎? 一節說明如何設定 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 64
>     linux# mknod -m 666 /dev/ttyS0 c 4 64

> `

你也可以使用 `MAKEDEV` 這個指令稿，在 `/dev` 下應該會有． 這簡化了設備的建立．例如，如果你需要建立 `ttyS0` 設備則應該輸入：

> `

>     linux# cd /dev
>     linux# ./MAKEDEV ttyS0

> `

這將會處理關於連線進來以及連線出去的設備之建立，並設定正確的權限．

## 3.2 一般多埠板的注意事項

你的多埠板所使用的設備視你使用那一種多埠板而定． 這些細節詳細列在隨附於 `setserial` 程式的 `rc.serial` 裡面． 如果你嘗試使用多埠板的話我強烈建議你取得最新版本的 `setserial`． 你可能會需要建立這些設備．無論是用 `mknod` 指令或是 `MAKEDEV` 指令稿都可以． 多埠板所用設備是以加上 ``64 + 埠號'' 來建立的．所以，如果你想為 `ttyS17` 建立設備，你應該輸入：

> `

>     linux# mknod -m 666 /dev/cua17 c 5 81
>     linux# mknod -m 666 /dev/ttyS17 c 4 81

> `

要注意到 ''64 + 17 = 81''．使用 `MAKEDEV` 指令稿的話，你應該輸入：

> `

>     linux# cd /dev
>     linux# ./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 智慧型多埠板的注意事項

閱讀隨附驅動程式而來的資訊． 這些板使用了特殊的裝置，而非標準的．這些資訊視你的硬體而定．

Next Previous Contents