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 驱动程序之前安排进行打印机复位。