Linux 和並行埠 IDE 裝置

PARIDE v1.03 (c) 1997-8 Grant Guenther <grant@torque.net> PATA_PARPORT (c) 2023 Ondrej Zary

1. 簡介

由於並行埠介面在個人計算機上的簡單性和幾乎普遍性,許多外部裝置,如行動式硬碟、CD-ROM、LS-120 和磁帶驅動器,都使用並行埠連線到其主機。儘管有些裝置(特別是掃描器)使用臨時方法透過並行埠介面傳輸命令和資料,但大多數外部裝置實際上與內部型號相同,只是增加了並行埠介面卡晶片。一些最初的並行埠介面卡僅僅是用於多路複用 SCSI 匯流排的機制。(ZIP 驅動器中使用的 Iomega PPA-3 介面卡就是這種方法的一個例子)。然而,大多數當前設計採用不同的方法。介面卡晶片在外部裝置中複製了一個小型 ISA 或 IDE 匯流排,並且通訊協議提供了讀寫裝置暫存器以及資料塊傳輸的功能。有時,透過並行電纜定址的裝置是標準的 SCSI 控制器,如 NCR 5380。“ditto”系列外部磁帶驅動器使用 ISA 複製器來介面軟盤控制器,該控制器再連線到軟盤磁帶機構。然而,絕大多數外部並行埠裝置現在都基於標準的 IDE 型別裝置,無需中間控制器。例如,如果開啟一個並行埠 CD-ROM 驅動器,會發現一個標準的 ATAPI CD-ROM 驅動器、一個電源和一個將標準 PC 並行埠電纜與標準 IDE 電纜互連的介面卡。通常可以將 CD-ROM 裝置與使用 IDE 介面的任何其他裝置進行互換。

本文件描述了 Linux 中對並行埠 IDE 裝置的支援。它不包括並行埠 SCSI 裝置、“ditto”磁帶驅動器或掃描器。並行埠 IDE 子系統支援許多不同的裝置,包括

  • MicroSolutions backpack CD-ROM

  • MicroSolutions backpack PD/CD

  • MicroSolutions backpack 硬碟驅動器

  • MicroSolutions backpack 8000t 磁帶驅動器

  • SyQuest EZ-135, EZ-230 & SparQ 驅動器

  • Avatar Shark

  • Imation Superdisk LS-120

  • Maxell Superdisk LS-120

  • FreeCom Power CD

  • Hewlett-Packard 5GB 和 8GB 磁帶驅動器

  • Hewlett-Packard 7100 和 7200 CD-RW 驅動器

以及市場上大多數克隆產品和無名產品。

為了支援如此廣泛的裝置,pata_parport 實際上分為兩部分。其中一個基礎的 pata_parport 模組,它提供了一個介面給核心 libata 子系統、登錄檔以及一些訪問並行埠的常用方法。

第二部分是為每個並行埠 IDE 介面卡晶片提供的一組低階協議驅動程式。感謝來自世界各地 Linux 使用者的關注和鼓勵,幾乎所有已知的介面卡協議都得到了支援。

aten

ATEN EH-100

(香港)

bpck

Microsolutions backpack

(美國)

comm

DataStor (舊式) “commuter” 介面卡

(臺灣)

dstr

DataStor EP-2000

(臺灣)

epat

Shuttle EPAT

(英國)

epia

Shuttle EPIA

(英國)

fit2

FIT TD-2000

(美國)

fit3

FIT TD-3000

(美國)

friq

Freecom IQ 資料線

(德國)

frpw

Freecom Power

(德國)

kbic

KingByte KBIC-951A 和 KBIC-971A

(臺灣)

ktti

KT Technology PHd 介面卡

(新加坡)

on20

OnSpec 90c20

(美國)

on26

OnSpec 90c26

(美國)

2. 使用 pata_parport 子系統

在配置 Linux 核心時,您可以選擇將 pata_parport 驅動程式內建到核心中,或者將其構建為模組。

