Next Previous Contents

3. The ZIP drive

There are at least five or six versions of the Iomega ZIP 100 drive. They all accept special cartridges resembling a 3.5" floppy disk that hold 100 megabytes of data. The disks actually hold 96 cylinders of 2048 sectors each holding 512 bytes. This would normally be called 96 Megabytes.

The external drive comes in these types:

The internal drive comes in these types:

The internal versions can be mounted in 3.5 or 5.25 drive slots. The external versions are in a small blue plastic case enclosure, powered by an external wall brick.

All the drives have a large pushbutton on the front of the drive. This is used to eject the disk. Linux locks the door while using the drive, but if the button is pressed while the door is locked, the ZIP drive will remember and eject the disk as soon as the software unlocks it.

3.1 Parallel port version

The parallel port ZIP drive has two DB25 connectors, the male (DB25M) should be connected with the supplied parallel cable to your computer's parallel port. The other (female, DB25F) is intended to support a chained printer. Linux 2.0.x does not currently support simultaneous use of both a ZIP drive and a chained printer. A work- around is possible using loadable modules. There are no configuration switches. This will likely change in future versions. Check the Linux Parallel Port Sharing Project for more information.

The Linux driver comes in a couple of different versions. The 0.26 version of the ppa.c program ships standard with the 2.0.x kernels. Check out

David Campbell's page for the more current version of this program. At the time of this writing the current version is 1.41.

The parallel port ZIP drive is compatible with several types of parallel ports, but currently the 0.26 version of the Linux driver supports only the Standard and bi-directional ports. The newer versions support EPP. If your parallel port has configuration switches (in hardware or on a CMOS setup screen) be sure to set the port into one of those two modes for the 0.26 program.

Be sure that all cables are firmly attached.

Also see section Getting more information

3.2 SCSI external version

The external SCSI version of the ZIP drive has two DB25F connectors, and two configuration switches. One switch selects the drive's target address. The choice is limited to target 5 or 6. The other enables an internal terminator, in case the drive is the last one on a chain. The 25 pin SCSI connectors use the familiar Macintosh style wiring. The drive is shipped with a Macintosh type cable, but standard cables and converters are easily obtained if you are using a host adapter with a Centronics or high-density connector.

I have not seen an internal SCSI drive, but I would expect it to have a standard 50 pin DIP header SCSI connector and the same two switches.

Make sure that the target address you choose does not conflict with any other SCSI devices you may have on the same bus. Also be sure that the physically last drive in a chain has termination enabled, or an external terminator installed.

If you have an internal SCSI disk or CD-rom, and you connect your ZIP drive to the existing adapter, you should check to see if there are any terminators on the card that must be removed. Only the two extreme ends of the SCSI bus should be terminated. If your bus is partly internal and partly external, there should be one terminator on the last external device and one on the last internal device, but no terminators on the adapter card itself.

Be sure that all cables are firmly attached.

The ZIP ZOOM host adapter

Iomega markets a SCSI host adapter under the name ZIP Zoom. This is actually based on the design of the Adaptec AHA1520 family of adapters. It has an external Macintosh type DB25F connector, compatible with the cable that comes with the ZIP drive.

Linux supports this adapter with the aha152x driver.

3.3 The SCSI Internal version

