## SYNOPSIS

           cdrecord [ general options ] dev=device [ track options  ]
           track1...trackn

## DESCRIPTION

           Cdrecord  is used to record data or audio Compact Discs on
           an Orange Book CD-Recorder.

           The  device  refers  to  scsibus/target/lun  of  the   CD-
           Recorder.  Communication  on  SunOS  is done with the SCSI
           general driver scg.  Other operating systems are  using  a
           library  simulation  of  this driver.  Possible syntax is:
           dev= scsibus,target,lun or dev= target,lun.  In the latter
           case,  the  CD-Recorder has to be connected to the default
           SCSI bus of the machine.   Scsibus,  target  and  lun  are
           integer numbers.  Some operating systems or SCSI transport
           implementations may require to specify a filename in addi
           tion.   In this case the correct syntax for the device is:
           dev= devicename:scsibus,target,lun or dev= devicename:tar
           get,lun.   If  the  name  of the device node that has been
           specified on such a system  refers  to  exactly  one  SCSI
           device,  a shorthand in the form dev= devicename:@ or dev=
           devicename:@,lun may  be  used  instead  of  dev=  device
           name:scsibus,target,lun.

           To  access  remote  SCSI  devices, you need to prepend the
           SCSI device name by a remote device indicator. The  remote
           device   indicator   is   either   REMOTE:user@host:  or
           REMOTE:host:
           A valid remote SCSI device name may be:  REMOTE:user@host:
           to     allow     remote     SCSI     bus    scanning    or
           REMOTE:user@host:1,0,0 to access the SCSI device  at  host
           connected to SCSI bus # 1,target 0 lun 0.

           To access SCSI devices via alternate transport layers, you
           need to prepend the SCSI device name by a transport  layer
           indicator.  The transport layer indicator may be something
           like USCSI: or ATAPI:.  To get a list of supported  trans
           port layers for your platform, use dev= HELP:

           To  make cdrecord portable to all UNIX platforms, the syn
           tax dev= devicename:scsibus,target,lun is preferred as  is
           hides  OS  specific  knowledge about device names from the
           user.  A specific OS must not necessarily support a way to
           specify a real device file name nor a way to specify scsi
           bus,target,lun.

           On SVr4 compliant systems, cdrecord uses the the real time
           class to get the highest scheduling priority that is  pos
           sible (higher than all kernel processes).  On systems with
           POSIX  real  time  scheduling  cdrecord  uses  real   time
           scheduling  too,  but  may  not be able to gain a priority
           that is higher than all kernel processes.

           In Track At Once mode, each track corresponds to a  single
           file  that  contains the prepared data for that track.  If
           the argument is `-',  standard  input  is  used  for  that
           track.  Only one track may be taken from stdin.

## GENERAL OPTIONS

           General  options  must  be  before  any track file name or
           track option.

           -version
                  Print version information and exit.

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

           -V     Increment the verbose level in respect of SCSI com
                  mand  transport  by one.  This helps to debug prob
                  lems during the writing 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  pro
                  cess and may be the reason for a buffer underrun.

           debug=#, -d
                  Set  the  misc  debug  value to # (with debug=#) or
                  increment the misc debug level by one (with -d). If
                  you  specify -dd, this equals to debug=2.  This may
                  help to find problems while opening  a  driver  for
                  libscg  as  well  as  with  sector sizes and sector
                  types.  Using -debug slows down the process and may
                  be the reason for a buffer underrun.

           kdebug=#, kd=#
                  Tell  the  scg-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.

           -force Force  to  continue on some errors. Be careful when
                  nect.  These systems will freeze while blanking  or
                  fixating  a CD/DVD or while a DVD writer is filling
                  up a session to the  minimum  amount  (approx.  800
                  MB).  Setting the -immed flag will request the com
                  mand to return immediately while the operation pro
                  ceeds  in background, making the bus usable for the
                  other devices and avoiding the system freeze.  This
                  is  an  experimental feature which may work or not,
                  depending on the model of  the  CD/DVD  writer.   A
                  correct  solution  would  be  to  set  up a correct
                  cabling but there seem to be notebooks around  that
                  have been set up the wrong way by the manufacturer.
                  As it is impossible to fix this  problem  in  note
                  books, the -immed option has been added.

                  A second experimental feature of the -immed flag is
                  to tell cdrecord to try to wait  short  times  wile
                  writing  to the media. This is expected to free the
                  IDE bus if the CD/DVD writer and  the  data  source
                  are  connected to the same IDE cable. In this case,
                  the CD/DVD writer would otherwise usually block the
                  IDE  bus for nearly all the time making it impossi
                  ble to fetch data from the source drive.  See  also
                  minbuf= and -v option.

                  Use  both  features  at your own risk.  It it turns
                  out that it would make sense  to  have  a  separate
                  option  for  the  the  wait  feature,  write to the
                  author and convince him.

           minbuf=value
                  The # minbuf= options allows to define the  minimum
                  drive  buffer fill ratio for the experimental ATAPI
                  wait mode that is intended to free the IDE  bus  to
                  allow hard disk and CD/DVD writer to be on the same
                  IDE cable.  As the wait mode currently  only  works
                  when  the  verbose  option  -v  has been specified,
                  cdrecord implies the verbose  option  in  case  the
                  -immed  or  minbuf=  option  have  been  specified.
                  Valid values for minbuf= are between 25 and 95  for
                  25%...95% minimum drive buffer fill ratio.

           -dummy The  CD-Recorder  will  go through all steps of the
                  recording process, but the laser is turned off dur
                  ing  this procedure.  It is recommended to run sev
                  eral tests before actually  writing  to  a  Compact
                  Disk  or  Digital Versatile Disk, if the timing and
                  load response of the system is not known.

           -dao   Set SAO (Session At Once)  mode  which  is  usually
                  called  Disk  At  Once  mode.   This currently only
                  works with MMC drives that support Session At  Once
                  -raw96r or -raw16 mode, you should give it  a  try.
                  There are several CD writers with bad firmware that
                  result in broken disks when writing in TAO  or  SAO
                  mode.  Writing data disks in raw mode needs signif
                  icantly more CPU time than other  write  modes.  If
                  your  CPU  is  too  slow, this may result in buffer
                  underruns.

           -raw96p
                  Select Set RAW writing mode with 2352 byte  sectors
                  plus 96 bytes of packed P-W subchannel data result
                  ing in a sector size of 2448 bytes.   This  is  the
                  less  preferred  raw  writing  mode  as  only a few
                  recorders support it and some  of  these  recorders
                  have  bugs  in  the firmware implementation.  Don't
                  use this mode if your recorder supports -raw96r  or
                  -raw16.   Writing data disks in raw mode needs sig
                  nificantly more CPU time than other write modes. If
                  your  CPU  is  too  slow, this may result in buffer
                  underruns.

           -raw16 Select Set RAW writing mode with 2352 byte  sectors
                  plus  6 bytes of P-Q subchannel data resulting in a
                  sector size of 2368 bytes.  If a recorder does  not
                  support  -raw96r, this is the preferred raw writing
                  mode.  It  does  not  allow  to  write  CD-Text  or
                  CD+Graphics  but it is the only raw writing mode in
                  cheap CD writers.  As these cheap writers  in  most
                  cases  do  not  support  -dao mode.  Don't use this
                  mode if your recorder  supports  -raw96r.   Writing
                  data disks in raw mode needs significantly more CPU
                  time than other write modes. If  your  CPU  is  too
                  slow, this may result in buffer underruns.

           -multi Allow  multi  session  CD's  to  be made. This flag
                  needs to be present on all sessions of a multi ses
                  sion disk, except you want to create a session that
                  will be the last session on the media.   The  fixa
                  tion  will  be  done  in  a way that allows the CD-
                  Recorder to append additional sessions later.  This
                  is done by generation a TOC with a link to the next
                  program area. The so generated media  is  not  100%
                  compatible   to   manufactured   CD's  (except  for
                  CDplus).  Use only for recording of  multi  session
                  CD's.  If this option is present, the default track
                  type is CD-ROM XA mode 2.  The Sony drives have  no
                  hardware support for CD-ROM XA mode 2.  You have to
                  specify the -data option in order to  create  multi
                  session disks on these drives.  As long as cdrecord
                  does not have a coder for converting  data  sectors
                  to  audio sectors, you need to force CD-ROM sectors
                  by including the -data option if you like to record
                  of a CD.  With this option, cdrecord will work with
                  CD-R drives and with CD-ROM drives.

           -atip  Retrieve and print out the ATIP (absolute  Time  in
                  Pregroove)  info  of  a CD/DVD recordable or CD/DVD
                  rewritable media.  With this option, cdrecord  will
                  try  to retrieve the ATIP info. If the actual drive
                  does not support to read the ATIP info, it  may  be
                  that  only  a reduced set of information records or
                  even nothing is displayed. Only a limited number of
                  MMC compliant drives support to read the ATIP info.

                  If cdrecord is able to retrieve the  lead-in  start
                  time  for  the first session, it will try to decode
                  and print the manufacturer  info  from  the  media.
                  DVD  media  dos not have atip information but there
                  is equivalent prerecorded information that is  read
                  out and printed.

           -fix   The disk will only be fixated (i.e. a TOC for a CD-
                  Reader will be written).  This may be used, if  for
                  some  reason the disk has been written but not fix
                  ated. This option currently does not work with  old
                  TEAC drives (CD-R50S and CD-R55S).

           -nofix Do  not  fixate  the disk after writing the tracks.
                  This may be used to create an audio disk in  steps.
                  An un-fixated disk can usually not be used on a non
                  CD-writer type drive but there are audio CD players
                  that will be able to play such a disk.

           -waiti Wait  for  input  to  become  available on standard
                  input before trying to open the SCSI  driver.  This
                  allows cdrecord to read it's input from a pipe even
                  when writing additional sessions to a multi session
                  disk.  When writing another session to a multi ses
                  sion disk, mkisofs needs to read  the  old  session
                  from the device before writing output.  This cannot
                  be done if cdrecord opens the SCSI  driver  at  the
                  same time.

           -load  Load  the  media  and  exit. This only works with a
                  tray loading mechanism but seems to be useful  when
                  using the Kodak disk transporter.

           -eject Eject  disk  after  doing  the  work.  Some Devices
                  (e.g. Philips) need to eject the medium before cre
                  ating  a  new disk. Doing a -dummy test and immedi
                  ately creating a real disk would not work on  these
                  devices.

           speed=#
                              types.

                  all         Blank the entire disk. This may take  a
                              long time.

                  fast        Minimally  blank the disk. This results
                              in erasing the PMA,  the  TOC  and  the
                              pregap.

                  track       Blank a track.

                  unreserve   Unreserve a reserved track.

                  trtail      Blank the tail of a track.

                  unclose     Unclose last session.

                  session     Blank the last session.
           Not  all drives support all blanking types. It may be nec
           essary to use blank=all if a  drive  reports  a  specified
           command  as  being  invalid.   If  used  together with the
           -force flag, this option may be used to blank CD-RW  disks
           that  otherwise  cannot be blanked. Note that you may need
           to specify blank=all because some drives will not continue
           with  certain  types  of  bad  CD-RW disks. Note also that
           cdecord does it's best if the -force flag is used  but  it
           finally depends on the drive's firmware whether the blank
           ing operation will succeed or not.

           fs=#   Set the fifo (ring buffer) size to #.  You may  use
                  the  same  method  as  in dd(1), sdd(1) or star(1).
                  The number representing the size is taken in  bytes
                  unless  otherwise  specified.   If a number is fol
                  lowed directly by the letter `b', `k', `m', `s'  of
                  `f',   the   size   is  multiplied  by  512,  1024,
                  1024*1024, 2048 or 2352.  If the size  consists  of
                  numbers  separated by `x' or `*', multiplication of
                  the two numbers is performed.  Thus fs=10x63k  will
                  specify a fifo size of 630 kBytes.

                  The size specified by the fs= argument includes the
                  shared memory that is  needed  for  administration.
                  This  is  at  least  one page of memory.  If no fs=
                  option is present, cdrecord will  try  to  get  the
                  fifo  size value from the CDR_FIFOSIZE environment.
                  The default fifo size is currently 4 MB.

                  The fifo is used to increase buffering for the real
                  time writing process.  It allows to run a pipe from
                  mkisofs directly into cdrecord.   If  the  fifo  is
                  active  and  a  pipe  from mkisofs into cdrecord is
                  used to create a CD, cdrecord will abort  prior  to
                  only  MMU page table entries for 16 MBytes per pro
                  cess. Using more than 14 MBytes for  the  fifo  may
                  cause  the  operating  system in this case to spend
                  much time to  constantly  reload  the  MMU  tables.
                  Newer  machines from Sun do not have this MMU hard
                  ware problem. I have no information on  PC-hardware
                  reflecting this problem.

                  If  you  have  buffer underruns or similar problems
                  and observe a zero fifo empty count, you have hard
                  ware problems. The fifo size in this case is suffi
                  cient.

           dev=target
                  Sets the SCSI target for the CD-Recorder, see notes
                  above.  A typical device specification is dev=6,0 .
                  If a filename must be provided  together  with  the
                  numerical  target  specification,  the  filename is
                  implementation specific.  The correct  filename  in
                  this case can be found in the system specific manu
                  als of the target operating system.  On  a  FreeBSD
                  system  without  CAM  support,  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 different  targets  on  this
                  virtual SCSI bus.

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

                  If the argument to the dev= option does not contain
                  the  characters  ',', '/', '@' or ':', it is inter
                  preted as an label name that may be  found  in  the
                  file /etc/default/cdrecord (see FILES section).

           gracetime=#
                  Set  the  grace  time before starting to write to #
                  seconds.  Values below 2 seconds are not allowed.

           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 timeout, you may try
                  to raise the default SCSI command timeout above the
                  timeout  value  of the failed command.  If the com
                  mand runs correctly with a raised command  timeout,
                  please report the better timeout value and the cor
                  driver  is that the -speed or -dummy will not work.

                  There are two special driver entries in  the  list:
                  cdr_simul  and dvd_simul.  These driver entries are
                  designed to make timing tests at any speed or  tim
                  ing tests for drives that do not support the -dummy
                  option.  The simulation drivers implement  a  drive
                  with  a  buffer size of 1MB that can be changed via
                  the CDR_SIMUL_BUFSIZE  environment  variable.   The
                  simulation driver correctly simulates even a buffer
                  underrun condition.  If the -dummy option  is  pre
                  sent,  the  simulation  is not aborted in case of a
                  buffer underrun.

           driveropts=option list
                  Set driver specific options. The options are speci
                  fied  a  comma  separated  list.   To get a list of
                  valid options use driveropts=help together with the
                  -checkdrive  option.   Currently implemented driver
                  options are:

                  burnfree
                         Turn the support for  Buffer  Underrun  Free
                         writing on.  This only works for drives that
                         support  Buffer  Underrun  Free  technology.
                         This  may be called: Sanyo BURN-Proof, Ricoh
                         Just-Link, Yamaha Lossless-Link or  similar.

                         The   default  is  to  turn  BURN-Free  off,
                         regardless of the defaults of the drive.

                  noburnfree
                         Turn the support for  Buffer  Underrun  Free
                         writing off.

                  varirec=value
                         Turn  on  the  Plextor VariRec writing mode.
                         The mandatory parameter value is  the  laser
                         power  offset  and currently may be selected
                         from -2, -1, 0, 1, 2.  In addition, you need
                         to  set  the  write  speed  to 4 in order to
                         allow VariRec to work.

                  audiomaster
                         Turn on the Yahama Audio Master Q. R.   fea
                         ture  which  usually  should  result in high
                         quality CDs that have less reading  problems
                         in  HiFi players.  As this is implemented as
                         a variant of the Session at Once write mode,
                         it  will  only  work if you select SAO write
                         mode and there is no need to  turn  it  off.
                         The  Audio Master mode will work with a lim
                         Yamaha)  allow to force the drive to use the
                         selected speed even if the medium is so  bad
                         that  the  write quality would be poor. This
                         option tells such a drive to  force  to  use
                         the  selected speed regardless of the medium
                         quality.

                         Use this option with extreme care  and  note
                         that  the  drive  should  know  better which
                         medium will work at full speed.  The default
                         is to turn forcespeed off, regardless of the
                         defaults of the drive.

                  noforcespeed
                         Turn off the force speed feature.

                  tattooinfo
                         Use this option together with -checkdrive to
                         retrieve  the image size information for the
                         Yamaha DiskT@2 feature.  The  images  always
                         have a line length of 3744 pixel.  Line num
                         ber 0 (radius 0) is mapped to the center  of
                         the  disk.   If you know the inner and outer
                         radius you will be able to create a pre dis
                         torted  image  that  later may appear undis
                         torted on the disk.

                  tattoofile=name
                         Use this option together with -checkdrive to
                         write  an  image  prepared  for  the  Yamaha
                         DiskT@2 feature to  the  medium.   The  file
                         must  be a file with raw image B&W data (one
                         byte per pixel) in a size as retrieved by  a
                         previous  call  to tattoofile=name .  If the
                         size of the image equals the maximum  possi
                         ble  size  (3744 x 320 pixel), cdrecord will
                         use the first part of the file.  This  first
                         part  then  will  be written to the leftover
                         space on the CD.

                         Note that the image must be mirrored  to  be
                         readable from the pick up side of the CD.

           -checkdrive
                  Checks if a driver for the current drive is present
                  and exit.  If the drive is a known drive,  cdrecord
                  uses exit code 0.

           -prcap Print the drive capabilities for SCSI-3/mmc compli
                  ant drives as obtained from mode page 0x2A.  Values
                  marked  with kB use 1000 bytes as kilo-byte, values
                  marked with KB use 1024 bytes as Kilo-byte.

           -overburn
                  Allow cdrecord to write more than the official size
                  of  a  medium. This feature is usually called over
                  burning and depends on the  fact  that  most  blank
                  media  may  hold more space than the official size.
                  As the official size of the lead-out  area  on  the
                  disk  is  90 seconds (6750 sectors) and a disk usu
                  ally works if there are at  least  150  sectors  of
                  lead  out,  all media may be overburned by at least
                  88 seconds (6600 sectors).  Most CD recorders  only
                  do overburning in SAO or RAW mode. Known exceptions
                  are TEAC CD-R50S, TEAC CD-R55S  and  the  Panasonic
                  CW-7502.   Some  drives do now allow to overburn as
                  much as you might like and limit the size of  a  CD
                  to  e.g.  76  minutes.  This problem may be circum
                  vented by writing the CD in RAW mode  because  this
                  way the drive has no chance to find the size before
                  starting to burn.  There is no guarantee that  your
                  drive  supports overburning at all.  Make a test to
                  check if your drive implements the feature.

           -ignsize
                  Ignore the known size of the medium.  This  options
                  should  be  used  with extreme care, it exists only
                  for debugging purposes don't use it for other  rea
                  sons.   It  is  not needed to write disks with more
                  than the nominal  capacity.   This  option  implies
                  -overburn.

           -useinfo
                  Use  *.inf  files  to  overwrite audio options.  If
                  this option is used, the pregap size information is
                  read  from  the  *.inf file that is associated with
                  the file that contains the audio data for a  track.

           defpregap=#
                  Set  the default pre-gap size for all tracks except
                  track number 1.  This option currently  only  makes
                  sense  with  the TEAC drive when creating track-at-
                  once disks without the 2 second silence before each
                  track.
                  This option may go away in future.

           -packet
                  Set  Packet  writing mode.  This is an experimental
                  interface.

           pktsize=#
                  Set the packet size to #, forces fixed packet mode.
                  This is an experimental interface.

           -noclose
                  files. If you like to write your own CD-Text infor
                  mation, edit the *.inf files with a text editor and
                  change the field that are relevant for CD-Text.

           textfile=filename
                  Write CD-Text based on  information  found  in  the
                  binary  file  filename.   This  file  must  contain
                  information in a data format defined in the  SCSI-3
                  MMC-2  standard  and in the Red Book. The four byte
                  size header that is defined in the SCSI standard is
                  optional and allows to make the recognition of cor
                  rect data less ambiguous.  This is the best  option
                  to  be  used to copy CD-Text data from existing CDs
                  that already carry CD-Text information. To get data
                  in  a  format suitable for this option use cdrecord
                  -vv -toc to extract the information from disk.

