Next Previous Contents

4. Configuring a kernel for the ZIP drive

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.

My system is Suse 5.0 and this file is in /etc/rc.d. The location of this file will vary by distribution, but there will be a file somewhere, for local changes to be made at start up time. You should use the file that is applicable for your distribution.

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.

4.1 SCSI version

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.

4.2 PPA driver for 1.2.13

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.

4.3 PPA driver in current kernels

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.

4.4 PPA command line parameters

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


Next Previous Contents