Install hardware as described in the "Installation and Reference Guide" noting which SCSI ID, IRQ and I/O Port Address are being used. (You'll need this info later.) Things will go smother if the drive and adapter card use different SCSI ID's.

Recompile the kernel after configuring it to include 'SCSI', 'SCSI disk' and 'AHA152X/2825' support. INSTALL NEW KERNEL :-(

Determine what your kernel command line is:

aha152x=[I/O Port][,IRQ][,SCSI ID][,RECONNECT][,PARITY]

For example :

aha152x=0x140,10,7,1

If your using LILO add your kernel command line to your lilo.conf file using the append command.

(ie. append = "aha152x=0x140,10,7,1")

If your using LOADLIN add your kernel command line to the command you use to initiate loadlin.

(ie. loadlin c:\vmlinuz root=/dev/hda3 aha152x=0x140,10,5,1 ro)

3.4 The ZIP Plus - IMM driver

This is a newer version of the external Zip drive. The Zip Plus does not use the ppa driver, instead it uses the imm driver. Philippe Andersson sent in this excellent section on the imm driver for the Zip Plus. Thanks Philippe.

Warning: the development of this driver is in alpha stage, which means that 1./ you won't find it in the normal linux kernel source tree (nor will you be able to select it from make config and friends, of course) and 2./ it might not work in your specific setup. But don't fear -- just go ahead and test it.

First, rebuild your kernel to include the following items:

You'll notice we didn't select any SCSI low-level driver. That's ok -- we'll build it separately later.

Then, you need to get the driver source code from Dave Campbell's home page ( http://www.torque.net/~campbell/imm.tar.gz). Version 0.17 is the current one at the time of writing (Aug. 98). Unzip it and untar it somewhere (under /usr/src, for instance). Then just run make. You'll get the module you need (imm.o). Copy it to /lib/modules/$(uname -r)/scsi.

If your lp module was loaded (check with lsmod(1)), unload it (rmmod lp), then load imm.o (insmod imm) and you're all set basically.

If the ZIP drive was not connected and powered on at the time, you'll get the message "init_module: Device or resource busy", and the module won't load. (By the way, it looks like you don't need to switch your PC off to connect the ZIP -- just make sure the module is not loaded and the drive is turned off, then plug it in, turn the drive on, and load the module.)

If the ZIP was connected and powered on, but there was no disk in, the module will load all right, but you'll get the message that it can't read the disk partition table. This is ok, as the partition table will be automatically read when you insert a ZIP disk.

If there was a ZIP disk in, you'll get the full information displayed, including a list of partitions defined on the disk and its Write Protect status. Here is a sample load-time message:

vger:~# insmod imm
imm: Version 0.17
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:~#

One last remark to mention that this version of the driver also locks the drive door while the disk is mounted. If the eject button is pressed in this situation, nothing happens, but the drive "remembers" and ejects the disk as soon as it is dismounted.

3.5 ATAPI version

There was an IDE version of the drive produced for a while. I think that for the most part this has been replaced by the ATAPI version.

Donald Stidwell sent in these comments on the ATAPI version. Thanks Don.

I use an ATAPI Zip drive and it works with both 2.0.32 and 2.0.33 kernels. I've used it under both RH 5.0 and OpenLinux 1.2 (my current used distribution). To get it to work under OpenLinux, I just enabled ATAPI floppy support in the kernel. OpenLinux does not have this support compiled in by default.

No other drivers are needed. It will mount as an extended partition on partition 4. I.E, mine mounts on HDB4. I mount it under /mnt/zip as noauto, although I don't suppose there would be any real problem with automounting. I just wonder about ejecting disks. I always dismount the drive before ejecting a cartridge.

There are more detailed instructions for the ATAPI install in the Linux Gazette May 1998 issue. See the 2 cent tip section.

http://www.linuxgazette.com/issue28/lg_tips28.html#atapi

3.6 IDE version

I have not used the IDE version. Eric Backus sent in these comments. Thanks Eric.

I have one of these. It came with my Gateway 2000 computer a year ago. I think most of these were shipped by large OEM companies like this, before the ATAPI version of the ZIP drive was available.

The good news about this drive: no kernel modules or modifications are needed to support it. It looks to the kernel like an IDE hard drive. It worked for me with no effort with kernel 2.0.31 and 2.0.32.

The bad news about this drive: because it doesn't use ATAPI, you can't use the SCSI-to-ATAPI translation, which means you can't use mtools to write-protect disks (or to eject them, for that matter).


Next Previous Contents