Zip Drive Mini-HOWTO <author> 作者:Kyle Dansie <tt><htmlurl url="mailto:dansie@ibm.net" name="dansie@ibm.net"></tt><newline> 译者:杨尚峰 <tt><htmlurl url="mailto:storm@chempro.che.ntu.edu.tw" name="storm@chempro.che.ntu.edu.tw"></tt> <date>v2.4, 10 January 1999 翻译日期:8 June 1999 <abstract> 这份文件提供你一个在 Linux 上设定与使用 Iomega ZIP 磁碟机的快速指引。 </abstract> <toc> <!-- Begin the document --> <sect>简介 <p> Iomega ZIP 磁碟机是一种很受欢迎的抽取式磁碟机。ZIP 磁碟机有很多不同的版本: <itemize> <item> 并列埠(Parallel Port) <item> SCSI <item> IDE - ATAPI <item> Plus </itemize> 其中,最受欢迎的似乎是并列埠的版本,主要是因为并列埠版本的机器上市已有一段不短的时间,并且价格低廉。 SCSI 版本的机器虽然也上市了一段时间了,但是因为需要有 SCSI 配接卡,而 SCSI 卡并不是人人都有的,因此,并没有如并列埠版本般流行。 ATAPI 版本的机器现在则似乎越来越常见了。 Plus 是一个较新的 ZIP 磁碟机版本,它具有自动侦测磁碟机是连接在并列埠或者 SCSI 介面的能力。 本文件主要会将焦点放在并列埠的版本上,然而也会提供一些其他版本机器的提示。 <p> 本文件包含了一些其他人所收集及发表的资讯,尤其是: <itemize> <item> Grant Guenther, grant@torque.net <item> Scot Wilcoxon, sewilco@fielday.mn.org <item> Joe Mack, mack@ncifcrf.gov <item> Byron Jeff, byron@cc.gatech.edu </itemize> 我非常感谢他们的重要贡献以及指正我所犯的错误。 特别感谢完成 0.26 版的 ppa 驱动程式以及这个 HOWTO 的原始版本作者 Grant Guenther 。 如果发现本文件有任何错误或疏失,请让我知道: <htmlurl url="mailto:dansie@ibm.net" name="dansie@ibm.net"> 如果有任何翻译上的错误或疏失,也请让译者知道: <htmlurl url="mailto:storm@chempro.che.ntu.edu.tw" name="storm@chempro.che.ntu.edu.tw"> <sect1> 本文件的发源地 <p> 本文件的最新原文版本可以在这里取得: <url url="http://www.njtcom.com/dansie/zip-drive.html"> <sect>快速上手指引 <p> 现在,你买了一台新的 ZIP 磁碟机,而你想要使用它。 有些 Linux 的发行版本(Distribution)已经建好了 ppa 模组。 你可以试著以 insmod ppa 指令来载入 ppa 模组以使用 ZIP 磁碟机。(请确定你有把 ZIP 磁碟机安装妥当,并且在磁碟机内插有磁片。) 如果发现系统中没有 ppa 模组,那麽你必须要调整核心组态设定。 我的机器上有两个并列埠,一个接 ZIP 磁碟机,而另一个接印表机。 这样可以免去切换与插拔电缆线的麻烦。 设定系统核心(kernel)组态: <itemize> <item> 切换路径至 /usr/src/linux <item> make xconfig <item> 选择 scsi support = Y <item> 选择 scsi disk support = Y <item> 选择 Iomega zip support as a module <item> 选择 printer support as a module <item> 结束并储存设定 <item> make dep <item> make clean <item> make zImage 或 zlilo 或 zdisk <item> make modules <item> make modules_install </itemize> 接下来,要使用 ppa 驱动程式: <itemize> <item> 载入 ppa 模组: <tt>insmod ppa</tt> <item> 建立一个挂载点(mounting point): <tt>mkdir /zip</tt> <item> 插入一片已经以 Windows 档案系统格式格式化好的 ZIP 磁片到 ZIP 磁碟机中。 <item> 将 ZIP 磁片挂载(mount)起来: <tt>mount -t vfat /dev/sda4 /zip</tt> <item> 使用任何标准的档案指令,例如 <tt> l /zip, ls /zip, df, cp,</tt> <item> 当你工作完成以後: <tt> umount /zip </tt> </itemize> 如果你在上面的操作步骤中遇到任何问题,请参考接下来的各章节以获得更详细的说明。 <sect> 建立一个能使用 ZIP 磁碟机的核心 <p> 要在 Linux 下使用 ZIP 磁碟机,你必须要有一个支援 SCSI 装置,支援 SCSI 磁碟,以及支援你所用的主配接器(Host Adapter)的核心。 如果你对於如何建立核心并不熟悉,你可以由 <url url="http://metalab.unc.edu/mdw/HOWTO/Kernel-HOWTO.html" name="Linux Kernel HOWTO"> 获得相关资讯<tt><bf>[译者注]</bf></tt>。 <bf><tt>[译者注] 中文化的 Linux Kernel HOWTO 可以在 <url url="http://www.linux.org.tw/CLDP/Kernel-HOWTO.html" name="CLDP Linux Kernel HOWTO"> 中找到。</tt></bf> 建立核心的第一步是设定核心组态。下面会告诉你哪些核心设定选项必须要选定。 首先, <tt> cd /usr/src/linux</tt>。有许多方法可以进行组态设定。 在 X window 下我用 <bf>make xconfig</bf>。 此外,在命令列下,还可以用 <tt>make menuconfig</tt> 或 <tt>make config</tt>。然而,最简单的方法是用 xconfig。 在 <bf>SCSI Support</bf> 组态群组中,选定 <bf>SCSI support = Y</bf>。另外也要选定 <bf>SCSI disk support = Y</bf>。 在 <bf>SCSI low-level drivers</bf> 组态群组中,你要选定 <bf>IOMEGA Parallel Port ZIP drive SCSI support = M</bf>。 "M" 代表设定成模组。 在 <bf>Character Devices</bf> 组态群组中,找到并选定 <bf>Parallell Printer support = M</bf>。 如果你对上面的步骤感到任何一点点的不确定,那麽在编译核心时,请使用 <tt>make zdisk</tt> 的编译方式。 这样会建立并安装核心到软碟机上。如此一来,如果你因为某些原因而搞砸了,在硬碟上你仍然还有一个可以正常开机的系统。 现在,以下列的步骤建立核心: <itemize> <item> make dep <item> make clean <item> make zImage 或 zlilo 或 zdisk <item> make modules <item> make mdoules_install </itemize> <bf>[小提示]</bf> 如果你想记录在 make zImage 过程中的萤幕输出的话,你可以用下列指令: <tscreen><verb> make zImage 2>&1 | tee zImage.out </verb></tscreen> 十分建议你将编译过程记录下来,尤其是当编译过程有发生错误,或者核心组态设定有错的时候, 你可以在记录档中找到相关的错误讯息。这样会方便你在向别人求助时能提供相关讯息。 此外,你必须将模组载入。在我的系统上,我只是在 boot.local 中加了下面几行: <itemize> <item> insmod ppa <item> insmod lp </itemize> 我的系统是 SuSE 5.3 ,而这个档案在 /etc/rc.d 下。 这个档案的名称和路径在每个发行版本中都会略有不同,但总会有一个这样的档案,用来纪录一些你自己希望在系统启动时,自动执行的命令。 你应该找到并使用你所安装的发行版本中相对应的档案<tt><bf>[译者注]</bf></tt>。 <bf><tt>[译者注] 在 RedHat 和 Slackware 这两个发行版本中,这个档案是 /etc/rc.d/rc.local。</tt></bf> 现在,<tt>关闭系统并重新启动</tt>。 你也可以将全部或者部分的 SCSI 装置设定建成模组。 如果你这样做,在你试著使用 ZIP 磁碟机前,记得要先确定载入 scsi.o ,接下来载入 sd.o ,最後载入你的主配接器的模组。 <sect1> SCSI 版本 <p> 如果你已经有一台 SCSI 硬碟,而且你将 ZIP 磁碟机接在同一个 SCSI 控制器上,那麽你不需要变更核心的组态设定;否则,你很可能必须建立一个新的核心。 如果你在建立一个可以使用 SCSI ZIP 磁碟机的核心,你应该要开启支援 SCSI 以及 SCSI 磁碟机的设定选项。 此外,你也必须选择一个支援你所用的 SCSI 配接卡的驱动程式。如果你有 ZIP Zoom SCSI 配接卡,请选择 aha152x 这个驱动程式。 请务必读过在 SCSI HOWTO 文件中,有关你所使用的 SCSI 配接卡的相关资讯,并且务必读过在 Linux 核心原始程式码目录下,drivers/scsi 目录下所有的 README 档。 请特别注意是否有必须传给核心以驱动你的 SCSI 配接卡的相关核心启动参数。 例如,如果你是用 ZIP Zoom 介面卡,你将必须在开机出现 boot: 提示符号时,输入类似 <tscreen><verb> aha152x=0x340,11,7,1 </verb></tscreen> 的核心参数(或者将这段参数加在你的 /etc/lilo.conf 中的 append 命令中)。 这列参数告诉驱动程式有关你的 ZIP Zoom 卡的输出入埠位址以及中断(IRQ)- 务必确定所用的数值与你卡上的硬体跳线器(Jumper)设定相符。 你也该看看 Paul Gortmaker 的 <url url="http://metalab.unc.edu/mdw/HOWTO/BootPrompt-HOWTO.html" name="BootPrompt HOWTO"> 以获得更多有关如何设定与使用 LILO 或 LOADLIN<tt><bf>[译者注]</bf></tt>。 <bf><tt>[译者注] 中文化的 BootPrompt HOWTO 可以在 <url url="http://www.linux.org.tw/CLDP/BootPrompt-HOWTO.html" name="CLDP BootPrompt HOWTO"> 中找到。</tt></bf> <sect>ZIP 磁碟机 <p> Iomega ZIP 100 磁碟机最少有五种或六种不同版本。 Iomega 网站上有关这些磁碟机的部分在 <url url="http://www.iomega.com/zip/">。 所有的机种都能使用容量为 100 MB 的特殊 3.5" 磁片匣。 这种磁片实际上有 96 个磁柱(Cylinder),每个磁柱有 2048 个磁区,每个磁区有 512 位元组。这种磁片的实际容量通常为 96 MB。 外接式的机种有: <itemize> <item> 并列埠 <item> SCSI <item> Plus </itemize> 内接式的机种有: <itemize> <item> SCSI <item> IDE <item> ATAPI </itemize> 内接式的机种能够装在电脑机壳的 3.5 或 5.25 □磁碟机槽。 外接式的机种则是装在一个蓝色小塑胶机壳中<tt><bf>[译者注]</bf></tt>,并由外部的电源供应器供应电源。 <bf><tt>[译者注] 早期曾有一段时间,EPSON 有代理外接式并列埠 ZIP 磁碟机,EPSON 所代理的机器的机壳颜色是白色的。</tt></bf> 不管是哪一种机型,每部 ZIP 磁碟机的前面板都会有一个按钮。那是退片钮。 当 ZIP 磁碟机被使用时,Linux 会锁住磁片,然而若在此时按下了退片钮,ZIP 磁碟机会『记起来』退片要求,并且在系统解除锁定磁片後,立刻将磁片退出来。 <sect1> 并列埠版本的 ZIP 100 磁碟机 <p> 这个版本的 ZIP 磁碟机相关资讯可以在这里找到:<url url="http://www.iomega.com/zip/products/parallel_port.html"> Linux 的 ZIP 驱动程式有几个不同的版本。在 2.0.x 的核心附的是 0.26 版的 ppa.c 驱动程式。 如果你的核心版本低於 2.0.35,那麽你有一个<bf>老旧版本的</bf>驱动程式。 到 <url url="http://www.torque.net/~campbell/" name="David Campbell's page"> 来找找比较新的版本。在写这篇 mini-Howto 时,最新的版本是 1.42 版<tt><bf>[译者注]</bf></tt>。 <bf><tt>[译者注] 在我翻译这篇 mini-Howto 时(May 1999),最新的版本仍是 1.42 版。</tt></bf> 1.4x 版驱动程式的自动硬体组态侦测功能实在太棒了。 你不需要告诉驱动程式你的并列埠的基底记忆体位置,驱动程式会自动侦测并列埠的标准基底位址,如果侦测到 ZIP 磁碟机的话,还会自动连接磁碟机。 最常遇到的错误是在载入 ppa 驱动程式前,先载入了 lp 印表机模组。ppa 驱动程式必须在 lp 模组之前载入。 ppa 驱动程式之所以必须先载入的原因是因为 lp 模组会占用 ZIP 磁碟机所用的输出入埠。 另外也请确定所有电缆都有稳固的连接妥当。 如果你一切都做对了 :) 你会在开机时看到类似这样的讯息: <verb> VFS: Mounted root (ext2 filesystem) readonly. Adding Swap: 102528k swap-space (priority -1) ppa: Version 1.42 ppa: Probing port 03bc ppa: Probing port 0378 ppa: SPP port present ppa: EPP 1.9 with hardware direction protocol ppa: Found device at ID 6, Attempting to use EPP 32 bit ppa: Communication established with ID 6 using EPP 32 bit ppa: Probing port 0278 ppa: SPP port present scsi0 : Iomega parport ZIP drive scsi : 1 host. Vendor: IOMEGA Model: ZIP 100 Rev: D.09 Type: Direct-Access ANSI SCSI revision: 02 Detected scsi removable disk sda at scsi0, channel 0, id 6, lun 0 SCSI device sda: hdwr sector= 512 bytes. Sectors= 196608 [96 MB] [0.1 GB] sda: Write Protect is off sda: sda4 lp2 at 0x0278, (polling) </verb> 你能够用 dmesg | more 指令来查看开机讯息。 你也可以用 dmesg > dmesg.txt 指令将开记讯息存到档案中。 当你试著找出安装上的错误时,这个档常常十分有用。 此外,也请看看 "<ref id="sec-more-info" name="取得更多最新资讯">" 这个章节。 <sect1> SCSI 外接式版本 <p> Iomega 网站上有关这种磁碟机的部分在 <url url="http://www.iomega.com/zip/products/scsi.html">。 SCSI 介面的外接式 ZIP 磁碟机有两个 DB25F 接头及两个设定开关。 其中一个开关是用来设定磁碟机的标的位址<tt><bf>[译者注]</bf></tt>。能够选择的值限制在 5 或 6。 另一个开关是当 ZIP 磁碟机是 SCSI 电缆上串接的最後一个装置时,用来开启内部终端电阻用的。 25 针的 SCSI 接头是采用类似麦金塔(Macintosh)电脑所用的配线方式。 购买磁碟机时,会随货附一条麦金塔的 SCSI 电缆线,然而,若你的 SCSI 配接卡是用 Centronics 接头或者高密度接头的话,标准 SCSI 电缆线以及转换接头应该很容易取得。 <bf><tt>[译者注] 原文是 target address,由语意判断,应该是指 SCSI ID。</tt></bf> 我没看过内接式的 SCSI ZIP 磁碟机,但我猜应该也有一个 50 针 DIP SCSI 接头以及两个一样的设定开关。 请确定你所设定的标的位址没有和在同一个汇流排上的其他 SCSI 装置相冲突。 也请确定在 SCSI 电缆线上穿接的最後一个装置有启动内部终端电阻,或者装上一个外部终端电阻。 如果你有内接式的 SCSI 硬碟或光碟机,并且你将你的 ZIP 磁碟机接在同一个 SCSI 配接卡上,你应该检查看看是否有必须要移除的终端电阻。 只有 SCSI 汇流排上最末两端必须接上终端电阻。 如果你的 SCSI 汇流排上同时有内接式以及外接式的 SCSI 装置,那麽最後的一个内接以及外接装置上必须接上终端电阻,但是 SCSI 配接卡本身不需要终端电阻。 请确定所有的电缆线都有紧紧地接好。 核心的组态设定和设定内接式版本时一样。请参考下面 SCSI 内接式版本章节中的设定□例。 <sect2> ZIP ZOOM 主配接卡 <p> ZIP Zoom 是 Iomega 卖的 SCSI 主配接卡。 这块卡的设计实际上是基於 <bf>Adaptec AHA1520</bf> 系列配接卡。 这块卡上有一个与随 ZIP 磁碟机附赠的电缆线相容的,Macintosh 用的 DB25F 外接接头。 支援这块配接卡的 Linux 驱动程式是 <bf>aha152x</bf>。 <sect1> SCSI 内接式版本 <p> 硬体的安装请见『安装与参考指引』。请注意所使用的 SCSI ID,IRQ 及 I/O 埠位址(稍後你将会需要这些资讯)。 <bf>请小心</bf> ZIP Zoom 这块卡在硬体线路上直接设定了使用 SCSI ID 7。 在接下来的命令列中所提到的 SCSI ID 是指 SCSI 卡的 ID ,而不是磁碟机的。 卡和磁碟机必须使用不同的 SCSI ID。例如,如果卡的 ID 是 7,则磁碟机使用 5 或其他的 ID。 在开启了支援 『SCSI』,『SCSI disk』及『AHA152X/2825』等的组态设定後,重新编译核心,并请安装新的核心 :-( 请决定适合你的系统的核心启动参数: <tt> aha152x=[I/O Port][,IRQ][,SCSI ID][,RECONNECT][,PARITY] </tt> 例如: <tt> aha152x=0x140,10,7,1 </tt> 如果你是使用 LILO,将核心启动参数加到 lilo.conf 的 append 命令中。 (例如将 append = "aha152x=0x140,10,7,1" 加到 lilo.conf 中) 如果你是用 LOADLIN,那麽将你的核心启动参数加到你用来启动 loadin 的命令中。 <verb>(例如 loadlin c:\vmlinuz root=/dev/hda3 aha152x=0x140,10,5,1 ro)</verb> <sect1> ZIP Plus - IMM 驱动程式 <p> 这是一种<bf>比较新</bf>的外接式 ZIP 磁碟机。 <bf>Zip Plus</bf> 不是用 ppa 驱动程式, 而是使用 <bf>imm</bf> 驱动程式。 <htmlurl url="mailto:Philippe_Andersson@ste.scitex.com" name="Philippe Andersson"> 提供了这段有关 ZIP Plus 的 imm 驱动程式的说明。谢谢 Philippe。 首先,重建一个包含下列组态的核心: <itemize> <item>modules support <item>SCSI support <item>SCSI Disk support <item>lp 建成模组 (如果你需要的话) </itemize> 你应该有注意到我们并没有选择任何低阶的 SCSI 驱动程式。这没关系 -- 我们将在稍後另外建立它。 接下来,你要到 Dave Campbell 的网站取得驱动程式的原始程式码 (<url url="http://www.torque.net/~campbell/imm.tar.gz" name="http://www.torque.net/~campbell/imm.tar.gz">)。0.18 版是在写这份文件时(Aug. '98)的最新版本<tt><bf>[译者注]</bf></tt>。 将档案解压缩到某目录下(例如解到 <tt>/usr/src</tt> 下面)。接下来执行 <tt>make</tt>。 你就会得到 imm 驱动程式模组(<tt>imm.o</tt>)。将该模组复制到 <verb>/lib/modules/$(uname -r)/scsi</verb> 下。 <bf><tt>[译者注] 在我翻译这篇 mini-Howto 时(Jun. 1999),最新的版本仍是 0.18 版。</tt></bf> 如果你已经载入 lp 模组(可以使用 <bf>lsmod</bf>(1) 命令检查),先卸除 lp 模组(<tt>rmmod lp</tt>),然後载入 <tt>imm.o</tt> 模组(<tt>insmod imm</tt>)。 到这里,你已经完成了基本的设定。 如果你在载入 imm 模组时, ZIP 磁碟机并没有连接好或者没有打开电源,你会看到 "init_module: Device or resource busy" 的错误讯息,而无法载入模组。(附带一提,当你要连接 ZIP 磁碟机到电脑主机时,似乎不需要将电脑关机 -- 只要确定 imm 模组没有载入,而且磁碟机的电源是关的,接著只要将电缆线插好,打开电源,并载入模组就可以了。) 如果 ZIP 磁碟机已经接好而且也打开电源了,但是没有插磁片在里面,那麽 imm 模组还是会载入,但是你会看到无法读取磁碟分割表的错误讯息。 这没关系,因为当你在磁碟机内插入磁片,系统会自动读取分割表。 若你在载入模组时,ZIP 磁碟机内有插磁片,那你会看到该磁片的分割区列表以及写入保护状态等等的完整资讯。 下面是一个载入模组时所看到的磁片资讯的例子: <verb> vger:~# insmod imm imm: Version 0.18 imm: Probing port 03bc imm: Probing port 0378 imm: SPP port present imm: ECP with a 16 byte FIFO present imm: PS/2 bidirectional port present imm: Passed Intel bug check. imm: Probing port 0278 scsi0 : Iomega ZIP Plus drive scsi : 1 host. Vendor: IOMEGA Model: ZIP 100 PLUS Rev: J.66 Type: Direct-Access ANSI SCSI revision: 02 Detected scsi removable disk sda at scsi0, channel 0, id 6, lun 0 SCSI device sda: hdwr sector= 512 bytes. Sectors= 196608 [96 MB] [0.1 GB] sda: Write Protect is off sda: sda1 vger:~# </verb> 最後值得一提的是,当磁片被挂载以後,这版的驱动程式会将磁片锁住。 如果在这时按下退片钮,磁片并不会退出来,但是磁碟机会『记得』你的退片要求,并在你卸载(umount)磁片後立刻退片。 <sect1> ATAPI 版本 <p> 有关这种机型的资讯可以在这里找到:<url url="http://www.iomega.com/zip/products/insider.html"> 之前有一小段时间还有一种 IDE 版本的磁碟机。不过我想现在绝大部分都已经被 ATAPI 版本的机器所取代。 Donald Stidwell 提供我下面这些有关 ATAPI 版本的说明。谢谢 Don。 我有一台 ATAPI ZIP 磁碟机,而且在 2.0.32 及 2.0.33 版的核心下都能正常运作。 我在 RH 5.0 及 OpenLinux 1.2 (我现在在使用的发行版本)下都测试过<tt><bf>[译者注]</bf></tt>。 我所需要做的只是开启 <bf>ATAPI floppy support</bf> 的核心组态设定。OpenLinux 的核心并没有内定开启这个功能。 <bf><tt>[译者注] 我本身在 Slackware 3.3/3.6 以及 RedHat 5.2 下都能正常使用 ATAPI ZIP,测试过的核心版本有 2.0.35, 2.0.36, 2.2.1, 2.2.2 等。</tt></bf> 不需要其他额外的驱动程式。ZIP 磁片会以延伸分割区(Extended Partition)的形式挂载在第 4 个分割区。 例如,我的状况是挂载 HDB4。我以 noauto 的挂载选项将 ZIP 磁片挂载於 /mnt/zip,但是我想用自动挂载应该也不会有问题。 我想唯一可能的问题是退片。我总是在要退片前,先卸载磁片。 在 1998 年五月号的 Linux Gazette 中,有对於在 Linux 下安装 ATAPI ZIP 的更详细介绍。 请参考 2 cent tip 的部分。 <url url="http://www.linuxgazette.com/issue28/lg_tips28.html#atapi"> <sect1> IDE 版本 <p> 我没用过 IDE 版本的 ZIP。Eric Backus 提供下面这些说明。谢谢 Eric。 我有一台 IDE ZIP 磁碟机,是在一年前随著我的 Gateway 2000 电脑一起买来的。 我想这种机型绝大部分都是在 ATAPI 版本的 ZIP 发行前,由这类的大型 OEM 公司随货卖出的。 好消息是:要支援这种磁碟机,不需要额外的核心模组或者核心组态变更。 这种机型对核心而言,就跟 IDE 硬碟一样。 我能在 2.0.31 及 2.0.32 版的核心上直接使用。 而坏消息是:因为不是使用 ATAPI 协定,所以你无法启动使用 SCSI 转 ATAPI 的核心组态, 也就是说,你不能用 mtools 来开启磁片的防写功能以及退片<tt><bf>[译者注]</bf></tt>。 <bf><tt>[译者注] 请参考 mzip(1) 指令以及 mtools 的 man page 说明。</tt></bf> <sect1> USB 版本 <p> 这台磁碟机的资料可以在这里找到:<url url="http://www.iomega.com/zip/products/usb.html"> 这种磁碟机看起来很酷,而且 USB 介面也看起来很棒。 唯一的问题是目前 Linux 对 USB 介面的驱动程式还在发展中。 因此,就目前而言,这种 ZIP 磁碟机无法在 Linux 下使用。 看看这个网站以取得最新资讯: <url url="http://peloncho.fis.ucm.es/~inaky/USB/news.html"> <sect1> ZIP 250 版本 <p> 这种机型是 1999 年 1 月推出的新机型。我买了一台,而且在 Linux 下使用非常良好。 所要做的只有使用由 <url url="http://www.torque.net/~campbell/imm.tar.gz"> 取得的 imm 驱动程式。 设定上和 ZIP Plus 相同。简单的说,先取得驱动程式原始码,解压缩,然後执行 make。 接著复制 imm.o 到存放核心模组的目录下,例如 /lib/modules/2.0.35/scsi(2.0.35 是你的核心版本号码)。 如果你不确定你的核心版本号码是多少,可以用 uname -r 指令查询。 <sect> 使用 ZIP 磁碟机 <p> 如果你已经建立好所有需要的元件,那麽核心应该能在开机时辨识出你的配接卡以及磁碟机。 如果你是用可载入式模组的方式建立驱动程式的话,接下来的讨论仅适用於模组以载入後的情形。 在大部分情形下,SCSI 和 并列埠版本的磁碟机表现相同,除了并列埠版本的比较慢以外。 <sect1> Fdisk, mke2fs, mount, 等等 <p> 一旦你知道你的 ZIP 磁碟机所属的磁碟装置名称,你就已经准备就绪。 你能够使用 Linux 的磁碟管理命令来对该磁碟装置进行操作。 <tt>fdisk</tt>(或者 <tt>cfdisk</tt>)是用来规划磁碟的分割表。 <tt>mke2fs</tt> 能用来将分割区格式化(Format)成 ext2 档案系统 -- 这是 Linux 下最常使用的档案系统。 <tt>mount</tt> 则是用来将格式化好的分割区连接到你的目录体系中。 如果你对这些工具并不熟悉,你应该研读一下这些工具的手册。 请小心注意 <tt>fdisk</tt> 程式现在有许多十分不一样的版本 - 请务必小心。 我将陈述两个常见的案例。 <sect1> 使用一片已经用 DOS 格式化好的磁片 <p> 如果你有一张原本由 Iomega 的工具程式格式化成 DOS 档案结构的 ZIP 磁片,那麽扫瞄分割表时应该会发现磁片上有一个分割区 <tt>/dev/sda4</tt>。 你应该先建立一个用来挂载 ZIP 磁片的目录,例如 <tt>/zip</tt>,然後以 MS-DOS 档案系统格式将磁片挂载起来: <tscreen><verb> mkdir /zip mount -t vfat /dev/sda4 /zip </verb></tscreen> 你也可以用 msdos 来取代上面的 vfat。两者的差别在於, vfat 支援长档名,而 msdos 不支援。 现在,磁片上的档案应该会出现在 /zip 目录下。 当磁片被挂载了,你将无法由磁碟机中将磁片退出。 当你完成了对磁片的存取,你可以卸载磁片来切断磁片和目录体系的连接,并取出磁片: <tscreen><verb> umount /zip </verb></tscreen> 一旦你已经建好 /zip 这个挂载点 - 你不需要再建立一次。 所以稍後你能再将另一片磁片挂载在那儿。 <sect1> 重新将磁片格式化成 Linux 格式的磁片 <p> 如果你想要消去 ZIP 磁片上原有的档案系统,并建立 Linux 的档案系统,你应该使用 fdisk 来重新规划整片磁片的分割区: <tscreen><verb> fdisk /dev/sda </verb></tscreen> 并且删除所有已存在的分割区(用 fdisk 的 <tt>d</tt> 命令)。 接著,用 <tt>n</tt> 命令建立一个新的分割区,选择主分割区号码 1 ,用 <tt>w</tt> 命令将分割表写到磁片上,然後用 <tt>q</tt> 命令离开 fdisk 程式。 接著格式化分割区: <tscreen><verb> mke2fs /dev/sda1 </verb></tscreen> (数字 1 就是你在 <tt>fdisk</tt> 中给定该分割区的分割区编号)。 现在,你可以将磁片挂载起来: <tscreen><verb> mount -t ext2 /dev/sda1 /zip </verb></tscreen> (再次使用我们之前建立的挂载点)。 <sect1> fstab 档 <p> /etc/fstab 能让你对 mount 命令进行设定。 我希望系统上登录的任何使用者都能挂载及写入 ZIP 磁片,因此我在 fstab 的档案结尾加了两列像这样的内容: <verb> /dev/sda1 /zip ext2 noauto,rw,user,nosuid,sync /dev/sda4 /zipdos vfat noauto,rw,user,nosuid,sync,mode=0777 </verb> 这里假设你有一个 /zip 目录和一个 /zipdos 目录。 如果你要所有使用者都能够读写 ZIP 磁片,请确定你设定了适当的存取权限,例如 <bf>chmod 666 /zip</bf>。 你必须以 root 的身份执行 chmod 命令。 上面 fstab 的内容也假设了你的 DOS 格式 ZIP 磁片的分割区编号是 4 (在我的系统是 sda4),以及 ext2(Linux)格式的磁片分割区编号是 1(sda1)。 你可以用 <bf>man mount</bf> 找到更多 fstab 档案的设定选项资料。 如果你在 fstab 档案中加入上面两列设定,那麽你可以用 <bf> mount /zipdos </bf> 挂载 DOS 格式磁片。 如果你要挂载 Linux ext2 格式的磁片,那麽命令是 <bf> mount /zip </bf>。 <sect1> ZIP Tools 工具磁片 <p> 如果你想使用随 ZIP 磁碟机附赠的磁片,还有一点额外的工作要做。 这些磁片在出货时,软体控制的写入保护功能是被开启的。 大部分的人在要在 Linux 下使用 ZIP 磁片时,会先在 DOS 下将写入保护功能关闭。 Linux 无法存取被写入保护锁定的磁片,所以必须先用 Iomega 的工具程式来解除锁定。 相信在 Linux 下,能用来管理磁片的写入保护以及其他功能的程式,将在不久的将来发展完成<tt><bf>[译者注]</bf></tt>。 <bf><tt>[译者注] 现在已经有一些工具程式可以用来控制 ZIP 磁片的各种状态,计有 mtools 中的 mzip(1) ,以及现在由 Mirko Kraft 所发展维护的 ziptool 等等。</tt></bf> <sect> 性能表现 <label id="sec-performance"> <p> 标准 2.0.x 版的核心原始程式中所附的 ppa.c 驱动程式码是 0.26 版的。 这是一个非常可靠的简单程式,因此被大量而广泛的使用。 这个程式唯一的缺点是速度不是很快。 在我自己的机器上,我是用 2.0.30 版的核心,而且有两个并列埠。 这也是一台低价位的机器:pentium 133 - 16 MB 记忆体,5 GB Maxter EIDE 硬碟。 机器花了我 500 元美金,而 ZIP 磁碟机则花了 250 元。 我用的都是廉价品,但那有什麽关系。 我将 ZIP 磁碟机装在第二个并列埠,而将印表机装在第一个。 第二个并列埠是一张旧式的并列埠扩充卡,没有 EPP 模式。 因此 ZIP 磁碟机只能在 4 位元标准并列埠模式下运作。 测试性能表现的基准方法是,我由硬碟复制一个 Netscape 的 tar 压缩档到 ZIP 磁碟机。 这个档大约是 10.6 MB,所花的时间是 7 分 15 秒。 而由 ZIP 磁碟机将同一个档案复制到硬碟上,则大约花了 7 分钟。 接著我做了两项改变。首先,我将 ZIP磁碟机接到第一个并列埠,并开启 BIOS 中的 EPP 模式选项。 另外,我将印表机接到第二个并列埠。 其次,我由 <url url="http://www.torque.net/~campbell/" name="David Campbell 的网页">下载新的 PPA 驱动程式。 我安装驱动程式,并阅读随程式所附的 readme 档。 然後我再次进行相同的测试,复制 Netscape tar 档到 ZIP 上,以及由 ZIP 上复制出来。 由 ZIP 上复制到 C 磁碟花了 1 分 55 秒。而由硬碟复制到 ZIP 磁碟机则花了 1 分钟整。 这相较於使用旧版驱动程式的 7:15 以及 7:00 来说,新版程式的效能大幅提升,远远超越了 0.26 版程式的效能。 这些测试是在 ZIP 磁碟机也使用 vfat 档案系统格式的情况下进行的。 接著,我重新将 ZIP 磁碟机格式化成 ext2 档案系统格式。并再次进行同样的测试。 由 ZIP 磁碟机上复制到硬碟只花了 50 秒。而由硬碟复制到 ZIP 磁碟机则只花了 40 秒。 <bf>性能表现摘要</bf> <p> 在搬移一个 10.6 MB 档案的测试中,在使用 4 位元标准并列埠模式以及 0.26 版 ppa 驱动程式的情况下,速度最慢,时间是 7:00 及 7:15。 在使用新版(1.41 版)驱动程式,EPP 并列埠模式,并使用 ext2 档案系统的情况下,速度最快,时间是 50 秒和 40 秒。 <sect> 常见问答集 <p> 这里是一些我常被问到的问题。请在再次发问前,先找找看这里的答案! <sect1> 我能够将印表机串接在并列埠版本的 ZIP 磁碟机上吗? <p> 可以,但是就目前而言,你不能在同一个并列埠上同时挂载启动 lp 及 ppa 驱动程式模组。 目前正在设计以及开始实做一个资源分享协定,但在 Linux 2.0 释出前不会正式发行<tt><bf>[译者注]</bf></tt>。 <bf><tt>[译者注] 不太清楚原作者所指的 Linux 2.0 是什麽,怀疑指是 Kernel 2.2.0 (2.2.0 版的核心)。</tt></bf> 如果你喜欢冒险,那麽取得并安装 2.1.x 版的核心,你就能使并列埠资源共享。 请参考 <url url="http://www.cyberelk.demon.co.uk/parport.html"> 在 2.0.x 的核心下最简单的解决办法是使用两个不同的并列埠。 我花了 15 美元买了第二个并列埠介面,而且运作得很好。 你可以一个用来接 ZIP 磁碟机,另一个接印表机。 所要做的只有建立一个支援 lp 和 ppa 模组的核心,以及这两个模组。 我用的是比较新(1.41 版)的 ppa 驱动程式,所以我先载入 ppa 模组(insmod ppa)。 ppa 驱动程式会侦测到在第一个并列埠上的 ZIP 磁碟机。 接著我再载入 lp 模组(insmod lp)来驱动第二个并列埠上的印表机。 如果你是用 0.26 版的 ppa 驱动程式,那麽请更新到 1.41 版或更新的版本。 如果你在使用 ppa 驱动程式时遇到任何问题,唯一的解答是请更新 ppa 到更新的版本。 <sect1> 是否有计画在 ppa 中支援 EPP/ECP 模式的并列埠? <p> 0.26 版的程式并不支援 EPP。而 1.41 版则<bf>有</bf>支援 EPP。 这版的程式也比旧版快多了。更详细的资讯请参考"<ref id="sec-performance" name="性能表现">"的部分。 <sect1> 我能够将 Linux 安装在 ZIP 磁碟机上,并由 ZIP 磁碟机上启动执行吗? <p> 已经有人这麽做了。这种安装方式是制作一个急救磁片或者测试安装时的好方法。 <url url="http://metalab.unc.edu/LDP/HOWTO/mini/ZIP-Install.html"><tt><bf>[译者注]</bf></tt> <bf><tt>[译者注] 中文化的 ZIP Install mini-HOWTO 可以在 <url url="http://www.linux.org.tw/CLDP/mini/ZIP-Install.html" name="CLDP ZIP Install mini-HOWTO"> 中找到。</tt></bf> <sect1> 我能用 ZIP 磁碟机开机吗? <p> 这要视你所使用的主配接器种类而定。如果你的主配接器的 BIOS ROM 允许你由 SCSI ID 为 5 或 6 的装置上开机,那麽你就能用 SCSI ZIP 磁碟机开机。 并列埠版本的 ZIP 磁碟机无法用来开机。 如果你的硬碟上有装 DOS,而你想要启动在 ZIP 磁片上的 Linux 系统,那麽你可以用 LOADLIN 。 你必须复制一份核心影像档到 DOS 的硬碟上,而完整的 Linux 系统则需装在 ZIP 磁片上。 请确定你所复制的核心档的相关驱动程式组态设定是对的。 据我所知,目前常见的发行版本中,没有任何一个有提供用来安装於并列埠版本 ZIP 上的可开机安装磁片。 <sect1> 为何 Iomega 使用第 4 个分割区? <p> 这是最常见到的问题,但我想没有人知道确实的答案。 可能是他们头脑不清楚吧?也许没有特别的原因。 <sect1> 我要怎样才能在开机时,自动将磁片挂载起来? <p> 你所要做的只有在你的 <tt>/etc/fstab</tt> 档内加一行设定。 举例来说,如果你开机时总会插一片 DOS 格式的磁片在 ZIP 磁碟机内,那你可以将 <tscreen><verb> /dev/sda4 /zip vfat defaults 0 0 </verb></tscreen> 加到你的 <tt>fstab</tt> 档案中。 随你所使用的发行版本而略有不同,但开机时,通常负责系统初始化的命令稿(Script)会试著在 fstab 内有纪录的分割区上执行 fsck。 请注意,如果开机时你忘了放磁片或者放了错误格式的磁片,这样可能会造成问题。 <sect1> 如果当我开机时没有插磁片在磁碟机内,那麽会怎样呢? <p> 系统核心会试著读取磁片的分割表,但是会作业逾时。 然而,这没什麽好担心的。 一旦当你插了一片磁片到磁碟机内,并且试著进行读写等动作时,核心会重新读取分割表。 提示:当你抽换磁片时,最好能够用 fdisk 检查一下新插入的磁片上的分割表结构。 某些 SCSI 主配接器上的 BIOS 会在系统开机期间试著读取你的磁片上的分割表。 如果你不能将 SCSI 卡的这项功能关掉,那麽你可能会被迫在开机时,必须插一片磁片在磁碟机内。 <sect1> 我能够把并列埠磁碟机当成真实的 SCSI 磁碟机来用吗? <p> PPA-3 并列埠转 SCSI 转接器是被实做成一个 Iomega 称为 VPI0 的 ASIC 单晶片。 这片晶片被内嵌於 ZIP 磁碟机控制卡上。 实际上是有一个 SCSI 汇流排存在,但是不是在能使用的形式下。 虽然我还没比较过这两种卡,逻辑上似乎 VPI0 取代了传统的 SCSI 汇流排外接延伸装置所需要的电子缓冲电路。 <sect1> ppa 驱动程式能用在 Iomega 的并列埠磁带机上吗? <p> 不能。这些磁带机是软碟式磁带机(floppy-tape drive),跟 SCSI 无关。 有些人表示对於应用我的方法,来试著找出传输协定,及发展这些磁带机的驱动程式感到兴趣。 第一步是要先让 DOS 下的驱动程式能在 DOSemu 下使用。 到目前为止,我还没听说有成功的案例。 <sect1> ppa 驱动程式是否能在并列埠版的 SyQuest EZ135 上正常运作? <p> 不能。 EZ135 是一个内建 ShuttlePort 并列埠转 IDE 转换器的 IDE 磁碟机。 然而,这台磁碟机的驱动程式发展也已经有一些成果。到这儿瞧瞧: <url url="http://www.torque.net/linux-pp.html"> <sect> 取得更多最新资讯 <label id="sec-more-info"> <p> 最新版本的并列埠 ZIP 驱动程式(ppa.c)以及关於该驱动程式的技术资讯可以在下面 URL 找到: <url url="http://www.torque.net/~campbell/"> 许多并列埠外接装置驱动程式的资讯可以在下面 URL 找到: <url url="http://www.torque.net/linux-pp.html"> 并列埠共享(Parallel Port sharing)的相关资讯可以在下面 URL 找到: <url url="http://www.cyberelk.demon.co.uk/parport.html"> 由 ZIP 磁碟机安装 Linux(对於没有 CD-ROM 的机器)的相关讯息可以在下面的 mini HOWTO 找到: <url url="http://metalab.unc.edu/mdw/HOWTO/mini/Install-From-ZIP.html"> ziptool 程式的 X 前端介面可以在下面 URL 找到: <url url="http://www.scripps.edu/~jsmith/jazip/"> 关於 LILO 的设定相关资讯可以在下面的 mini HOWTO 中找到: <url url="http://metalab.unc.edu/mdw/HOWTO/mini/LILO.html"> 关於 BootPrompt 的使用资讯可以在下面的 HOWTO 文件中找到: <url url="http://metalab.unc.edu/mdw/HOWTO/BootPrompt-HOWTO.html"> 如果你想要把 Linux 安装在 ZIP 磁碟机上,并且由 ZIP 磁碟机执行 Linux 的话, 下面的 mini HOWTO 文件将提供你相关讯息: <url url="http://metalab.unc.edu/LDP/HOWTO/mini/ZIP-Install.html"> Iomega 的网页在: <url url="http://www.iomega.com/">. 此外,如果你想寻找在 PC 上写并列埠应用程式的相关资讯的话,也许你会想看看下面这个网页: <url url="http://www.lvr.com/parport.htm"> </article>