I managed to cull these instructions from multiple posts to the Linux
Tape mailing list and put them together into a mail message to Charles.
This is what I had to do to get my drive working with my machine, so
hopefully it will help someone else.
Here's what I did:
I grabbed and built the latest version of isapnp. It has a utility
called pnpdump that will interrogate your system for any PNP cards that
it can find and dump their settings to stdout. If you redirect this to a
file, you can edit it and feed it to isapnp to setup your system to the
state you need.
Once you have this file, you will need to edit it to pare it down to a
single IRQ/DMA/Addr setting for each PNP device. I've included mine as
an attachment for an example. This file represents the best guess as to
the correct resources to use to configure your cards. It is probabl
wrong :) Anyhow, now that you have this file, copy it into
/etc/isapnp.conf.
Next, I grabbed and built the latest version of ftape. Since you are
running an older kernel, you may not need to do this, but the advantage
is that there is a script in the modules directory of the package that
will install the appropriate modules for you. You are supposed to go in
here and comment and uncomment those options that you want. Once again,
I've enclosed mine as an example.
Once you've edited this file, try it out. Then execute the file with:
. ./insert
Now check out /var/log/messages for the debug messages that ftape wrote
during its initialization. Somewhere in there are some messages about
the IRQ/DMA/Addr that it tried to use. Find these messages and change
your isapnp.conf to match these. I didn't know how to alter the PNP
settings without rebooting, so that's what I did. Then I re-executed the
. insert command, and my drive worked.
You can test it out by using ftmt -f /dev/nqft0 status. You should see
several lines describing drive and the tape presently inserted in the
system.
Another interesting thing I saw is that the ftape drive apparently tunes
the operational parameters of the drive to the best set that it can use.
I have my system configured to use the full 4000 kbps, and when it
starts to do a backup I see a lot of messages about failures and
retries. Then I see a message about it changing the datarate and that's
the last error I see.
bab
--
Brian Button [EMAIL PROTECTED]
Senior Consultant Object Mentor, Inc.
Products Review Editor C++ Report Magazine
Unit #6 of the Craftite Conspiracy (TINCC)
# $Id: pnpdump.c,v 1.15a 1998/05/25 17:22:16 fox Exp $
# This is free software, see the sources for details.
# This software has NO WARRANTY, use at your OWN RISK
#
# For details of this file format, see isapnp.conf(5)
#
# For latest information on isapnp and pnpdump see:
# http://www.roestock.demon.co.uk/isapnptools/
#
# Compiler flags: -DREALTIME -DNEEDSETSCHEDULER
#
# Trying port address 0203
# Board 1 has serial identifier 0f ff ff ff ff 40 00 ed 25
#(DEBUG)
(READPORT 0x0203)
(ISOLATE PRESERVE)
(IDENTIFY *)
# Card 1: (serial identifier 0f ff ff ff ff 40 00 ed 25)
# Vendor Id IOM0040, No Serial Number (-1), checksum 0x0F.
# Version 1.0, Vendor version 0.1
# ANSI string -->iomega 4Mb/S PNP tape controller<--
#
# Logical device id IOM0040
# Device supports vendor reserved register @ 0x3a
# Device supports vendor reserved register @ 0x3c
# Device supports vendor reserved register @ 0x3d
#
# Edit the entries below to uncomment out the configuration required.
# Note that only the first value of any range is given, this may be changed if required
# Don't forget to uncomment the activate (ACT Y) when happy
(CONFIGURE IOM0040/-1 (LD 0
# Logical device decodes 16 bit IO address lines
# Minimum IO base address 0x0200
# Maximum IO base address 0x03e0
# IO base alignment 16 bytes
# Number of IO addresses required: 8
(IO 0 (BASE 0x0200))
# Multiple choice time, choose one only !
# Start dependent functions: priority preferred
# IRQ 3, 4, 5, 7, 9, 10, 11, 12, 14 or 15.
# High true, edge sensitive interrupt (by default)
(INT 0 (IRQ 11 (MODE +E)))
# First DMA channel 0, 1 or 3.
# 8 bit DMA only
# Logical device is not a bus master
# DMA may not execute in count by byte mode
# DMA may not execute in count by word mode
# DMA channel speed in compatible mode
(DMA 0 (CHANNEL 0))
# Start dependent functions: priority functional
# IRQ 3, 4, 5, 6, 7, 9, 10, 11, 12, 14 or 15.
# High true, edge sensitive interrupt (by default)
# (INT 0 (IRQ 3 (MODE +E)))
# First DMA channel 0, 1, 2 or 3.
# 8 bit DMA only
# Logical device is not a bus master
# DMA may not execute in count by byte mode
# DMA may not execute in count by word mode
# DMA channel speed in compatible mode
#(DMA 0 (CHANNEL 0))
# End dependent functions
(ACT Y)
))
# End tag... Checksum 0x00 (OK)
# Returns all cards to the "Wait for Key" state
(WAITFORKEY)
#!/bin/bash
#
# Example module insertion script for ftape-4.x
#
# Please modify to reflect your hardware configuration
#
# isapnp ./isapnp.conf
insmod ./ftape.o ft_fdc_driver=ftape-internal ft_tracings=3,3,3,3,3
insmod ./zftape.o ft_major_device_number=27 # ${27-FT_MAJOR}
#
# NOTE: YOU DON'T NEED zft-compressor.o UNLESS you want to decompress
# compressed volumes created by ftape-3.x. Writing of compressed
# volumes is no longer supported.
#
#insmod ./zft-compressor.o
#
# NOTE: even the newest modules utilities are broken like hell with
# 2.0 kernels. Try to specify a negative paramenter, i.e. -1, and it
# is interpreted as a string. Try to say: 0xffffffff, and NO, you
# DON'T get -1, but MAXINT. :-(
#
# NOTE: you can mess up things like hell if you specify wrong
# parameters. Specifically, don't use the rate limit parameter if
# everything works without it. Valid setting for "rate_limit" are
# 4000, 3000, 2000, 1000 and 500 (500 is pretty useless).
#
# If you have a Ditto Max tape drive, DO NOT attempt to specify a rate
# limit below 2000Kbps! It _really_ needs at least 2000Kbps.
#
# TR-3 tape drives need at least 1000Kbps.
#
# QIC-80 tape drives need at least 500Kbps.
#
# QIC-40 tape drives work at 250Kbps.
#
# PLEASE MAKE SURE neither to forget any of the "0"s when specifying
# the rate limit, nor to add an additional "0". There is really much
# of a difference between "500" and "5000", or, even worse, "2000" and
# "200".
#
# I'll creep through your network interface and ask General Failure to
# read your hard disk if you mess up the ft_fdc_rate_limit parameter
# by messing up the number of "0"s!
#
insmod ./ftape-internal.o ft_fdc_fc10=0 ft_fdc_mach2=0 ft_fdc_base=0x200 ft_fdc_dma=0
ft_fdc_irq=11 ft_fdc_threshold=15 ft_fdc_rate_limit=4000
#modprobe parport || true # pre-2.1 kernels don't have the parport module
#insmod ./trakker.o
#insmod ./bpck-fdc.o
#
# maybe your klogd doesn't understand `-i', refer to its man-page ...
#
#/usr/sbin/klogd -i