plextor-tool 0.5.0, by Georg Huettenegger (February, 2002)
Copyright (c) 1999-2002

Preface
~~~~~~~
Most of this document describes the console plextor-tool and not the
plextor-tool-applet (which is rather self describing and furthermore
has a HTML help page). Nevertheless starting with Preconditions the
content of this file is relevant for all packages this file is
distributed with.

Description
~~~~~~~~~~~
plextor-tool can be used to set the speed settings / spin down time of
Plextor/MMC CD-ROM/CD-R(W) drives. The program should work with any of
the following plextor cd-rom drives: PX-4[XX], PX-6[XX], PX-8[XX],
PX-12[XX], PX-20[XX], PX-32[XX], PX-40[XX]. [XX] means something like
TSi/CH/.... Nevertheless I do not make any guarantees at all: USE AT
YOUR OWN RISK! The program has been developed on an Intel computer
with RedHat 7.2 and a Plextor PX-32TS. I would very much like to hear
about any success/failure especially with the untested versions (all
except for the Intel/glibc version). Additionally all mmc compatible
drives (that provide code page 0x2a and the set speed command) are
supported (this includes Plextor CD-R(W) drives).

License
~~~~~~~
As of 0.5.0 plextor-tool(-applet) is distributed under the terms of
the GPL (see included COPYING).
Earlier version were and are distributed as Freeware.

Usage
~~~~~
Normal usage is like: "plextor-tool DEVICE [OPTIONS]"
device might be something like /dev/sg0 or /dev/sga for Linux or 1 6
for Windows (first the Host adapter number starting with 0 then the
SCSI id).

-q:       For querying the device -q may be used. Setting options are not
          carried out when in query mode (using -v is silently ignored).
-v:       With the -v option the verbose level is set giving some messages
          during the operation of the program.
-s x:     With this option the speed of the Plextor(r) drive may be set to a
          multiple of 150KB/sec.
-i x:     With this option the spin-down time (after which period of
          inactivity the drive stays in hold track state)
-o x[,y]: set volume to x (x or y must be in the range 0..255)
          if both x and y are given x is the volume of the left channel and y
          the volume of the right channel.

The next three options are only available on Plextor CD-ROM drives
(not MMC drives like Plextor CD-R(W)s)

-m 0|1:Setting the speed mode bit. If set the drive will not reduce
       the operation in case of read errors. If this bit is set the
       disable avoid vibration bit setting will be ignored! (0 default).

The next two options are only available for PX-20TS and later.

-a 0|1:Setting the disable avoid vibration bit: If set the drive will
       not speed down to avoid vibration. (0 default).
-w 1|0:Setting the waiting for maximum speed bit: If not set the drive
       will start transferring data before reaching the maximum
       speed. (1 default).

Additionally availabe with the Windows version is the following
option:
-f:    forces waiting for ASPI initialization (it may happen with
       Windows that ASPI is not fully started when executing the
       plextor-tool from your Autostart folder; with this option
       plextor-tool will try forever if ASPI seems not to be
       initialized fully).


-l:    For querying the SCSI devices to show all available plextor
       drives. The only other allowed option is -v for this mode.
       Further options are simply ignored.

-? or -h or --help:  A help text describing the functionality of the tool.

--version: Displaying the version number alone.

What can be given for the device argument:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Linux:

Under Linux /dev/sgx with x being a letter or a number are
acceptable. Some Linux systems use e.g. /dev/sga,/dev/sgb,... ; some
Linux systems use e.g. /dev/sg0,/dev/sg1,... ; RedHat for example uses
both. Older versions of plextor-tool would list both names if
available, but the newer version first try for the numerical names and
if any numerical name is found the check for the alphabetical names is
skipped. It is irrelevant which device is used. For further
information about the meaning of /dev/sgx read the
SCSI-Programming-HOWTO. (According to the Linux Kernel Documentation
the sga/... naming scheme is inferior because it limits the number of
possible SCSI generic devices to 26. Furthermore the alphabetical
naming is deprecated.)

Windows:

Under Windows the device is described with the number of the
Host adapter the drive is connected to (starting with 0) and the SCSI
id of the plextor drive. Use "plextor-drive -l" to find the correct
values for your drive.

Preconditions:
~~~~~~~~~~~~~~

Linux:

I assume (according to the SCSI-Programming-HOWTO) that plextor-tool
requires at least kernel version 1.1.68 (with the exceptions of 1.1.77
up to 1.1.89 and 1.3.52 up to 1.3.56 due to broken SCSI generic
interface). Nevertheless I just tried 2.2.12 and it worked fine (but a
small test of mine indicates possible erros with rather old
kernels). When a Linux kernel with a SCSI generic interface with a
version number higher than 3 is detected plextor-tool partially uses
the new interface.

Another precondition is that SCSI generic support is available (that
means either compiled into the kernel or the sg module is loaded)
together with the corresponding special devices (sg0/... and/or
sga/...).

Windows:

Plextor-tool runs on Windows 95/98/NT/2000 using ASPI32 for Windows.
Windows 95/98 ship with ASPI but at least Windows 98 uses a version
incompatible with plextor-tool. I did not test Windows 95 and
therefore cannot say whether the ASPI delivered with Windows 95 will
work. I used the ASPI32 version included in the ASPI-SDK from Adaptec
with Windows 98/NT and it worked. I did not test any other ASPI
version but would like to hear about success/failure. Everybody who
has an Adaptec SCSI Controller or some ASPI version from Adaptec can
get the newest version from Adaptec with which my tool should work.
Furthermore plextor-tool was compiled using the Cygnus gcc which means
that cygwin1.dll is needed for execution. I used v 1.3.1 for
development and provide the corresponding dll but newer versions
should also work.

To access the SCSI devices under Windows I used the ASPI-SDK from
Adaptec with an additional definition for BOOL necessary in WnASPI32.h.

What speed settings are available:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The available speed settings depend on your Plextor(r) drive:
0 always means the maximum speed for the supported Plextor(r) drive.
PX-4XCH/4XCS: 1 2 0 (means 4)
PX-4XCE:      1 2 0 (means 4.5)
PX-6XCS:      1 4 0 (means 6)
PX-8XCS:      1 2 4 0 (means 8)
PX-12XSx:     1 2 4 8 0 (means 12)
PX-20TSx:     1 2 4 8 0 (means 12-20)
PX-32XSx:     1 2 4 8 20 (means 8-20) 0 (means 14-32)
PX-40TSx:     1 2 4 8 20 (means 10-20) 0 (means 17-40)

With MMC drives the printed available settings are just
assumptions. Every MMC drive will set the next available lower data
rate if the selected one is not available. The maximum data rate on
the other hand is reported by the drive.

What spin down settings are available:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The available settings are:
125ms         32sec
250ms         1min
500ms         2min
1sec          4min
2sec          8min
4sec          16min
8sec          32min
16sec         0 (means infinite)

At least with a Yamaha CDR400c setting the spin down time does not
work. I do not exactly know why (according to available SCSI
documentation the operation should be exactly as for Plextor CD-ROM
drives where the procedure works). I tried my method of setting
parameters of SCSI devices also with a ZIP drive and it worked so I
assume that changing the spin down setting should normally work as
expected. If you have any information regarding this topic please
inform me.

Installation
~~~~~~~~~~~~
In case you did not install a RPM package see INSTALL for installation
instructions.

Homepage
~~~~~~~~
http://www.technik.sth.ac.at/plextor-tool

Comments (Suggestions/Bug Reports/...)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
georg@ist.org
