ZIP-drive mini-HOWTO: Configuring a kernel for the ZIP drive

prev-2643481 next-1054610 toc-3246227

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.

3.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


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.

3.2 PPA driver for 1.2.13

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 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.

READ  Linux Gazette MailBag Issue #19

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.

3.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.

3.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:


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:


prev-2643481 next-1054610 toc-3246227