SYNOPSIS

       readom dev=device [ options ]



DESCRIPTION

       Readom is used to read or write Compact Discs.

       The  device  refers to a device location similar to the one used in the
       wodim command. Refer to its manpage for details.

       Also note that this version of readom uses a modified  libusal  library
       which  has a different behaviour compared to the one distributed by its
       original author.



OPTIONS

       If no options except the dev= option have been specified,  readom  goes
       into  interactive  mode.  Select a primary function and then follow the
       instructions.


       -version
              Print version information and exit.

       dev=target
              Sets the SCSI target for the drive, see notes above.  A  typical
              device  specification  is  dev=6,0 .  If a filename must be pro-
              vided together with  the  numerical  target  specification,  the
              filename  is  implementation  specific.  The correct filename in
              this case can be found in the system  specific  manuals  of  the
              target  operating  system.  On a FreeBSD system without CAM sup-
              port, you need to use the control device (e.g.   /dev/rcd0.ctl).
              A   correct   device   specification   in   this   case  may  be
              dev=/dev/rcd0.ctl:@ .

              On Linux, drives connected to a parallel port adapter are mapped
              to  a virtual SCSI bus. Different adapters are mapped to differ-
              ent targets on this virtual SCSI bus.

              If no dev option is present, readom will try to get  the  device
              from the CDR_DEVICE environment.

              If  the argument to the dev= option does not contain the charac-
              ters ',', '/', '@' or ':', it is interpreted as  an  label  name
              that  may  be  found in the file /etc/wodim.conf (see FILES sec-
              tion).

       timeout=#
              Set the default SCSI command timeout value to  #  seconds.   The
              default  SCSI  command  timeout  is the minimum timeout used for
              sending SCSI commands.  If a SCSI command fails due to  a  time-
              out, you may try to raise the default SCSI command timeout above

       kdebug=#, kd=#
              Tell the usal-driver to modify the kernel debug value while SCSI
              commands are running.

       -silent, -s
              Do not print out a status report for failed SCSI commands.

       -v     Increment the level of general verbosity by one.  This  is  used
              e.g. to display the progress of the process.

       -V     Increment  the verbose level with respect of SCSI command trans-
              port by one.  This helps to debug problems during  the  process,
              that  occur  in  the  CD-Recorder.   If you get incomprehensible
              error messages you should use this flag  to  get  more  detailed
              output.   -VV  will show data buffer content in addition.  Using
              -V or -VV slows down the process.

       f=file Specify the filename where the output should be written  or  the
              inout  should  be  taken  from. Using '-' as filename will cause
              readom to use stdout resp. stdin.

       -w     Switch to write mode. If this  option  is  not  present,  readom
              reads from the specified device.

       -c2scan
              Scans  the  whole CD or the range specified by the sectors=range
              for C2 errors. C2 errors are errors that are uncorrectable after
              the  second  stage  of the 24/28 + 28/32 Reed Solomon correction
              system at audio level (2352 bytes sector size). If an  audio  CD
              has  C2 errors, interpolation is needed to hide the errors. If a
              data CD has C2 errors, these errors are in most cases  corrected
              by  the  ECC/EDC  code  that  makes  2352 bytes out of 2048 data
              bytes. The ECC/EDC code should be able to correct about  100  C2
              error bytes per sector.

              If you find C2 errors you may want to reduce the speed using the
              speed= option as C2 errors may be a result of dynamic  unbalance
              on the medium.

       -scanbus
              Scan  all  SCSI devices on all SCSI busses and print the inquiry
              strings. This option may be used to find  SCSI  address  of  the
              devices on a system.  The numbers printed out as labels are com-
              puted by: bus * 100 + target

       sectors=range
              Specify a sector range that should be read.  The range is speci-
              fied  by the starting sector number, a minus sign and the ending
              sector number.  The end sector is not included in the  list,  so
              sectors=0-0  will not read anything and may be used to check for
              a CD in the drive.

              If no ts= option has been specified, readom defaults to a trans-
              fer  size of 256 kB. If libusal gets lower values from the oper-
              ating system, the value is reduced to the maximum value that  is
              possible  with  the current operating system.  Sometimes, it may
              help to further reduce the transfer size or to enhance  it,  but
              note  that  it  may  take  a long time to find a better value by
              experimenting with the ts= option.

       -notrunc
              Do not truncate the output file when opening it.

       -fulltoc
              Retrieve a full TOC from the current disk and print it in hex.

       -clone Do a clone read. Read the CD with all  sub-channel  data  and  a
              full  TOC.  The full TOC data will be put into a file with simi-
              lar name as with the f= option but the suffix .toc added.

       -noerror
              Do not abort if the high level error checking in readom found an
              uncorrectable error in the data stream.

       -nocorr
              Switch  the  drive  into  a mode where it ignores read errors in
              data sectors that are a result of uncorrectable  ECC/EDC  errors
              before reading.  If readom completes, the error recovery mode of
              the drive is switched back to the remembered old mode.

       retries=#
              Set the retry count for high level retries in readom to #.   The
              default  is  to do 128 retries which may be too much if you like
              to read a CD with many unreadable sectors.

       -overhead
              Meter the SCSI command overhead time.  This is done by executing
              several commands 1000 times and printing the total time used. If
              you divide the displayed times by  1000,  you  get  the  average
              overhead time for a single command.

       meshpoints=#
              Print  read-speed at # locations.  The purpose of this option is
              to create a list of read speed values suitable  for  e.g.   gnu-
              plot.   The speed values are calculated assuming that 1000 bytes
              are one kilobyte as documented in the SCSI standard.  The  ouput
              data created for this purpose is written to stdout.

       -factor
              Output the speed values for meshpoints=# as factor based on sin-
              gle speed of the current medium.  This only works if  readom  is
              able to determine the current medium type.


