xref: /OK3568_Linux_fs/kernel/Documentation/admin-guide/blockdev/paride.rst (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun===================================
2*4882a593SmuzhiyunLinux and parallel port IDE devices
3*4882a593Smuzhiyun===================================
4*4882a593Smuzhiyun
5*4882a593SmuzhiyunPARIDE v1.03   (c) 1997-8  Grant Guenther <grant@torque.net>
6*4882a593Smuzhiyun
7*4882a593Smuzhiyun1. Introduction
8*4882a593Smuzhiyun===============
9*4882a593Smuzhiyun
10*4882a593SmuzhiyunOwing to the simplicity and near universality of the parallel port interface
11*4882a593Smuzhiyunto personal computers, many external devices such as portable hard-disk,
12*4882a593SmuzhiyunCD-ROM, LS-120 and tape drives use the parallel port to connect to their
13*4882a593Smuzhiyunhost computer.  While some devices (notably scanners) use ad-hoc methods
14*4882a593Smuzhiyunto pass commands and data through the parallel port interface, most
15*4882a593Smuzhiyunexternal devices are actually identical to an internal model, but with
16*4882a593Smuzhiyuna parallel-port adapter chip added in.  Some of the original parallel port
17*4882a593Smuzhiyunadapters were little more than mechanisms for multiplexing a SCSI bus.
18*4882a593Smuzhiyun(The Iomega PPA-3 adapter used in the ZIP drives is an example of this
19*4882a593Smuzhiyunapproach).  Most current designs, however, take a different approach.
20*4882a593SmuzhiyunThe adapter chip reproduces a small ISA or IDE bus in the external device
21*4882a593Smuzhiyunand the communication protocol provides operations for reading and writing
22*4882a593Smuzhiyundevice registers, as well as data block transfer functions.  Sometimes,
23*4882a593Smuzhiyunthe device being addressed via the parallel cable is a standard SCSI
24*4882a593Smuzhiyuncontroller like an NCR 5380.  The "ditto" family of external tape
25*4882a593Smuzhiyundrives use the ISA replicator to interface a floppy disk controller,
26*4882a593Smuzhiyunwhich is then connected to a floppy-tape mechanism.  The vast majority
27*4882a593Smuzhiyunof external parallel port devices, however, are now based on standard
28*4882a593SmuzhiyunIDE type devices, which require no intermediate controller.  If one
29*4882a593Smuzhiyunwere to open up a parallel port CD-ROM drive, for instance, one would
30*4882a593Smuzhiyunfind a standard ATAPI CD-ROM drive, a power supply, and a single adapter
31*4882a593Smuzhiyunthat interconnected a standard PC parallel port cable and a standard
32*4882a593SmuzhiyunIDE cable.  It is usually possible to exchange the CD-ROM device with
33*4882a593Smuzhiyunany other device using the IDE interface.
34*4882a593Smuzhiyun
35*4882a593SmuzhiyunThe document describes the support in Linux for parallel port IDE
36*4882a593Smuzhiyundevices.  It does not cover parallel port SCSI devices, "ditto" tape
37*4882a593Smuzhiyundrives or scanners.  Many different devices are supported by the
38*4882a593Smuzhiyunparallel port IDE subsystem, including:
39*4882a593Smuzhiyun
40*4882a593Smuzhiyun	- MicroSolutions backpack CD-ROM
41*4882a593Smuzhiyun	- MicroSolutions backpack PD/CD
42*4882a593Smuzhiyun	- MicroSolutions backpack hard-drives
43*4882a593Smuzhiyun	- MicroSolutions backpack 8000t tape drive
44*4882a593Smuzhiyun	- SyQuest EZ-135, EZ-230 & SparQ drives
45*4882a593Smuzhiyun	- Avatar Shark
46*4882a593Smuzhiyun	- Imation Superdisk LS-120
47*4882a593Smuzhiyun	- Maxell Superdisk LS-120
48*4882a593Smuzhiyun	- FreeCom Power CD
49*4882a593Smuzhiyun	- Hewlett-Packard 5GB and 8GB tape drives
50*4882a593Smuzhiyun	- Hewlett-Packard 7100 and 7200 CD-RW drives
51*4882a593Smuzhiyun
52*4882a593Smuzhiyunas well as most of the clone and no-name products on the market.
53*4882a593Smuzhiyun
54*4882a593SmuzhiyunTo support such a wide range of devices, PARIDE, the parallel port IDE
55*4882a593Smuzhiyunsubsystem, is actually structured in three parts.   There is a base
56*4882a593Smuzhiyunparide module which provides a registry and some common methods for
57*4882a593Smuzhiyunaccessing the parallel ports.  The second component is a set of
58*4882a593Smuzhiyunhigh-level drivers for each of the different types of supported devices:
59*4882a593Smuzhiyun
60*4882a593Smuzhiyun	===	=============
61*4882a593Smuzhiyun	pd	IDE disk
62*4882a593Smuzhiyun	pcd	ATAPI CD-ROM
63*4882a593Smuzhiyun	pf	ATAPI disk
64*4882a593Smuzhiyun	pt	ATAPI tape
65*4882a593Smuzhiyun	pg	ATAPI generic
66*4882a593Smuzhiyun	===	=============
67*4882a593Smuzhiyun
68*4882a593Smuzhiyun(Currently, the pg driver is only used with CD-R drives).
69*4882a593Smuzhiyun
70*4882a593SmuzhiyunThe high-level drivers function according to the relevant standards.
71*4882a593SmuzhiyunThe third component of PARIDE is a set of low-level protocol drivers
72*4882a593Smuzhiyunfor each of the parallel port IDE adapter chips.  Thanks to the interest
73*4882a593Smuzhiyunand encouragement of Linux users from many parts of the world,
74*4882a593Smuzhiyunsupport is available for almost all known adapter protocols:
75*4882a593Smuzhiyun
76*4882a593Smuzhiyun	====    ====================================== ====
77*4882a593Smuzhiyun        aten    ATEN EH-100                            (HK)
78*4882a593Smuzhiyun        bpck    Microsolutions backpack                (US)
79*4882a593Smuzhiyun        comm    DataStor (old-type) "commuter" adapter (TW)
80*4882a593Smuzhiyun        dstr    DataStor EP-2000                       (TW)
81*4882a593Smuzhiyun        epat    Shuttle EPAT                           (UK)
82*4882a593Smuzhiyun        epia    Shuttle EPIA                           (UK)
83*4882a593Smuzhiyun	fit2    FIT TD-2000			       (US)
84*4882a593Smuzhiyun	fit3    FIT TD-3000			       (US)
85*4882a593Smuzhiyun	friq    Freecom IQ cable                       (DE)
86*4882a593Smuzhiyun        frpw    Freecom Power                          (DE)
87*4882a593Smuzhiyun        kbic    KingByte KBIC-951A and KBIC-971A       (TW)
88*4882a593Smuzhiyun	ktti    KT Technology PHd adapter              (SG)
89*4882a593Smuzhiyun        on20    OnSpec 90c20                           (US)
90*4882a593Smuzhiyun        on26    OnSpec 90c26                           (US)
91*4882a593Smuzhiyun	====    ====================================== ====
92*4882a593Smuzhiyun
93*4882a593Smuzhiyun
94*4882a593Smuzhiyun2. Using the PARIDE subsystem
95*4882a593Smuzhiyun=============================
96*4882a593Smuzhiyun
97*4882a593SmuzhiyunWhile configuring the Linux kernel, you may choose either to build
98*4882a593Smuzhiyunthe PARIDE drivers into your kernel, or to build them as modules.
99*4882a593Smuzhiyun
100*4882a593SmuzhiyunIn either case, you will need to select "Parallel port IDE device support"
101*4882a593Smuzhiyunas well as at least one of the high-level drivers and at least one
102*4882a593Smuzhiyunof the parallel port communication protocols.  If you do not know
103*4882a593Smuzhiyunwhat kind of parallel port adapter is used in your drive, you could
104*4882a593Smuzhiyunbegin by checking the file names and any text files on your DOS
105*4882a593Smuzhiyuninstallation floppy.  Alternatively, you can look at the markings on
106*4882a593Smuzhiyunthe adapter chip itself.  That's usually sufficient to identify the
107*4882a593Smuzhiyuncorrect device.
108*4882a593Smuzhiyun
109*4882a593SmuzhiyunYou can actually select all the protocol modules, and allow the PARIDE
110*4882a593Smuzhiyunsubsystem to try them all for you.
111*4882a593Smuzhiyun
112*4882a593SmuzhiyunFor the "brand-name" products listed above, here are the protocol
113*4882a593Smuzhiyunand high-level drivers that you would use:
114*4882a593Smuzhiyun
115*4882a593Smuzhiyun	================	============	======	========
116*4882a593Smuzhiyun	Manufacturer		Model		Driver	Protocol
117*4882a593Smuzhiyun	================	============	======	========
118*4882a593Smuzhiyun	MicroSolutions		CD-ROM		pcd	bpck
119*4882a593Smuzhiyun	MicroSolutions		PD drive	pf	bpck
120*4882a593Smuzhiyun	MicroSolutions		hard-drive	pd	bpck
121*4882a593Smuzhiyun	MicroSolutions          8000t tape      pt      bpck
122*4882a593Smuzhiyun	SyQuest			EZ, SparQ	pd	epat
123*4882a593Smuzhiyun	Imation			Superdisk	pf	epat
124*4882a593Smuzhiyun	Maxell                  Superdisk       pf      friq
125*4882a593Smuzhiyun	Avatar			Shark		pd	epat
126*4882a593Smuzhiyun	FreeCom			CD-ROM		pcd	frpw
127*4882a593Smuzhiyun	Hewlett-Packard		5GB Tape	pt	epat
128*4882a593Smuzhiyun	Hewlett-Packard		7200e (CD)	pcd	epat
129*4882a593Smuzhiyun	Hewlett-Packard		7200e (CD-R)	pg	epat
130*4882a593Smuzhiyun	================	============	======	========
131*4882a593Smuzhiyun
132*4882a593Smuzhiyun2.1  Configuring built-in drivers
133*4882a593Smuzhiyun---------------------------------
134*4882a593Smuzhiyun
135*4882a593SmuzhiyunWe recommend that you get to know how the drivers work and how to
136*4882a593Smuzhiyunconfigure them as loadable modules, before attempting to compile a
137*4882a593Smuzhiyunkernel with the drivers built-in.
138*4882a593Smuzhiyun
139*4882a593SmuzhiyunIf you built all of your PARIDE support directly into your kernel,
140*4882a593Smuzhiyunand you have just a single parallel port IDE device, your kernel should
141*4882a593Smuzhiyunlocate it automatically for you.  If you have more than one device,
142*4882a593Smuzhiyunyou may need to give some command line options to your bootloader
143*4882a593Smuzhiyun(eg: LILO), how to do that is beyond the scope of this document.
144*4882a593Smuzhiyun
145*4882a593SmuzhiyunThe high-level drivers accept a number of command line parameters, all
146*4882a593Smuzhiyunof which are documented in the source files in linux/drivers/block/paride.
147*4882a593SmuzhiyunBy default, each driver will automatically try all parallel ports it
148*4882a593Smuzhiyuncan find, and all protocol types that have been installed, until it finds
149*4882a593Smuzhiyuna parallel port IDE adapter.  Once it finds one, the probe stops.  So,
150*4882a593Smuzhiyunif you have more than one device, you will need to tell the drivers
151*4882a593Smuzhiyunhow to identify them.  This requires specifying the port address, the
152*4882a593Smuzhiyunprotocol identification number and, for some devices, the drive's
153*4882a593Smuzhiyunchain ID.  While your system is booting, a number of messages are
154*4882a593Smuzhiyundisplayed on the console.  Like all such messages, they can be
155*4882a593Smuzhiyunreviewed with the 'dmesg' command.  Among those messages will be
156*4882a593Smuzhiyunsome lines like::
157*4882a593Smuzhiyun
158*4882a593Smuzhiyun	paride: bpck registered as protocol 0
159*4882a593Smuzhiyun	paride: epat registered as protocol 1
160*4882a593Smuzhiyun
161*4882a593SmuzhiyunThe numbers will always be the same until you build a new kernel with
162*4882a593Smuzhiyundifferent protocol selections.  You should note these numbers as you
163*4882a593Smuzhiyunwill need them to identify the devices.
164*4882a593Smuzhiyun
165*4882a593SmuzhiyunIf you happen to be using a MicroSolutions backpack device, you will
166*4882a593Smuzhiyunalso need to know the unit ID number for each drive.  This is usually
167*4882a593Smuzhiyunthe last two digits of the drive's serial number (but read MicroSolutions'
168*4882a593Smuzhiyundocumentation about this).
169*4882a593Smuzhiyun
170*4882a593SmuzhiyunAs an example, let's assume that you have a MicroSolutions PD/CD drive
171*4882a593Smuzhiyunwith unit ID number 36 connected to the parallel port at 0x378, a SyQuest
172*4882a593SmuzhiyunEZ-135 connected to the chained port on the PD/CD drive and also an
173*4882a593SmuzhiyunImation Superdisk connected to port 0x278.  You could give the following
174*4882a593Smuzhiyunoptions on your boot command::
175*4882a593Smuzhiyun
176*4882a593Smuzhiyun	pd.drive0=0x378,1 pf.drive0=0x278,1 pf.drive1=0x378,0,36
177*4882a593Smuzhiyun
178*4882a593SmuzhiyunIn the last option, pf.drive1 configures device /dev/pf1, the 0x378
179*4882a593Smuzhiyunis the parallel port base address, the 0 is the protocol registration
180*4882a593Smuzhiyunnumber and 36 is the chain ID.
181*4882a593Smuzhiyun
182*4882a593SmuzhiyunPlease note:  while PARIDE will work both with and without the
183*4882a593SmuzhiyunPARPORT parallel port sharing system that is included by the
184*4882a593Smuzhiyun"Parallel port support" option, PARPORT must be included and enabled
185*4882a593Smuzhiyunif you want to use chains of devices on the same parallel port.
186*4882a593Smuzhiyun
187*4882a593Smuzhiyun2.2  Loading and configuring PARIDE as modules
188*4882a593Smuzhiyun----------------------------------------------
189*4882a593Smuzhiyun
190*4882a593SmuzhiyunIt is much faster and simpler to get to understand the PARIDE drivers
191*4882a593Smuzhiyunif you use them as loadable kernel modules.
192*4882a593Smuzhiyun
193*4882a593SmuzhiyunNote 1:
194*4882a593Smuzhiyun	using these drivers with the "kerneld" automatic module loading
195*4882a593Smuzhiyun	system is not recommended for beginners, and is not documented here.
196*4882a593Smuzhiyun
197*4882a593SmuzhiyunNote 2:
198*4882a593Smuzhiyun	if you build PARPORT support as a loadable module, PARIDE must
199*4882a593Smuzhiyun	also be built as loadable modules, and PARPORT must be loaded before
200*4882a593Smuzhiyun	the PARIDE modules.
201*4882a593Smuzhiyun
202*4882a593SmuzhiyunTo use PARIDE, you must begin by::
203*4882a593Smuzhiyun
204*4882a593Smuzhiyun	insmod paride
205*4882a593Smuzhiyun
206*4882a593Smuzhiyunthis loads a base module which provides a registry for the protocols,
207*4882a593Smuzhiyunamong other tasks.
208*4882a593Smuzhiyun
209*4882a593SmuzhiyunThen, load as many of the protocol modules as you think you might need.
210*4882a593SmuzhiyunAs you load each module, it will register the protocols that it supports,
211*4882a593Smuzhiyunand print a log message to your kernel log file and your console. For
212*4882a593Smuzhiyunexample::
213*4882a593Smuzhiyun
214*4882a593Smuzhiyun	# insmod epat
215*4882a593Smuzhiyun	paride: epat registered as protocol 0
216*4882a593Smuzhiyun	# insmod kbic
217*4882a593Smuzhiyun	paride: k951 registered as protocol 1
218*4882a593Smuzhiyun        paride: k971 registered as protocol 2
219*4882a593Smuzhiyun
220*4882a593SmuzhiyunFinally, you can load high-level drivers for each kind of device that
221*4882a593Smuzhiyunyou have connected.  By default, each driver will autoprobe for a single
222*4882a593Smuzhiyundevice, but you can support up to four similar devices by giving their
223*4882a593Smuzhiyunindividual co-ordinates when you load the driver.
224*4882a593Smuzhiyun
225*4882a593SmuzhiyunFor example, if you had two no-name CD-ROM drives both using the
226*4882a593SmuzhiyunKingByte KBIC-951A adapter, one on port 0x378 and the other on 0x3bc
227*4882a593Smuzhiyunyou could give the following command::
228*4882a593Smuzhiyun
229*4882a593Smuzhiyun	# insmod pcd drive0=0x378,1 drive1=0x3bc,1
230*4882a593Smuzhiyun
231*4882a593SmuzhiyunFor most adapters, giving a port address and protocol number is sufficient,
232*4882a593Smuzhiyunbut check the source files in linux/drivers/block/paride for more
233*4882a593Smuzhiyuninformation.  (Hopefully someone will write some man pages one day !).
234*4882a593Smuzhiyun
235*4882a593SmuzhiyunAs another example, here's what happens when PARPORT is installed, and
236*4882a593Smuzhiyuna SyQuest EZ-135 is attached to port 0x378::
237*4882a593Smuzhiyun
238*4882a593Smuzhiyun	# insmod paride
239*4882a593Smuzhiyun	paride: version 1.0 installed
240*4882a593Smuzhiyun	# insmod epat
241*4882a593Smuzhiyun	paride: epat registered as protocol 0
242*4882a593Smuzhiyun	# insmod pd
243*4882a593Smuzhiyun	pd: pd version 1.0, major 45, cluster 64, nice 0
244*4882a593Smuzhiyun	pda: Sharing parport1 at 0x378
245*4882a593Smuzhiyun	pda: epat 1.0, Shuttle EPAT chip c3 at 0x378, mode 5 (EPP-32), delay 1
246*4882a593Smuzhiyun	pda: SyQuest EZ135A, 262144 blocks [128M], (512/16/32), removable media
247*4882a593Smuzhiyun	 pda: pda1
248*4882a593Smuzhiyun
249*4882a593SmuzhiyunNote that the last line is the output from the generic partition table
250*4882a593Smuzhiyunscanner - in this case it reports that it has found a disk with one partition.
251*4882a593Smuzhiyun
252*4882a593Smuzhiyun2.3  Using a PARIDE device
253*4882a593Smuzhiyun--------------------------
254*4882a593Smuzhiyun
255*4882a593SmuzhiyunOnce the drivers have been loaded, you can access PARIDE devices in the
256*4882a593Smuzhiyunsame way as their traditional counterparts.  You will probably need to
257*4882a593Smuzhiyuncreate the device "special files".  Here is a simple script that you can
258*4882a593Smuzhiyuncut to a file and execute::
259*4882a593Smuzhiyun
260*4882a593Smuzhiyun  #!/bin/bash
261*4882a593Smuzhiyun  #
262*4882a593Smuzhiyun  # mkd -- a script to create the device special files for the PARIDE subsystem
263*4882a593Smuzhiyun  #
264*4882a593Smuzhiyun  function mkdev {
265*4882a593Smuzhiyun    mknod $1 $2 $3 $4 ; chmod 0660 $1 ; chown root:disk $1
266*4882a593Smuzhiyun  }
267*4882a593Smuzhiyun  #
268*4882a593Smuzhiyun  function pd {
269*4882a593Smuzhiyun    D=$( printf \\$( printf "x%03x" $[ $1 + 97 ] ) )
270*4882a593Smuzhiyun    mkdev pd$D b 45 $[ $1 * 16 ]
271*4882a593Smuzhiyun    for P in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
272*4882a593Smuzhiyun    do mkdev pd$D$P b 45 $[ $1 * 16 + $P ]
273*4882a593Smuzhiyun    done
274*4882a593Smuzhiyun  }
275*4882a593Smuzhiyun  #
276*4882a593Smuzhiyun  cd /dev
277*4882a593Smuzhiyun  #
278*4882a593Smuzhiyun  for u in 0 1 2 3 ; do pd $u ; done
279*4882a593Smuzhiyun  for u in 0 1 2 3 ; do mkdev pcd$u b 46 $u ; done
280*4882a593Smuzhiyun  for u in 0 1 2 3 ; do mkdev pf$u  b 47 $u ; done
281*4882a593Smuzhiyun  for u in 0 1 2 3 ; do mkdev pt$u  c 96 $u ; done
282*4882a593Smuzhiyun  for u in 0 1 2 3 ; do mkdev npt$u c 96 $[ $u + 128 ] ; done
283*4882a593Smuzhiyun  for u in 0 1 2 3 ; do mkdev pg$u  c 97 $u ; done
284*4882a593Smuzhiyun  #
285*4882a593Smuzhiyun  # end of mkd
286*4882a593Smuzhiyun
287*4882a593SmuzhiyunWith the device files and drivers in place, you can access PARIDE devices
288*4882a593Smuzhiyunlike any other Linux device.   For example, to mount a CD-ROM in pcd0, use::
289*4882a593Smuzhiyun
290*4882a593Smuzhiyun	mount /dev/pcd0 /cdrom
291*4882a593Smuzhiyun
292*4882a593SmuzhiyunIf you have a fresh Avatar Shark cartridge, and the drive is pda, you
293*4882a593Smuzhiyunmight do something like::
294*4882a593Smuzhiyun
295*4882a593Smuzhiyun	fdisk /dev/pda		-- make a new partition table with
296*4882a593Smuzhiyun				   partition 1 of type 83
297*4882a593Smuzhiyun
298*4882a593Smuzhiyun	mke2fs /dev/pda1	-- to build the file system
299*4882a593Smuzhiyun
300*4882a593Smuzhiyun	mkdir /shark		-- make a place to mount the disk
301*4882a593Smuzhiyun
302*4882a593Smuzhiyun	mount /dev/pda1 /shark
303*4882a593Smuzhiyun
304*4882a593SmuzhiyunDevices like the Imation superdisk work in the same way, except that
305*4882a593Smuzhiyunthey do not have a partition table.  For example to make a 120MB
306*4882a593Smuzhiyunfloppy that you could share with a DOS system::
307*4882a593Smuzhiyun
308*4882a593Smuzhiyun	mkdosfs /dev/pf0
309*4882a593Smuzhiyun	mount /dev/pf0 /mnt
310*4882a593Smuzhiyun
311*4882a593Smuzhiyun
312*4882a593Smuzhiyun2.4  The pf driver
313*4882a593Smuzhiyun------------------
314*4882a593Smuzhiyun
315*4882a593SmuzhiyunThe pf driver is intended for use with parallel port ATAPI disk
316*4882a593Smuzhiyundevices.  The most common devices in this category are PD drives
317*4882a593Smuzhiyunand LS-120 drives.  Traditionally, media for these devices are not
318*4882a593Smuzhiyunpartitioned.  Consequently, the pf driver does not support partitioned
319*4882a593Smuzhiyunmedia.  This may be changed in a future version of the driver.
320*4882a593Smuzhiyun
321*4882a593Smuzhiyun2.5  Using the pt driver
322*4882a593Smuzhiyun------------------------
323*4882a593Smuzhiyun
324*4882a593SmuzhiyunThe pt driver for parallel port ATAPI tape drives is a minimal driver.
325*4882a593SmuzhiyunIt does not yet support many of the standard tape ioctl operations.
326*4882a593SmuzhiyunFor best performance, a block size of 32KB should be used.  You will
327*4882a593Smuzhiyunprobably want to set the parallel port delay to 0, if you can.
328*4882a593Smuzhiyun
329*4882a593Smuzhiyun2.6  Using the pg driver
330*4882a593Smuzhiyun------------------------
331*4882a593Smuzhiyun
332*4882a593SmuzhiyunThe pg driver can be used in conjunction with the cdrecord program
333*4882a593Smuzhiyunto create CD-ROMs.  Please get cdrecord version 1.6.1 or later
334*4882a593Smuzhiyunfrom ftp://ftp.fokus.gmd.de/pub/unix/cdrecord/ .  To record CD-R media
335*4882a593Smuzhiyunyour parallel port should ideally be set to EPP mode, and the "port delay"
336*4882a593Smuzhiyunshould be set to 0.  With those settings it is possible to record at 2x
337*4882a593Smuzhiyunspeed without any buffer underruns.  If you cannot get the driver to work
338*4882a593Smuzhiyunin EPP mode, try to use "bidirectional" or "PS/2" mode and 1x speeds only.
339*4882a593Smuzhiyun
340*4882a593Smuzhiyun
341*4882a593Smuzhiyun3. Troubleshooting
342*4882a593Smuzhiyun==================
343*4882a593Smuzhiyun
344*4882a593Smuzhiyun3.1  Use EPP mode if you can
345*4882a593Smuzhiyun----------------------------
346*4882a593Smuzhiyun
347*4882a593SmuzhiyunThe most common problems that people report with the PARIDE drivers
348*4882a593Smuzhiyunconcern the parallel port CMOS settings.  At this time, none of the
349*4882a593SmuzhiyunPARIDE protocol modules support ECP mode, or any ECP combination modes.
350*4882a593SmuzhiyunIf you are able to do so, please set your parallel port into EPP mode
351*4882a593Smuzhiyunusing your CMOS setup procedure.
352*4882a593Smuzhiyun
353*4882a593Smuzhiyun3.2  Check the port delay
354*4882a593Smuzhiyun-------------------------
355*4882a593Smuzhiyun
356*4882a593SmuzhiyunSome parallel ports cannot reliably transfer data at full speed.  To
357*4882a593Smuzhiyunoffset the errors, the PARIDE protocol modules introduce a "port
358*4882a593Smuzhiyundelay" between each access to the i/o ports.  Each protocol sets
359*4882a593Smuzhiyuna default value for this delay.  In most cases, the user can override
360*4882a593Smuzhiyunthe default and set it to 0 - resulting in somewhat higher transfer
361*4882a593Smuzhiyunrates.  In some rare cases (especially with older 486 systems) the
362*4882a593Smuzhiyundefault delays are not long enough.  if you experience corrupt data
363*4882a593Smuzhiyuntransfers, or unexpected failures, you may wish to increase the
364*4882a593Smuzhiyunport delay.   The delay can be programmed using the "driveN" parameters
365*4882a593Smuzhiyunto each of the high-level drivers.  Please see the notes above, or
366*4882a593Smuzhiyunread the comments at the beginning of the driver source files in
367*4882a593Smuzhiyunlinux/drivers/block/paride.
368*4882a593Smuzhiyun
369*4882a593Smuzhiyun3.3  Some drives need a printer reset
370*4882a593Smuzhiyun-------------------------------------
371*4882a593Smuzhiyun
372*4882a593SmuzhiyunThere appear to be a number of "noname" external drives on the market
373*4882a593Smuzhiyunthat do not always power up correctly.  We have noticed this with some
374*4882a593Smuzhiyundrives based on OnSpec and older Freecom adapters.  In these rare cases,
375*4882a593Smuzhiyunthe adapter can often be reinitialised by issuing a "printer reset" on
376*4882a593Smuzhiyunthe parallel port.  As the reset operation is potentially disruptive in
377*4882a593Smuzhiyunmultiple device environments, the PARIDE drivers will not do it
378*4882a593Smuzhiyunautomatically.  You can however, force a printer reset by doing::
379*4882a593Smuzhiyun
380*4882a593Smuzhiyun	insmod lp reset=1
381*4882a593Smuzhiyun	rmmod lp
382*4882a593Smuzhiyun
383*4882a593SmuzhiyunIf you have one of these marginal cases, you should probably build
384*4882a593Smuzhiyunyour paride drivers as modules, and arrange to do the printer reset
385*4882a593Smuzhiyunbefore loading the PARIDE drivers.
386*4882a593Smuzhiyun
387*4882a593Smuzhiyun3.4  Use the verbose option and dmesg if you need help
388*4882a593Smuzhiyun------------------------------------------------------
389*4882a593Smuzhiyun
390*4882a593SmuzhiyunWhile a lot of testing has gone into these drivers to make them work
391*4882a593Smuzhiyunas smoothly as possible, problems will arise.  If you do have problems,
392*4882a593Smuzhiyunplease check all the obvious things first:  does the drive work in
393*4882a593SmuzhiyunDOS with the manufacturer's drivers ?  If that doesn't yield any useful
394*4882a593Smuzhiyunclues, then please make sure that only one drive is hooked to your system,
395*4882a593Smuzhiyunand that either (a) PARPORT is enabled or (b) no other device driver
396*4882a593Smuzhiyunis using your parallel port (check in /proc/ioports).  Then, load the
397*4882a593Smuzhiyunappropriate drivers (you can load several protocol modules if you want)
398*4882a593Smuzhiyunas in::
399*4882a593Smuzhiyun
400*4882a593Smuzhiyun	# insmod paride
401*4882a593Smuzhiyun	# insmod epat
402*4882a593Smuzhiyun	# insmod bpck
403*4882a593Smuzhiyun	# insmod kbic
404*4882a593Smuzhiyun	...
405*4882a593Smuzhiyun	# insmod pd verbose=1
406*4882a593Smuzhiyun
407*4882a593Smuzhiyun(using the correct driver for the type of device you have, of course).
408*4882a593SmuzhiyunThe verbose=1 parameter will cause the drivers to log a trace of their
409*4882a593Smuzhiyunactivity as they attempt to locate your drive.
410*4882a593Smuzhiyun
411*4882a593SmuzhiyunUse 'dmesg' to capture a log of all the PARIDE messages (any messages
412*4882a593Smuzhiyunbeginning with paride:, a protocol module's name or a driver's name) and
413*4882a593Smuzhiyuninclude that with your bug report.  You can submit a bug report in one
414*4882a593Smuzhiyunof two ways.  Either send it directly to the author of the PARIDE suite,
415*4882a593Smuzhiyunby e-mail to grant@torque.net, or join the linux-parport mailing list
416*4882a593Smuzhiyunand post your report there.
417*4882a593Smuzhiyun
418*4882a593Smuzhiyun3.5  For more information or help
419*4882a593Smuzhiyun---------------------------------
420*4882a593Smuzhiyun
421*4882a593SmuzhiyunYou can join the linux-parport mailing list by sending a mail message
422*4882a593Smuzhiyunto:
423*4882a593Smuzhiyun
424*4882a593Smuzhiyun		linux-parport-request@torque.net
425*4882a593Smuzhiyun
426*4882a593Smuzhiyunwith the single word::
427*4882a593Smuzhiyun
428*4882a593Smuzhiyun		subscribe
429*4882a593Smuzhiyun
430*4882a593Smuzhiyunin the body of the mail message (not in the subject line).   Please be
431*4882a593Smuzhiyunsure that your mail program is correctly set up when you do this,  as
432*4882a593Smuzhiyunthe list manager is a robot that will subscribe you using the reply
433*4882a593Smuzhiyunaddress in your mail headers.  REMOVE any anti-spam gimmicks you may
434*4882a593Smuzhiyunhave in your mail headers, when sending mail to the list server.
435*4882a593Smuzhiyun
436*4882a593SmuzhiyunYou might also find some useful information on the linux-parport
437*4882a593Smuzhiyunweb pages (although they are not always up to date) at
438*4882a593Smuzhiyun
439*4882a593Smuzhiyun	http://web.archive.org/web/%2E/http://www.torque.net/parport/
440