mirror of https://github.com/tLDP/LDP
925 lines
34 KiB
Plaintext
925 lines
34 KiB
Plaintext
<!doctype linuxdoc system>
|
|
|
|
<!-- This is a hack of the example.sgml file to create a zip-drive
|
|
how-to file. kjd
|
|
-->
|
|
|
|
<article>
|
|
|
|
<!-- Title information -->
|
|
|
|
<title>Zip Drive Mini-HOWTO
|
|
<author>Kyle Dansie, <tt/ dansie@ibm.net/
|
|
<date>v2.5, 07 March 2002
|
|
<abstract>
|
|
This Document provides a quick reference quide on setting up and using the
|
|
Iomega ZIP drive with Linux.
|
|
</abstract>
|
|
|
|
<toc>
|
|
|
|
<!-- Begin the document -->
|
|
|
|
<sect>Introduction
|
|
|
|
<p>
|
|
The Iomega ZIP drive is a popular, removable media disk drive.
|
|
It is avaliable in several versions.
|
|
<itemize>
|
|
<item> Parallel Port
|
|
<item> SCSI
|
|
<item> IDE - ATAPI
|
|
<item> Plus
|
|
</itemize>
|
|
The most popular seems to be the Parallel port version. It has been
|
|
around a long time and it is low cost. The SCSI version has also been
|
|
around for a while but it needs a scsi card that many people do not have
|
|
already, so it it not quite as popular. The ATAPI version now seems
|
|
to be more available. The Plus is the newer version of the ZIP drive.
|
|
It has the capability to detect what port its plugged into, scsi or
|
|
parallel. This document will focus on the Parallel port version, but
|
|
also offer some tips for other versions.
|
|
<p>
|
|
|
|
This document incorporates information collected and published by
|
|
others, in particular:
|
|
<itemize>
|
|
<item> Grant Guenther, grant@torque.net
|
|
<item> Scot Wilcoxon, sewilco@fielday.mn.org
|
|
<item> Joe Mack, mack@ncifcrf.gov
|
|
<item> Byron Jeff, byron@cc.gatech.edu
|
|
</itemize>
|
|
|
|
I thank them for their important contributions, and accept
|
|
responsibility for any errors that I have introduced.
|
|
|
|
A special thanks to Grant Guenther who wrote the 0.26 version of the ppa
|
|
program and also wrote the original version of this HOWTO.
|
|
If you find any mistakes or oversights in this document, please let me know.
|
|
<htmlurl url="mailto:dansie@ibm.net"
|
|
name="dansie@ibm.net">
|
|
|
|
<sect1> Home of this document
|
|
<p>
|
|
The most current version of this document will reside at
|
|
<url url="http://www.njtcom.com/dansie/zip-drive.html">
|
|
|
|
|
|
<sect>Quick Start
|
|
<p>
|
|
OK so you have purchased a new zip drive and now you want to use it.
|
|
Some distributions have the modules already built. You can try insmod ppa
|
|
for starters. (Make sure you have it hooked up and a disk inserted).
|
|
If the ppa program is not there, then configure the kernel.
|
|
My machine has 2 parallel ports, one for the zip and one for the printer.
|
|
This makes things easy, no cable switching.
|
|
|
|
Configure the kernel:
|
|
<itemize>
|
|
<item> cd /usr/src/linux
|
|
<item> make xconfig
|
|
<item> scsi support = Y
|
|
<item> scsi disk support = Y
|
|
<item> Iomega zip support as a module
|
|
<item> printer support also as a module
|
|
<item> save it and exit
|
|
<item> make dep
|
|
<item> make clean
|
|
<item> make zImage or zlilo or zdisk
|
|
<item> make modules
|
|
<item> make modules_install
|
|
</itemize>
|
|
|
|
Now to use the drive:
|
|
<itemize>
|
|
<item> load the module <tt>insmod ppa</tt>
|
|
<item> build a mounting point. <tt>mkdir /zip</tt>
|
|
<item> insert a preformatted windoze type disk into the drive.
|
|
<item> mount the disk. <tt>mount -t vfat /dev/sda4 /zip</tt>
|
|
<item> use any standard file commands as in <tt> l /zip, ls /zip, df, cp,</tt>
|
|
<item> when you are finished <tt> umount /zip </tt>
|
|
</itemize>
|
|
|
|
If you had trouble with any of the previous steps, see the following
|
|
sections for more detailed instructions.
|
|
|
|
|
|
|
|
<sect> Configuring a kernel for the ZIP drive
|
|
|
|
<p>
|
|
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
|
|
<url url="http://metalab.unc.edu/mdw/HOWTO/Kernel-HOWTO.html"
|
|
name="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 <tt> cd /usr/src/linux</tt>. There are several
|
|
ways to actually do the configuration. Under X windows I use
|
|
<bf>make xconfig</bf>. There is also <tt>make menuconfig</tt>
|
|
or <tt>make config</tt> for command line prompts. The easiest way
|
|
is with xconfig.
|
|
|
|
In the section <bf>SCSI Support</bf> set <bf>SCSI support = Y</bf>.
|
|
Also set <bf>SCSI disk support = Y</bf>.
|
|
|
|
In the section <bf>SCSI low-level drivers</bf> you want to set
|
|
<bf>IOMEGA Parallel Port ZIP drive SCSI support = M</bf>. The M
|
|
stands for modules.
|
|
|
|
In the section <bf>Character Devices</bf> find and set
|
|
<bf>Parallell Printer support = M</bf>
|
|
|
|
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:
|
|
<itemize>
|
|
<item> make dep
|
|
<item> make clean
|
|
<item> make zImage or zlilo or zdisk
|
|
<item> make modules
|
|
<item> make mdoules_install
|
|
</itemize>
|
|
|
|
<bf>hint</bf> if you want to create an output log of the make zImage
|
|
step you can use
|
|
<tscreen><verb>
|
|
make zImage 2>&1 | tee zImage.out
|
|
</verb></tscreen>
|
|
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.
|
|
<itemize>
|
|
<item> insmod ppa
|
|
<item> insmod lp
|
|
</itemize>
|
|
My system is Suse 5.3 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 <tt>shutdown and reboot</tt>.
|
|
|
|
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.
|
|
|
|
<sect1> SCSI version
|
|
|
|
<p>
|
|
|
|
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
|
|
|
|
<tscreen><verb>
|
|
aha152x=0x340,11,7,1
|
|
</verb></tscreen>
|
|
|
|
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
|
|
<url url="http://metalab.unc.edu/mdw/HOWTO/BootPrompt-HOWTO.html"
|
|
name="BOOTPROMPT HOWTO"> for information
|
|
about configuring your kernel with LILO or LOADLIN.
|
|
|
|
|
|
|
|
<sect>The ZIP drive
|
|
|
|
<p>
|
|
There are at least five or six versions of the Iomega ZIP 100 drive.
|
|
The Iomega page for these drives is at
|
|
<url url="http://www.iomega.com/product/zip/">
|
|
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:
|
|
<itemize>
|
|
<item> Parallel port
|
|
<item> SCSI
|
|
<item> Plus
|
|
</itemize>
|
|
|
|
The internal drive comes in these types:
|
|
<itemize>
|
|
<item> SCSI
|
|
<item> IDE
|
|
<item> ATAPI
|
|
</itemize>
|
|
|
|
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.
|
|
|
|
<sect1> Parallel port version Zip100
|
|
|
|
<p>
|
|
This drive is described at
|
|
<url url="http://www.iomega.com/product/zip/zippp.html">
|
|
|
|
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.
|
|
If your kernel is older than 2.0.35 then you have the <bf>OLD</bf>
|
|
program.
|
|
Check out
|
|
|
|
<url url="http://www.torque.net/~campbell/"
|
|
name="David Campbell's page">
|
|
for the more current version of this program. At the time of this
|
|
writing the current version is 1.42.
|
|
|
|
The auto configuration features of the 1.4x program are very nice.
|
|
You do NOT have to tell the progam what the base address of the parallel
|
|
port is. The program will prob the standard address's for the parallel
|
|
ports and attach the drive when it finds it.
|
|
|
|
The most common problem is to load the lp printer module before the ppa program.
|
|
The ppa program must be loaded before the lp module. The lp module will tie
|
|
up the port that the zip drive needs, this is why the ppa progam must be loaded
|
|
first.
|
|
|
|
Also be sure that all cables are firmly attached.
|
|
|
|
If you did everything right :) you will see messages like this at boot time.
|
|
|
|
<verb>
|
|
VFS: Mounted root (ext2 filesystem) readonly.
|
|
Adding Swap: 102528k swap-space (priority -1)
|
|
ppa: Version 1.42
|
|
ppa: Probing port 03bc
|
|
ppa: Probing port 0378
|
|
ppa: SPP port present
|
|
ppa: EPP 1.9 with hardware direction protocol
|
|
ppa: Found device at ID 6, Attempting to use EPP 32 bit
|
|
ppa: Communication established with ID 6 using EPP 32 bit
|
|
ppa: Probing port 0278
|
|
ppa: SPP port present
|
|
scsi0 : Iomega parport ZIP drive
|
|
scsi : 1 host.
|
|
Vendor: IOMEGA Model: ZIP 100 Rev: D.09
|
|
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: sda4
|
|
lp2 at 0x0278, (polling)
|
|
</verb>
|
|
|
|
You can view these messages with dmesg | more.
|
|
You can save the messages to a file with dmesg > dmesg.txt.
|
|
This is often usefull if you are trying to debug the installation.
|
|
|
|
Also see section <ref id="sec-more-info" name="Getting more information">
|
|
|
|
|
|
<sect1> SCSI external version
|
|
|
|
<p>
|
|
This drive is described at
|
|
<url url="http://www.iomega.com/product/zip/zipscsi.html">
|
|
|
|
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 kernel configuration is much the same as the internel version. See the
|
|
next section SCSI Internal version for an example configuration.
|
|
|
|
<sect2> The ZIP ZOOM host adapter
|
|
|
|
<p>
|
|
Iomega markets a SCSI host adapter under the name ZIP Zoom. This is
|
|
actually based on the design of the <bf>Adaptec AHA1520</bf> 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 <bf>aha152x</bf> driver.
|
|
|
|
<sect1> The SCSI Internal version
|
|
<p>
|
|
|
|
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.
|
|
|
|
<bf>Beware</bf> The zip zoom card is hardwired for scsi ID number 7. The scsi
|
|
id in the command line below is for the card, not the drive. The card and the
|
|
drive must use different scsi id numbers. For example if the card uses 7 then
|
|
use 5 or some other number for the drive.
|
|
|
|
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:
|
|
|
|
<tt> aha152x=[I/O Port][,IRQ][,SCSI ID][,RECONNECT][,PARITY] </tt>
|
|
|
|
For example :
|
|
|
|
<tt> aha152x=0x140,10,7,1 </tt>
|
|
|
|
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.
|
|
|
|
<verb> (ie. loadlin c:\vmlinuz root=/dev/hda3 aha152x=0x140,10,5,1 ro)
|
|
</verb>
|
|
|
|
|
|
<sect1> The ZIP Plus - IMM driver
|
|
<p>
|
|
This drive is described at
|
|
<url url="http://www.iomega.com/product/zip/zipplus.html">
|
|
|
|
This is a <bf>newer</bf> version of the external Zip drive. The
|
|
<bf> Zip Plus </bf> does not use the ppa driver, instead it uses the
|
|
<bf> imm </bf> driver.
|
|
<htmlurl url="mailto:Philippe_Andersson@ste.scitex.com"
|
|
name="Philippe Andersson">
|
|
sent in this excellent section on the imm driver for the Zip Plus.
|
|
Thanks Philippe.
|
|
|
|
First, rebuild your kernel to include the following items:
|
|
|
|
<itemize>
|
|
<item>modules support
|
|
<item>SCSI support
|
|
<item>SCSI Disk support
|
|
<item>lp as a module (if you need it)
|
|
</itemize>
|
|
|
|
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 (<url url="http://www.torque.net/~campbell/imm.tar.gz"
|
|
name="http://www.torque.net/~campbell/imm.tar.gz">). Version 0.18 is
|
|
the current one at the time of writing (Aug. 98). Unzip it and untar
|
|
it somewhere (under <tt>/usr/src</tt>, for instance). Then just run
|
|
<tt>make</tt>. You'll get the module you need (<tt>imm.o</tt>). Copy
|
|
it to <verb>/lib/modules/$(uname -r)/scsi</verb>.
|
|
|
|
If your lp module was loaded (check with <bf>lsmod</bf>(1)), unload it
|
|
(<tt>rmmod lp</tt>), then load <tt>imm.o</tt> (<tt>insmod imm</tt>)
|
|
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:
|
|
|
|
<verb>
|
|
vger:~# insmod imm
|
|
imm: Version 0.18
|
|
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:~#
|
|
</verb>
|
|
|
|
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.
|
|
|
|
|
|
|
|
<sect1> ATAPI version
|
|
<p>
|
|
This drive is described at
|
|
<url url="http://www.iomega.com/product/zip/zipatapi.html">
|
|
|
|
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
|
|
<bf>ATAPI floppy support</bf> 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.
|
|
|
|
<verb> <url url="http://www.linuxgazette.com/issue28/lg_tips28.html#atapi">
|
|
</verb>
|
|
|
|
<sect1> IDE version
|
|
<p>
|
|
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).
|
|
|
|
|
|
<sect1> USB version
|
|
<p>
|
|
This drive is described at
|
|
<url url="http://www.iomega.com/product/zip/imac.html">
|
|
|
|
These drives look very cool and the USB interface also looks good. The
|
|
only problem is that the USB interface for Linux is still under
|
|
development at this time. So for now, this drive is not usable
|
|
under Linux. Check this address for updates.
|
|
|
|
<url url="http://peloncho.fis.ucm.es/~inaky/USB/news.html">
|
|
|
|
<sect1> ZIP250 version
|
|
<p>
|
|
This drive is desribed at
|
|
<url url="http://www.iomega.com/product/zip/zip250.html">
|
|
|
|
This drive is new as of January 1999. I just bought one of these and it works
|
|
very well in Linux. Just use the IMM driver from
|
|
<url url="http://www.torque.net/~campbell/imm.tar.gz">
|
|
Set up the driver the same way as the zip plus. Mainly just download the
|
|
driver, unpack it, and run make. Then copy the imm.o executable to the modules
|
|
directory. For example /lib/modules/2.0.35/scsi (The 2.0.35 is your
|
|
kernel version). If you are not sure of the version do uname -r.
|
|
|
|
|
|
<sect> Troubleshooting Install
|
|
<p>
|
|
If you get errors while giving <tt>insmod ppa</tt> as given below:
|
|
<code>
|
|
root# insmod ppa
|
|
Using /lib/modules/version/kernel/drivers/scsi/ppa.o
|
|
/lib/modules/version/kernel/drivers/scsi/ppa.o: unresolved symbol parport_register_device_Rf274b881/lib/modules/version/kernel/drivers/scsi/ppa.o: unresolved symbol parport_unregister_device_Rb0814cd3
|
|
/lib/modules/version/kernel/drivers/scsi/ppa.o: unresolved symbol parport_release_Rf8ec22de
|
|
/lib/modules/version/kernel/drivers/scsi/ppa.o: unresolved symbol parport_claim_R4c7222c6
|
|
/lib/modules/version/kernel/drivers/scsi/ppa.o: unresolved symbol parport_enumerate_Rbc847709
|
|
/lib/modules/version/kernel/drivers/scsi/ppa.o: Note: modules without a GPL compatible license cannot use GPLONLY_ symbols
|
|
</code>
|
|
|
|
The problem is that you did not add a printer to your system in 'Printer Configuration'.
|
|
Before you do 'insmod ppa' you MUST add a printer. Click on
|
|
KDE-Start-Button->System->Printer-Config and add a printer by name
|
|
'sometestprinter' using /dev/lp0 (or lp1, lp2 check the output from dmesg | more).
|
|
Now, test the printer which you added by giving:
|
|
<it><tt>/etc/rc.d/init.d/lpd restart </tt></it>. If the lpd daemon starts then the printer is
|
|
configured properly. Now try
|
|
|
|
<code>
|
|
bash# insmod ppa
|
|
bash# insmod lp
|
|
</code>
|
|
You should not get any errors.
|
|
|
|
|
|
<sect> Using the ZIP drive
|
|
|
|
<p>
|
|
If you have built in all the required components, the kernel should
|
|
recognize your adapter and drive at boot time. If you are using a
|
|
loadable module for your driver, the following discussion applies once
|
|
that module is loaded.
|
|
|
|
For the most part, the SCSI and parallel versions of the drive behave
|
|
identically, except that the parallel version is somewhat slower.
|
|
|
|
|
|
<sect1> Fdisk, mke2fs, mount, etc.
|
|
|
|
<p>
|
|
Once you know the drive name for your ZIP drive, you are set. You can
|
|
manipulate the drive with the normal Linux disk management commands.
|
|
<tt>fdisk</tt> (or perhaps <tt>cfdisk</tt>) is used to manipulate the partition tables
|
|
on the disk. <tt>mke2fs</tt> can be used to format a partition with the ext2
|
|
filesystem - the one most commonly used in Linux. <tt>mount</tt> is used to
|
|
connect a formatted partition into your directory hierarchy.
|
|
|
|
You should study the manual pages for these tools if you are not
|
|
familiar with them. Be warned that there are now several quite
|
|
different versions of the <tt>fdisk</tt> program - be careful.
|
|
|
|
I'll describe two common scenarios.
|
|
|
|
<sect1> An existing DOS formatted disk
|
|
|
|
<p>
|
|
If you have a ZIP disk with a DOS file structure that was originally
|
|
created by Iomega's tools, the partition scan should say that the disk
|
|
has one partition, <tt>/dev/sda4</tt>.
|
|
|
|
You should make a place to mount the disk, lets say <tt>/zip</tt>, and then
|
|
mount it as an MS-DOS filesystem:
|
|
|
|
<tscreen><verb>
|
|
mkdir /zip
|
|
mount -t vfat /dev/sda4 /zip
|
|
</verb></tscreen>
|
|
|
|
You could also use msdos instead of vfat. vfat supports long filenames
|
|
where msdos does not.
|
|
Now, the files on the disk should appear in /zip. While the disk is
|
|
mounted, you will not be able to remove it. When you are finished
|
|
with the disk you can umount it to release it and detach it from your
|
|
directory hierarchy.
|
|
|
|
<tscreen><verb>
|
|
umount /zip
|
|
</verb></tscreen>
|
|
|
|
Once you've made the /zip mount point - you don't need to do it again,
|
|
so you could come back later and mount something else there.
|
|
|
|
<sect1> Re-format as a native Linux disk
|
|
<p>
|
|
|
|
If you want to erase a ZIP disk and make a Linux native file system on
|
|
it. You should use fdisk on the entire disk:
|
|
|
|
<tscreen><verb>
|
|
fdisk /dev/sda
|
|
</verb></tscreen>
|
|
|
|
and delete any existing partitions (with the <tt>d</tt> command). Then create
|
|
a new partition with the <tt>n</tt> command, make it primary partition number
|
|
1, use <tt>w</tt> to write the partition table to disk, and quit with
|
|
<tt>q</tt>.
|
|
|
|
Format the partition
|
|
|
|
<tscreen><verb>
|
|
mke2fs /dev/sda1
|
|
</verb></tscreen>
|
|
|
|
(The 1 is the number that you gave this partition in <tt>fdisk</tt>). Now you
|
|
can mount the disk:
|
|
|
|
<tscreen><verb>
|
|
mount -t ext2 /dev/sda1 /zip
|
|
</verb></tscreen>
|
|
|
|
(re-using that mount point we created before).
|
|
|
|
<sect1> fstab entries
|
|
<p>
|
|
The /etc/fstab allows you to configure the mount command. I like to
|
|
be able to mount and write to the zip disk from any login id on the
|
|
system. I added 2 lines to the end of the fstab file that look like this.
|
|
|
|
<verb>
|
|
/dev/sda1 /zip ext2 noauto,rw,user,nosuid,sync
|
|
/dev/sda4 /zipdos vfat noauto,rw,user,nosuid,sync,mode=0777
|
|
</verb>
|
|
|
|
These entries assume that you have a /zip and a /zipdos directory. If
|
|
you want all users ids to read and write, make sure you set the permissions.
|
|
For exmaple <bf> chmod 666 /zip </bf>. You must do the chmod as root.
|
|
The fstab entries also assume that your dos disks are partitioned as 4
|
|
(sda4 in my case), and the ext2(linux) disks are partitoned as 1 (sda1).
|
|
You can read more about the fstab options with <bf>man mount</bf>
|
|
|
|
With the fstab entries as above you can mount a dos disk with
|
|
<bf> mount /zipdos </bf>
|
|
If you are using a linux ext2 disk then use the command
|
|
<bf> mount /zip </bf>
|
|
|
|
|
|
<sect1> The ZIP Tools disk
|
|
<p>
|
|
|
|
There is some extra work to be done if you want to use the disk that
|
|
comes with the ZIP drive. As shipped, the software controlled write
|
|
protection is enabled. Most people have unlocked the disk under DOS
|
|
before ever trying to use it with Linux. Linux cannot access a locked
|
|
disk, and it must be unlocked with Iomega's tools.
|
|
|
|
A native Linux program to manage the write protection feature, among
|
|
other things, is expected to be available soon.
|
|
|
|
|
|
<sect> Performance
|
|
<p>
|
|
With the standard version of the 2.0.x kernels you get the 0.26 version
|
|
of the ppa.c program. This is a very reliable simple program. It
|
|
has gotten a lot of use and abuse and held up rather well. The only bad
|
|
thing about this program is that it's not very fast. On my machine I have
|
|
version 2.0.30 kernel, and 2 parallel ports. This is also a low-buck
|
|
machine pentium 133 - 16 meg memory, 5 gig maxtor eide hard drive. The machine
|
|
cost me 500. U.S. Dollars and the drive was 250. I am cheap but so what.
|
|
|
|
I had the ZIP drive on
|
|
the second port and the printer on the first port. The second port
|
|
was an old add in card, no epp mode. This made the driver run in 4 bit mode.
|
|
|
|
To base line the performance I copied the netscape tar file from the hard
|
|
drive to the zip drive. This file is about 10.6 meg.
|
|
Time 7 minutes 15 seconds. Going from the zip
|
|
drive to the hard drive was about 7 minutes even. Not exactly setting the
|
|
world on fire.
|
|
|
|
I then made 2 changes. First I switched the ZIP drive to the first
|
|
port and went into the bios and set EPP mode on for the first port.
|
|
At the same time I hooked up the printer to the 2nd port.
|
|
|
|
Second change I went out and downloaded the new version of the program
|
|
from <url url="http://www.torque.net/~campbell/"
|
|
name="David Campbells page">
|
|
Then I installed this program. Check out
|
|
the readme file that is included.
|
|
|
|
Then I ran the same test again of copying the Netscape tar file to and
|
|
from the ZiP drive. The copy to the C drive was 1:55 seconds. From the
|
|
hard drive to the Zip drive was 1 minute flat. This compares to 7:15 and 7:00
|
|
with the old program. This was a big improvement over the 0.26 program.
|
|
This was also using the zip drive as a vfat file type.
|
|
|
|
Next I formated a zip drive in ext2 format. Ran the same test again.
|
|
The copy going to the hard drive was only 50 seconds. The copy from the
|
|
hard drive to the Zip drive was only 40 seconds.
|
|
|
|
<bf> Performance Summary </bf>
|
|
<p>
|
|
For this test case of moving a 10.6 meg file,
|
|
the 4 bit standard port mode and program version 0.26 is the slowest
|
|
7:00 and 7:15
|
|
|
|
The new program (1.41) and EPP mode with ext2 file types is the fastest
|
|
at 50 seconds and 40 seconds.
|
|
|
|
|
|
<sect> Frequently asked questions
|
|
<p>
|
|
These are some of the questions that we get asked a lot. Please read
|
|
the answers here before asking them again !
|
|
|
|
<sect1> Can I plug a printer into the parallel ZIP drive ?
|
|
<p>
|
|
Yes, but. Currently, you cannot have both the lp and ppa drivers
|
|
active on the same parallel port. A resource sharing protocol has
|
|
been designed and is in the early stages of implementation, but will
|
|
not be available before Linux 2.0 is released.
|
|
|
|
If you like living on the bleeding edge of things, get the 2.1.x
|
|
kernel and you can have port sharing. See
|
|
<url url="http://www.cyberelk.demon.co.uk/parport.html">
|
|
|
|
The easy way to do this with 2.0.x kernel is to have 2 parallel ports.
|
|
I bought my second one for about 15 dollars and it works great.
|
|
You can use one for
|
|
printing and one for your ZIP drive. Just build a kernel with both
|
|
the lp and ppa drivers as modules. I use the newer (1.41) version of
|
|
ppa, so I just load ppa first (insmod ppa). It then finds the zip drive
|
|
on the first port. Then I load lp (insmod lp) and it assigns the printer
|
|
to the second port.
|
|
|
|
If you use the 0.26 version of the program then upgrade to 1.41 or newer.
|
|
The only answer you will get on qustions about this driver is to
|
|
upgrade the program.
|
|
|
|
<sect1> Do you plan to support EPP/ECP ports in PPA ?
|
|
<p>
|
|
|
|
Version 0.26 of the program does not support EPP. Version 1.41 <bf>does</bf>
|
|
support the EPP. This program is also much faster. See the performance
|
|
section for more details.
|
|
|
|
<sect1> Can I run Linux from a ZIP drive ?
|
|
<p>
|
|
People have done this. It would seem this might make a great rescue disk or a
|
|
way to test an install.
|
|
|
|
<url url="http://metalab.unc.edu/LDP/HOWTO/mini/ZIP-Install.html">
|
|
|
|
|
|
<sect1> Can I boot from the ZIP drive ?
|
|
<p>
|
|
This depends on what you are using for a host adapter. If your host
|
|
adapter has a BIOS ROM with code that can boot from target 5 or 6,
|
|
then yes, you can boot from the SCSI ZIP drive. You cannot boot from
|
|
a parallel port drive.
|
|
|
|
If you have DOS on your main disk and want to boot Linux from a ZIP
|
|
disk, you can do this using the LOADLIN boot loader. Your kernel
|
|
image must be somewhere on the DOS disk, but the rest of your Linux
|
|
system could be on the ZIP. Make sure that the kernel you use has the
|
|
correct drivers built in.
|
|
|
|
As far as I am aware, there are no installation boot floppies for any
|
|
of the popular distributions that contain the parallel ZIP driver.
|
|
|
|
<sect1> Why does Iomega use partition number 4 ?
|
|
<p>
|
|
This is one of the most popular questions, but I don't think anyone
|
|
has a definite answer to this one. Could be they had their head
|
|
where the sun don't shine. Maybe there is no reason.
|
|
|
|
<sect1> How can I have the disk mounted at boot time ?
|
|
<p>
|
|
All you need to do is to add a line to your <tt>/etc/fstab</tt> file. For
|
|
instance, if you will always have a DOS disk in the drive when you
|
|
boot, you could put
|
|
|
|
<tscreen><verb>
|
|
/dev/sda4 /zip vfat defaults 0 0
|
|
</verb></tscreen>
|
|
|
|
in the <tt>fstab</tt>. Depending on your distribution, the initialization
|
|
scripts might try to run fsck on partitions listed in your fstab. Be
|
|
aware that this could cause problems if you forget to put the disk in
|
|
the drive when you boot, or have the wrong disk there.
|
|
|
|
<sect1> What happens if there is no disk inserted when I boot ?
|
|
<p>
|
|
The kernel will try to read the partition table, but the operation
|
|
will time out. There is nothing to worry about. Once you have
|
|
inserted a disk, and try to do something with it the kernel will
|
|
notice that there is a disk there now and rescan the partition table.
|
|
|
|
HINT: when you change disks, it is a good idea always to use fdisk to
|
|
check the partition structure on the new disk.
|
|
|
|
The BIOS on some SCSI host adapters will attempt to read the partition
|
|
table on your disk during the system boot. If you cannot disable this
|
|
check, you may be forced always to boot with a disk in the drive.
|
|
|
|
<sect1> Can I use the parallel drive as a real SCSI disk ?
|
|
<p>
|
|
The PPA-3 parallel-to-SCSI adapter is implemented as a single ASIC
|
|
chip that Iomega calls a VPI0. It is embedded on the ZIP drive's
|
|
controller card. There is an actual SCSI bus present, but not in a
|
|
useful form.
|
|
|
|
Although I haven't tried to compare the two cards, it seems logical
|
|
that the VPI0 replaces the conventional electrical buffering circuits
|
|
that would be required if the SCSI bus were extended outside the
|
|
package.
|
|
|
|
|
|
<sect1> Can PPA be used with Iomega's parallel port tape drives ?
|
|
<p>
|
|
No. Those drives are floppy-tape drives. There is no SCSI involved.
|
|
|
|
Several people have indicated an interest in applying my methods to
|
|
try to determine the protocol and develop a driver for these tapes.
|
|
The first step in that process is to get the DOS driver working under
|
|
DOSemu. I have not yet heard that anyone has been successful in doing
|
|
it.
|
|
|
|
<sect1> Will PPA work with the parallel port SyQuest EZ135 ?
|
|
<p>
|
|
No. The EZ135 is an IDE drive with a ShuttlePort parallel to IDE
|
|
converter embedded in it.
|
|
|
|
However there has been some work done on this driver. Check out
|
|
|
|
<url url="http://www.torque.net/linux-pp.html">
|
|
|
|
|
|
<sect> Getting more current information <label id="sec-more-info">
|
|
<p>
|
|
More current versions of the parallel port zip drive (ppa.c) program and
|
|
current technical information of the driver can be found at
|
|
|
|
<url url="http://www.torque.net/~campbell/">
|
|
|
|
Information of many parallel port external device drivers can be found at
|
|
|
|
<url url="http://www.torque.net/linux-pp.html">
|
|
|
|
Parallel Port sharing or through-port information is found at
|
|
|
|
<url url="http://www.cyberelk.demon.co.uk/parport.html">
|
|
|
|
Installing Linux from a zip drive (for machines without a CD)
|
|
|
|
<url url="http://metalab.unc.edu/mdw/HOWTO/mini/Install-From-ZIP.html">
|
|
|
|
An X frontend to the ziptool program can be found at
|
|
|
|
<url url="http://www.scripps.edu/~jsmith/jazip/">
|
|
|
|
Information on configuration of Lilo can be found at
|
|
|
|
<url url="http://metalab.unc.edu/mdw/HOWTO/mini/LILO.html">
|
|
|
|
Information on using bootprompts can be found at
|
|
|
|
<url url="http://metalab.unc.edu/mdw/HOWTO/BootPrompt-HOWTO.html">
|
|
|
|
If you want to install the Linux OS onto a Zip Drive and run the OS from
|
|
the Zip drive
|
|
|
|
<url url="http://metalab.unc.edu/LDP/HOWTO/mini/ZIP-Install.html">
|
|
|
|
Iomega's web pages are at
|
|
|
|
<url url="http://www.iomega.com/">.
|
|
|
|
And if you are looking for general information about parallel port
|
|
programming for the PC, you might want to visit
|
|
|
|
<url url="http://www.lvr.com/parport.htm">
|
|
|
|
|
|
</article>
|