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 go to /usr/src/linux
and study the
README
file found there. There is also useful information in the
Documentation
subdirectory in recent versions.
You must begin the process of building a kernel with the configuration
step. Here, you identify the specific kernel components that you need.
make config
is the traditional, sequential,
question and answer method of configuring the kernel.
In recent kernels there are some
new alternatives:
make menuconfig
does the same thing with a menu oriented
interface, and make xconfig
uses the tk toolkit to
provide a version that is nice to use under X.
Once you have configured your kernel, use make dep
and
make zLilo
(or make zImage
if you don't use LILO) to compile the
new kernel and install it. And, of course, don't forget to 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,1to 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.
If you want to use the parallel port ZIP drive with the stable
kernel, version 1.2.13, you must fetch version 0.18 of the driver
which is available for anonymous ftp at
ftp://gear.torque.net/pub/ppa.c
Installation instructions about how to compile the driver as a loadable
module are contained in the source for ppa.c
.
Please note that you will almost certainly have to build a new kernel.
In particular, none of the Slackware pre-built kernels will work
with ppa
. Be careful to build your
kernel with SCSI support and SCSI disk support, but do not include support
for the lp
printer driver.
In 1.2.13 the two drivers cannot co-exist in
the same kernel.
You can adjust the port number and some timing parameters on the
insmod command line when you load the ppa
driver. These adjustments
are documented in the ppa.c
file. By default the driver assumes that
the ZIP drive is connected to the parallel port at 0x378.
There will not be any enhancements to this driver for the 1.2.13 kernel. You should expect it to disappear a few months after the 2.0 kernel is released and the major distributions start using it.
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