無論哪種情況,您都需要選擇“並行埠 IDE 裝置支援”和至少一種並行埠通訊協議。如果您不知道您的驅動器中使用了哪種並行埠介面卡,可以首先檢查 DOS 安裝軟盤上的檔名和任何文字檔案。或者,您可以檢視介面卡晶片本身的標記。這通常足以識別正確的裝置。

您可以選擇所有協議模組,並讓 pata_parport 子系統為您嘗試所有模組。

對於上面列出的“品牌”產品,以下是您將使用的協議和高階驅動程式:

製造商

型號

協議

MicroSolutions

CD-ROM

bpck

MicroSolutions

PD 驅動器

bpck

MicroSolutions

硬碟驅動器

bpck

MicroSolutions

8000t 磁帶

bpck

SyQuest

EZ, SparQ

epat

Imation

Superdisk

epat

Maxell

Superdisk

friq

Avatar

Shark

epat

FreeCom

CD-ROM

frpw

Hewlett-Packard

5GB 磁帶

epat

Hewlett-Packard

7200e (CD)

epat

Hewlett-Packard

7200e (CD-R)

epat

除非使用 probe=0 引數,否則所有並行埠和所有協議驅動程式都會自動探測。因此,只需“modprobe epat”即可使 Imation SuperDisk 驅動器工作。

手動建立裝置

# echo "port protocol mode unit delay" >/sys/bus/pata_parport/new_device

其中

並行埠名稱(或“auto”表示所有並行埠)

協議

協議名稱(或“auto”表示所有協議)

模式

模式號(協議特定)或 -1 用於探測

單元

單元號(僅適用於 backpack,見下文)

延遲

I/O 延遲(參見下面的故障排除部分)

如果您正在使用 MicroSolutions backpack 裝置,您還需要知道每個驅動器的單元 ID 號。這通常是驅動器序列號的最後兩位數字(但請閱讀 MicroSolutions 關於此的文件)。

如果您省略末尾的引數,將使用預設值,例如:

使用所有協議探測所有並行埠

# echo auto >/sys/bus/pata_parport/new_device

使用協議 epat 和模式 4 (EPP-16) 探測 parport0

# echo "parport0 epat 4" >/sys/bus/pata_parport/new_device

使用所有協議探測 parport0

# echo "parport0 auto" >/sys/bus/pata_parport/new_device

使用協議 epat 探測所有並行埠

# echo "auto epat" >/sys/bus/pata_parport/new_device

刪除裝置

# echo pata_parport.0 >/sys/bus/pata_parport/delete_device

3. 故障排除

3.1 如果可能,請使用 EPP 模式

人們在使用 pata_parport 驅動程式時報告的最常見問題是關於並行埠的 CMOS 設定。目前,沒有任何協議模組支援 ECP 模式或任何 ECP 組合模式。如果可以,請使用您的 CMOS 設定程式將並行埠設定為 EPP 模式。

3.2 檢查埠延遲

某些並行埠無法以全速可靠地傳輸資料。為了彌補錯誤,協議模組在每次訪問 I/O 埠之間引入了“埠延遲”。每個協議都為此延遲設定了一個預設值。在大多數情況下,使用者可以覆蓋預設值並將其設定為 0,從而實現更高的傳輸速率。在某些罕見情況下(特別是使用較舊的 486 系統時),預設延遲不夠長。如果您遇到資料傳輸損壞或意外故障,您可能希望增加埠延遲。

3.3 某些驅動器需要印表機復位

市場上似乎有一些“無名”外部驅動器並非總能正確啟動。我們注意到一些基於 OnSpec 和較舊 Freecom 介面卡的驅動器存在此問題。在這些罕見情況下,通常可以透過在並行埠上執行“印表機復位”來重新初始化介面卡。由於復位操作在多裝置環境中可能具有破壞性,pata_parport 驅動程式不會自動執行此操作。但是,您可以透過以下方式強制進行印表機復位:

insmod lp reset=1
rmmod lp

如果您遇到這些邊緣情況之一,您應該將您的 pata_parport 驅動程式構建為模組,並在載入 pata_parport 驅動程式之前安排進行印表機復位。