## TRACK OPTIONS

           Track options may be mixed with track file names.

           isrc=ISRC_number
                  Set the International Standard Recording Number for
                  the next track to ISRC_number.

           index=list
                  Sets  an  index  list for the next track.  In index
                  list is a comma separated list of numbers that  are
                  counting from index 1. The first entry in this list
                  must contain a 0, the following numbers must be  an
                  ascending  list  of  numbers (counting in 1/75 sec
                  onds) that represent the start of the  indices.  An
                  index  list  in the form: 0,7500,15000 sets index 1
                  to the start of the track, index 2 100 seconds from
                  the start of the track and index 3 200 seconds from
                  the start of the track.

           -audio If this flag is present, all subsequent tracks  are
                  written  in  CD-DA (similar to Red Book) audio for
                  mat.  The file with data  for  this  tracks  should
                  contain  stereo,  16-bit  digital  audio with 44100
                  samples/s.  The byte order should be the following:
                  MSB  left, LSB left, MSB right, LSB right, MSB left
                  and so on. The track should be a multiple  of  2352
                  bytes.  It  is not possible to put the master image
                  of an audio track on a raw disk because  data  will
                  be  read  in  multiple  of  2352  bytes  during the
                  recording process.

                  If a filename ends in .au or .wav the file is  con
                  sidered   to  be  a  structured  audio  data  file.
                  Cdrecord assumes that the file in this  case  is  a
                  16-bit  stereo  samples in PCM coding at 44100 sam
                  ples/second.

                  Using other structured audio data formats as  input
                  to  cdrecord  will usually work if the structure of
                  the data is the structure described above (raw  pcm
                  data  in  big-endian  byte order).  However, if the
                  data format includes a  header,  you  will  hear  a
                  click at the start of a track.

                  If  neither  -data  nor -audio have been specified,
                  cdrecord defaults to -audio for all filenames  that
                  end  in  .au  or  .wav  and  to -data for all other
                  files.

           -swab  If this flag is present, audio data is  assumed  to
                  be  in  byte-swapped  (little-endian)  order.  Some
                  types of CD-Writers e.g. Yamaha, Sony and  the  new
                  SCSI-3/mmc  drives  require  audio  data to be pre
                  sented in little-endian order, while other  writers
                  require  audio  data  to  be  presented in the big-
                  endian (network) byte order normally  used  by  the
                  SCSI  protocol.   Cdrecord  knows  if a CD-Recorder
                  needs audio data in big-  or  little-endian  order,
                  and  corrects  the byte order of the data stream to
                  match the needs of the recorder.  You only need the
                  -swab flag if your data stream is in Intel (little-
                  endian) byte order.

                  Note that the verbose output of cdrecord will  show
                  you if swapping is necessary to make the byte order
                  of the input data fit the required  byte  order  of
                  the  recorder.   Cdrecord  will not show you if the
                  -swab flag was actually present for a track.

           -data  If this flag is present, all subsequent tracks  are
                  written  in CD-ROM mode 1 (Yellow Book) format. The
                  data is a multiple of 2048 bytes.   The  file  with
                  track data should contain an ISO-9660 or Rock Ridge
                  filesystem image (see mkisofs for more details). If
                  the track data is an ufs filesystem image, fragment
                  size should be set to 2 KB or  more  to  allow  CR-
                  drives  with  2  KB  sector  size to to be used for
                  reading.

                  -data is the default, if no other flag is  present.

                  If  neither  -data  nor -audio have been specified,
                  cdrecord defaults to -audio for all filenames  that
                  end  in  .au  or  .wav  and  to -data for all other
                  files.

                  2048 bytes.

           -isosize
                  Use the ISO-9660 file system size as  the  size  of
                  the  next track.  This option is needed if you want
                  cdrecord to directly read the image of a track from
                  a  raw  disk  partition or from a TAO master CD. In
                  the first case the option  -isosize  is  needed  to
                  limit  the  size  of  the CD to the size of the ISO
                  filesystem.  In the second case the option -isosize
                  is  needed to prevent cdrecord from reading the two
                  run out  blocks  that  are  appended  by  each  CD-
                  recorder  in  track at once mode. These two run out
                  blocks cannot be read  and  would  cause  a  buffer
                  under  run  that  would cause a defective copy.  Do
                  not use this option on files created by mkisofs and
                  in  case  cdrecord reads the track data from stdin.
                  In the first case, you would prevent cdrecord  from
                  writing   the  amount  of  padding  that  has  been
                  appended by mkisofs and in the latter case, it will
                  not work because stdin is not seekable.

                  If  -isosize  is  used  for  a track, cdrecord will
                  automatically add padding for this track as if  the
                  -pad option has been used but the amount of padding
                  may be less than the padding  written  by  mkisofs.
                  Note  that if you use -isosize on a track that con
                  tains Sparc boot information, the boot  information
                  will be lost.

                  Note also that this option cannot be used to deter
                  mine the size of a file system if the multi session
                  option is present.

           -pad   If  the track is a data track, 15 sectors of zeroed
                  data will be added to the end of this and each sub
                  sequent  data track.  In this case, the -pad option
                  is superseded  by  the  padsize=  option.  It  will
                  remain  however as a shorthand for padsize=15s.  If
                  the -pad option refers to an audio track,  cdrecord
                  will  pad  the  audio data to be a multiple of 2352
                  bytes.  The audio data padding is done with  binary
                  zeroes which is equal to absolute silence.

                  -pad remains valid until disabled by -nopad.

           padsize=#
                  Set the amount of data to be appended as padding to
                  the next track to #.  Opposed to  the  behavior  of
                  the -pad option, the value for padsize= is reset to
                  zero for each new track.  Cdrecord assumes a sector
                  size  of  2048 bytes for the padsize= option, inde
                  much overburning is possible with a specific media.

           -nopad Do not pad the following tracks - the default.

           -shorttrack
                  Allow  all  subsequent  tracks  to violate the Read
                  Book track length standard which requires a minimum
                  track  length  of  4  seconds.  This option is only
                  useful when used in  SAO  or  RAW  mode.   Not  all
                  drives  support  this  feature.  The  drive must be
                  accept the resulting CUE sheet or support RAW writ
                  ing.

           -noshorttrack
                  Re-enforce  the  Red  Book  track  length standard.
                  Tracks must be at least 4 seconds.

           pregap=#
                  Set the  pre-gap size for  the  next  track.   This
                  option  currently  only  makes  sense with the TEAC
                  drive when creating track-at-once disks without the
                  2 second silence before each track.
                  This option may go away in future.

           -preemp
                  If this flag is present, all TOC entries for subse
                  quent audio tracks will  indicate  that  the  audio
                  data  has been sampled with 50/15 µsec preemphasis.
                  The data, however is not modified during  the  pro
                  cess  of  transferring  from  file  to  disk.  This
                  option has no effect on data tracks.

           -nopreemp
                  If this flag is present, all TOC entries for subse
                  quent  audio  tracks  will  indicate that the audio
                  data has been mastered with linear data -  this  is
                  the default.

           -copy  If this flag is present, all TOC entries for subse
                  quent audio tracks of the resulting CD  will  indi
                  cate  that  the  audio  data  has  permission to be
                  copied without limit.  This option has no effect on
                  data tracks.

           -nocopy
                  If this flag is present, all TOC entries for subse
                  quent audio tracks of the resulting CD  will  indi
                  cate  that  the  audio  data  has  permission to be
                  copied only once for personal use  -  this  is  the
                  default.

           -scms  If this flag is present, all TOC entries for subse
                  the TEAC programming interface, even  in  Track  at
                  Once  mode, cdrecord needs to know the size of each
                  track before starting to write the disk.   Cdrecord
                  now  checks  this  and  aborts  before  starting to
                  write.  If  this  happens  you  will  need  to  run
                  mkisofs -print-size before and use the output (with
                  `s' appended) as an argument to the  tsize=  option
                  of cdrecord (e.g. tsize=250000s).
                  See fs= option for possible arguments.

## EXAMPLES

           For  all  examples  below, it will be assumed that the CD-
           Recorder is connected to  the  primary  SCSI  bus  of  the
           machine. The SCSI target id is set to 2.

           To  record  a pure CD-ROM at double speed, using data from
           the file cdimage.raw:

               cdrecord -v speed=2 dev=2,0 cdimage.raw

           To create an image for a ISO  9660  filesystem  with  Rock
           Ridge extensions:

               mkisofs -R -o cdimage.raw /home/joerg/master/tree

           To  check  the  resulting  file  before  writing  to CD on
           Solaris:

               mount -r -F  fbk  -o  type=hsfs  /dev/fbk0:cdimage.raw
           /mnt

           On Linux:

               mount cdimage.raw -r -t iso9660 -o loop /mnt

           Go on with:
               ls -lR /mnt
               umount /mnt

           If  the  overall speed of the system is sufficient and the
           structure of the filesystem is not too  complex,  cdrecord
           will  run  without  creating  an  image  of  the  ISO 9660
           filesystem. Simply run the pipeline:

               mkisofs -R /master/tree | cdrecord  -v  fs=6m  speed=2
           dev=2,0 -

           The   recommended  minimum  fifo  size  for  running  this
           pipeline is 4 MBytes.  As the default fifo size is  4  MB,
           the  fs= option needs only be present if you want to use a
           different fifo size.  If your system is loaded, you should
           Cdrecord  runs  at  priority 59 on Solaris, you should run
           mkisofs at no more than priority 58. On other systems, you
           should run mkisofs at no less than nice --18.

           Creating  a  CD-ROM  without file system image on disk has
           been tested on a Sparcstation-2 with a Yamaha CDR-400.  It
           did work up to quad speed when the machine was not loaded.
           A faster machine may be able to handle quad speed also  in
           the loaded case.

           To  record a pure CD-DA (audio) at single speed, with each
           track  contained  in   a   file   named   track01.cdaudio,
           track02.cdaudio, etc:

               cdrecord -v speed=1 dev=2,0 -audio track*.cdaudio

           To  check  if  it  will  be ok to use double speed for the
           example above.  Use the dummy write option:

               cdrecord -v -dummy speed=2 dev=2,0 -audio track*.cdau
           dio

           To record a mixed-mode CD with an ISO 9660 filesystem from
           cdimage.raw on the first track,  the  other  tracks  being
           audio tracks from the files track01.cdaudio, track02.cdau
           dio, etc:

               cdrecord  -v   -dummy   dev=2,0   cdimage.raw   -audio
           track*.cdaudio

           To  handle  drives  that  need to know the size of a track
           before starting to write, first run

               mkisofs -R -q -print-size /master/tree

           and then run

               mkisofs -R /master/tree  |  cdrecord  speed=2  dev=2,0
           tsize=XXXs -

           where XXX is replaced by the output of the previous run of
           mkisofs.

           To copy an audio CD in the most accurate way, first run

               cdda2wav -vall cddb=0 -D2,0 -B -Owav

           and then run

               cdrecord -v dev=2,0 -dao -useinfo -text  *.wav

           This will try copy  track  indices  and  to  read  CD-Text
                  -speed option).

           CDR_FIFOSIZE
                  Sets  the  default  size of the FIFO (see also fs=#
                  option).

           CDR_FORCERAWSPEED
                  If this environment variable is set, cdrecord  will
                  allow you to write at the full RAW encoding speed a
                  single CPU supports.  This will create high  poten
                  tial of buffer underruns. Use with care.

           RSH    If  the RSH environment is present, the remote con
                  nection 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  connec
                  tion.

                  Note  that this forces cdrecord to create a pipe to
                  the  rsh(1)  program  and  disallows  cdrecord   to
                  directly  access  the  network socket to the remote
                  server.  This makes it impossible to set up perfor
                  mance parameters and slows down the connection com
                  pared 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.

## FILES

           /etc/default/cdrecord
                  Default values can be set for the following options
                  in  /etc/default/cdrecord.  For example: CDR_FIFOS
                  IZE=8m or CDR_SPEED=2

                  CDR_DEVICE
                         This may either  hold  a  device  identifier
                         that  is  suitable  to  the open call of the
                         SCSI transport library or  a  label  in  the
                         file  /etc/default/cdrecord  that  allows to
                         identify a specific drive on the system.

                  CDR_SPEED
                         Sets the default  speed  value  for  writing
                         (see also -speed option).

                  CDR_FIFOSIZE
                         values for speed and fifosize may be set  to
                         -1  to  tell  cdrecord  to  use  the  global
                         defaults.  A typical line may look this way:

                         teac1= 0,5,0   4    8m

                         yamaha= 1,6,0  -1   -1

                         This tells cdrecord that a drive named teac1
                         is at scsibus 0, target 5, lun 0 and  should
                         be  used  with  speed 4 and a FIFO size of 8
                         MB.  A second drive may be found at  scsibus
                         1,  target  6,  lun  0  and uses the default
                         speed and the default FIFO size.

## SEE ALSO

           cdda2wav(1),  readcd(1),   scg(7),   fbk(7),   mkisofs(8),
           rcmd(3), ssh(1).

## NOTES

           On  Solaris  you need to stop the volume management if you
           like to use the USCSI fallback SCSI transport  code.  Even
           things  like cdrecord -scanbus will not work if the volume
           management is running.

           Disks made in Track At Once mode are  not  suitable  as  a
           master  for  direct  mass  production by CD manufacturers.
           You will need the disk  at  once  option  to  record  such
           disks.   Nevertheless the disks made in Track At Once will
           normally be read in all CD  players.  Some  old  audio  CD
           players however may produce a two second click between two
           audio tracks.

           The minimal size of a track is 4 seconds or  300  sectors.
           If  you  write  smaller  tracks,  the CD-Recorder will add
           dummy blocks. This is not an error, even though the  SCSI-
           error message looks this way.

           Cdrecord  has  been  tested on an upgraded Philips CDD-521
           recorder at single and  double  speed  on  a  SparcStation
           20/502  with  no  problems, slower computer systems should
           work also.  The newer Philips/HP/Plasmon/Grundig drives as
           well  as Yamaha CDR-100 and CDR-102 work also. The Plasmon
           RF-4100 work, but has not  tested  in  multi  session.   A
           Philips  CDD-521 that has not been upgraded will not work.
           The Sony CDU-924 has been tested, but does not support XA-
           mode2  in hardware.  The sony therefore cannot create con
           forming multi session disks.  The  Ricoh  RO-1420C  works,
           but  some  people  seem  to have problems to use them with
           speed=2, try speed=0 in this case.
           sible  while  writing a CD.  If you want to make sure that
           buffer underruns are not caused by your source  disk,  you
           may use the command

               cdrecord -dummy dev=2,0 padsize=600m /dev/null

           to  create  a  disk  that  is entirely made of dummy data.
           Cdrecord needs to  run  as  root  to  get  access  to  the
           /dev/scg?  device nodes and to be able to lock itself into
           memory.

           If you don't want to allow users to become  root  on  your
           system,  cdrecord  may safely be installed suid root. This
           allows all users or a group of users with no  root  privi
           leges  to  use cdrecord.  Cdrecord in this case checks, if
           the real user would have been able to read  the  specified
           files.  To give all user access to use cdrecord, enter:

                chown root /usr/local/bin/cdrecord
                chmod 4711 /usr/local/bin/cdrecord

           To  give  a  restricted  group of users access to cdrecord
           enter:

                chown root /usr/local/bin/cdrecord
                chgrp cdburners /usr/local/bin/cdrecord
                chmod 4710 /usr/local/bin/cdrecord

           and add a group cdburners on your system.

           Never give write permissions for non  root  users  to  the
           /dev/scg?   devices  unless  you  would  allow  anybody to
           read/write/format all your disks.

           You should not connect old drives that do not support dis
           connect/reconnect to either the SCSI bus that is connected
           to the CD-Recorder or the source disk.

           A Compact Disc can have no more than 99 tracks.

           When creating a disc with both audio and data tracks,  the
           data  should  be  on track 1 otherwise you should create a
           CDplus disk which is a multi session disk with  the  first
           session containing the audio tracks and the following ses
           sion containing the data track.

           Many operating systems are not able to read  more  than  a
           single data track, or need special software to do so.

           More  information  on  the  SCSI  command  set of a HP CD-
           Recorder can be found at:

           Unfortunately, the sg driver on Linux has  several  severe
           bugs:

           ·      It  cannot  see if a SCSI command could not be sent
                  at all.

           ·      It cannot get the SCSI status byte.   Cdrecord  for
                  that  reason cannot report failing SCSI commands in
                  some situations.

           ·      It cannot get real DMA count of transfer.  Cdrecord
                  cannot  tell you if there is an DMA residual count.

           ·      It cannot get number of bytes valid in  auto  sense
                  data.  Cdrecord cannot tell you if device transfers
                  no sense data at all.

           ·      It fetches  to  few  data  in  auto  request  sense
                  (CCS/SCSI-2/SCSI-3 needs >= 18).

           The  fifo percent output is computed just after a block of
           data has been written to the CD-Recorder. For this reason,
           there  will  never be 100% fifo fill, while the fifo is in
           streaming mode.

## DIAGNOSTICS

           You have 9 seconds to type ^C to abort cdrecord after  you
           see the message:

           Starting  to  write  CD at speed %d in %s mode for %s ses
           sion.

           A typical error message for a SCSI command looks like:

                  cdrecord: 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 from the view of  the  ker
           nel.  It  usually is: I/O error unless other problems hap
           pen. The next words contain a short  description  for  the
           SCSI command that fails. The rest of the line tells you if
           there were any problems for the transport of  the  command
           over the SCSI bus.  fatal error means that it was not pos
           available,  followed  by  the  segment number that is only
           valid if the command was a copy command. If the error mes
           sage  is  not directly related to the current command, the
           text deferred error is appended.

           The sixth line is the error text for the  sense  code  and
           the  sense  qualifier  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.

           The following message is not an error:
                  Track 01: Total bytes read/written: 2048/2048 (1 sectors).
                  cdrecord: I/O error. flush cache: scsi sendcmd: no error
                  CDB:  35 00 00 00 00 00 00 00 00 00
                  status: 0x2 (CHECK CONDITION)
                  Sense Bytes: F0 00 05 80 00 00 27 0A 00 00 00 00 B5 00 00 00 00 00
                  Sense Key: 0x5 Illegal Request, Segment 0
                  Sense Code: 0xB5 Qual 0x00 (dummy data blocks added) Fru 0x0
                  Sense flags: Blk -2147483609 (valid)
                  cmd finished after 0.002s timeout 40s

           It  simply notifies, that a track that is smaller than the
           minimum size has been expanded to 300 sectors.

## BUGS

           Cdrecord has even more options than ls.

           There should be a recover option  to  make  disks  usable,
           that have been written during a power failure.

## CREDITS

           Bill Swartz    (Bill_Swartz@twolf.com)
                          For helping me with the TEAC driver support

           Aaron Newsome  (aaron.d.newsome@wdc.com)
                          For letting me develop Sony support on  his
                          drive

           Eric Youngdale (eric@andante.jic.com)
                          For supplying mkisofs

           Gadi Oxman     (gadio@netvision.net.il)
                          For tips on the ATAPI standard

           Grant R. Guenther   (grant@torque.net)
                          For creating the first parallel port trans
                          port implementation for Linux.

           Kenneth D. Merry (ken@kdm.org)
                          for  providing  the  CAM  port  for FreeBSD
                          together      with      Michael       Smith
                          (msmith@freebsd.org)

           Heiko Eißfeldt (heiko@hexco.de)
                          for  making libedc_ecc available (needed to
                          write RAW data sectors).

## MAILING LISTS

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

           http://lists.berlios.de/mailman/listinfo/cdrecord-develop
           ers

           The mail address of the list is: cdwrite@other.debian.org

## AUTHOR

           Joerg Schilling
           Seestr. 110
           D-13353 Berlin
           Germany

           Additional information can be found on:
           http://www.fokus.fhg.de/usr/schilling/cdrecord.html

           If you have support questions, send them to:

           cdrecord-support@berlios.de
           or cdwrite@other.debian.org

           Of you have definitely found a bug, send a mail to:

           cdrecord-developers@berlios.de
           or schilling@fokus.fhg.de

           To subscribe, use:

           http://lists.berlios.de/mailman/listinfo/cdrecord-develop
           ers
           or  http://lists.berlios.de/mailman/listinfo/cdrecord-sup
           port