EXAMPLES

       from genisoimage) to a DVD-RAM, call:

           readom dev=2,0 -w f=cdimage.raw



ENVIRONMENT

       RSH    If the RSH environment is present, the  remote  connection  will
              not be created via rcmd(3) but by calling the program pointed to
              by RSH.  Use e.g.  RSH=/usr/bin/ssh to  create  a  secure  shell
              connection.

              Note  that this forces wodim to create a pipe to the rsh(1) pro-
              gram and disallows wodim to directly access the  network  socket
              to  the  remote server.  This makes it impossible to set up per-
              formance parameters and slows down the connection compared to  a
              root initiated rcmd(3) connection.

       RSCSI  If the RSCSI environment is present, the remote SCSI server will
              not  be  the  program  /opt/schily/sbin/rscsi  but  the  program
              pointed  to  by RSCSI.  Note that the remote SCSI server program
              name will be ignored if you log in using  an  account  that  has
              been created with a remote SCSI server program as login shell.


SEE ALSO

       wodim(1), genisoimage(1), rcmd(3), ssh(1).



NOTES

       Unless you want to risk getting problems, readom should be run as root.
       If you don't want to allow users to become root on your system,  readom
       may  safely be installed suid root.  For more information see the addi-
       tional notes of your  system/program  distribution  or  README.suidroot
       which is part of the Cdrkit source.

       Documentation  of  the  wodim  program  contains more technical details
       which could also apply to readom.



DIAGNOSTICS

       A typical error message for a SCSI command looks like:

              readom: I/O error. test unit ready: scsi sendcmd: no error
              CDB:  00 20 00 00 00 00
              status: 0x2 (CHECK CONDITION)
              Sense Bytes: 70 00 05 00 00 00 00 0A 00 00 00 00 25 00 00 00 00 00
              Sense Key: 0x5 Illegal Request, Segment 0
              Sense Code: 0x25 Qual 0x00 (logical unit not supported) Fru 0x0
              Sense flags: Blk 0 (not valid)
              cmd finished after 0.002s timeout 40s

       The first line gives information about the transport  of  the  command.
       The text after the first colon gives the error text for the system call
       The fourth line is a hex dump of the auto request sense information for
       the command.

       The  fifth  line is the error text for the sense key if available, fol-
       lowed by the segment number that is only valid if  the  command  was  a
       copy  command. If the error message is not directly related to the cur-
       rent command, the text deferred error is appended.

       The sixth line is the error text for the sense code and the sense qual-
       ifier if available.  If the type of the device is known, the sense data
       is decoded from tables in scsierrs.c .  The text  is  followed  by  the
       error value for a field replaceable unit.

       The  seventh line prints the block number that is related to the failed
       command and text for several error flags. The block number may  not  be
       valid.

       The eight line reports the timeout set up for this command and the time
       that the command really needed to complete.



BUGS

       The readom program described here is the Cdrkit spinoff from the origi-
       nal readcd application (see AUTHOR section for details). It may contain
       bugs not present in the original implementation.

       It is definitely less portable than the original implementation.

       For platform specific bugs, see the corresponding README.platform  file
       in the Cdrkit documentation (eg. README.linux).



MAILING LISTS

       If you want to actively take part on the development of readom, you may
       join the developer mailing list via this URL:

       http://alioth.debian.org/mail/?group_id=31006

       The mail address of the list is: debburn-devel@lists.alioth.debian.org






AUTHOR

       Joerg Schilling
       Seestr. 110
       D-13353 Berlin
       Germany


       This is application is a spinoff from the  original  implementation  of

       submit@bugs.debian.org

       writing  at  least  a  short description into the Subject and "Package:
       cdrkit" into the first line of the mail body.


SOURCES

       [1] Cdrtools 2.01.01a08 from May 2006, http://cdrecord.berlios.de




Joerg Schilling                   Version 2.0                        READOM(1)

Man(1) output converted with man2html