To use the ZIP drive with Linux, you must have a kernel configured with support for the SCSI system, support for SCSI disks, and support for the host adapter you are using. If you are not familiar with building a kernel, you should read up on the Linux Kernel HOWTO for information.
You must begin the process of building a kernel with the configuration
step. Here, you identify the specific kernel components that you
need. First step cd /usr/src/linux
. There are several
ways to actually do the configuration. Under X windows I use
make xconfig
. There is also make menuconfig
or make config
for command line prompts. The easiest way
is with xconfig.
In the section SCSI Support set SCSI support = Y. Also set SCSI disk support = Y.
In the section SCSI low-level drivers you want to set IOMEGA Parallel Port ZIP drive SCSI support = M. The M stands for modules.
In the section Character Devices find and set Parallell Printer support = M
If you are a bit unsure about any of this, use zdisk for the make step. This will build and install the kernel to floppy. If you screw it up somehow, you still have a good bootable system on the hard drive.
Now build the kernel with these steps:
hint if you want to create an output log of the make zImage step you can use
make zImage 2>&1 | tee zImage.out
This is really
a good thing to do, if you have compile errors or other conflicts
in the configuration, now you have a file with the error messages or
compile errors. This makes asking for help much easier.
You also need to load the modules somewhere. On my system I just added a couple of lines to the boot.local file.
Now shutdown and reboot
.
You can also build all or part of the SCSI system as modules. If you do this, be sure to load scsi.o, then sd.o and finally the driver for your host adapter, before you try to access the ZIP drive.
If you already have a SCSI disk in your system, and you are connecting the ZIP drive to the same controller, there is no additional kernel configuration required. Otherwise, you will most likely have to build a new kernel.
If you are building a kernel to support the SCSI version of the ZIP drive, you should select SCSI support and SCSI disk support. You must also select a driver for the interface card you will use. If you have a ZIP Zoom, select the aha152x driver.
Be sure to read the documentation for your adapter in the SCSI HOWTO and any README files in the drivers/scsi subdirectory of the Linux source tree. Pay attention to command line parameters that you might have to use to help the kernel initialise your adapter.
For instance, if you are using the ZIP Zoom card, you will have to add something like
aha152x=0x340,11,7,1
to the boot command (or include it in your /etc/lilo.conf file in an append clause). This tells the driver the port address and IRQ of your ZIP Zoom card - be sure to use the numbers that correspond to the way your jumpers are set.
You should also read Paul Gortmaker's BOOTPROMPT HOWTO for information about configuring your kernel with LILO or LOADLIN.
The 2.0.x kernel has been released for a very long time now. If you are still on the 1.2.13 or anything older than the 2.0.x Please Upgrade. I will not answer any questions about these old releases and I doubt that any of the developers will.
Since version 1.3.74 the ppa driver has been a standard part of the kernel. There were some changes to other parts of the kernel around 1.3.78 that required an interim workaround, but since 1.3.85 the driver has been quite stable at version 0.26. Since the code-freeze for Linux 2.0 is now in effect, I expect that 0.26 will be in the next stable kernel.
To build a kernel with ppa support, include SCSI support, SCSI disk support and select the Iomega ZIP / PPA-3 support from the list of low-level SCSI adapters. You can also build the driver as a loadable module.
You can use command line parameters in /etc/lilo.conf or with insmod to adjust the driver. This is all documented in drivers/scsi/README.ppa in the kernel source tree. I've included a summary in the next section.
If you want to use both the lp and ppa drivers on the same parallel port, you must build both as loadable modules and load one or the other at any point in time, but not both.
Linux's loadable module features are becoming more powerful, and correspondingly more complex, every day. You should read the file Documentation/modules.txt in the kernel source tree, as a starting point.
If you have ppa built into your kernel, you can adjust its parameters from the command line of LILO or LOADLIN with the following syntax:
ppa=base[,speed_high[,speed_low[,nybble]]]
Where base is the i/o address of your parallel port, speed_high is a timing constant for certain fast loops in the driver, speed_low is a similar timing parameter for some slower loops and nybble is a flag to force the driver to use 4-bit, or nybble mode, even if it wants to do otherwise.
For an example, the defaults could be specified as:
ppa=0x378,1,6,0