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