home | help
CDRECORD(1)		     Schily's USER COMMANDS		     CDRECORD(1)

NAME
     cdrecord  -  record  audio or data Compact Disks or Digital Versatile Disks
     from a master

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 or to write DVD media on a DVD-Recorder.

     The  device refers to scsibus/target/lun of the CD/DVD-Recorder. Communica-
     tion 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/DVD-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=  device-
     name:scsibus,target,lun  or dev= devicename:target,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= device-
     name:@,lun may be used instead of dev= devicename: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 RE-
     MOTE: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.

     Cdrecord is completely based on SCSI commands but this is no problem as all
     CD/DVD writers ever made use SCSI commands for the communication. Even  AT-
     API  drives  are just SCSI drives that inherently use the ATA packet inter-
     face as SCSI command transport layer build into the  IDE  (ATA)  transport.
     You  may  need to specify an alternate transport layer on the command  line
     if your OS does not implement a fully integrated  kernel  driver  subsystem
     that  allows  to  access  any drive using SCSI commands via a single unique
     user interface.

     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  sup-
     ported transport layers for your platform, use dev= HELP:

     To  make  cdrecord  portable to all UNIX platforms, the syntax dev= device-
     name:scsibus,target,lun is preferred as  it  hides  OS  specific  knowledge
     about  device  names from the user.  A specific OS may not necessarily sup-
     port a way to specify a real device file name nor a way  to  specify  scsi-
     bus,target,lun.

     Scsibus  0  is the default SCSI bus on the machine. Watch the boot messages
     for more information or look into /var/run/dmesg.boot for more  information
     about the SCSI configuration of your machine.  If you have problems to fig-
     ure out what values for scsibus,target,lun should be used, try the -scanbus
     option of cdrecord described below.

     If  a file /usr/local/etc/cdrecord exists, the parameter to the dev= option
     may also be a drive name label in said file (see FILES section).

     On SVr4 compliant systems, cdrecord uses the real time  class  to	get  the
     highest  scheduling  priority  that  is  possible	(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 order to be able to use the SCSI transport subsystem of the OS,  run  at
     highest  priority and lock itself into core cdrecord either needs to be run
     as root, needs to be installed suid root or must be called via RBACs pfexec
     mechanism.

     In Track At Once mode, each track corresponds to a single	file  that  con-
     tains  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.   In
     the  other write modes, the direct file to track relation may not be imple-
     mented.  In -clone mode, a single file contains  all  data  for  the  whole
     disk.   To  allow DVD writing on platforms that do not implement large file
     support, cdrecord concatenates all file arguments to a  single  track  when
     writing to DVD media.

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 command transport  by
	    one.   This helps to debug problems during the writing process, that
	    occur in the CD/DVD-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 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 de-
	    bug=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 com-
	    mands 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 using this option.
	    Cdrecord implements several checks that prevent you from  doing  un-
	    wanted  things like damaging CD-RW media by improper drives. Many of
	    the sanity checks are disabled when the -force option is used.

	    This option also implements some tricks that will allow you to blank
	    bad CD-RW disks.

     -immed
	    Tell cdrecord to  set  the	SCSI  IMMED  flag  in  certain	commands
	    (load/eject/blank/close_track/close_session).  This can be useful on
	    broken systems with ATAPI harddisk and CD/DVD writer on the same bus
	    or	with  SCSI  systems  that don't use disconnect/reconnect.  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 command to return
	    immediately while the operation proceeds 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 notebooks, the -immed option has been added.

	    A second experimental feature of the -immed flag is to tell cdrecord
	    to	try  to wait short times while writing to the media. This is ex-
	    pected 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 impossible to fetch data from the source drive.  See  also
	    minbuf= and -v option.

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

     minbuf=value
	    The  # minbuf= option 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/DVD-Recorder  will	go  through  all  steps of the recording
	    process, but the laser is turned off during this procedure.   It  is
	    recommended  to  run several tests before actually writing to a Com-
	    pact Disk or Digital Versatile Disk, if the timing and load response
	    of the system is not known.

     -clone
	    Tells cdrecord to handle  images  created  by  readcd  -clone.   The
	    -clone may only be used in conjunction with with the -raw96r or with
	    the  -raw16 option.  Using -clone together with -raw96r is preferred
	    as it allows to write all subchannel data.	The option -raw16 should
	    only be used with drives that do not support  to  write  in  -raw96r
	    mode.

     -dao

     -sao   Set  SAO (Session At Once) mode which is usually called Disk At Once
	    mode.  This currently only works with MMC drives that  support  Ses-
	    sion  At  Once  mode.   Note that cdrecord needs to know the size of
	    each track in advance for this mode (see the mkisofs -print-size op-
	    tion and the EXAMPLES section for more information).

     -tao   Set TAO (Track At Once) writing mode.  This  is  the  default  write
	    mode  in  previous	cdrecord versions.  With most drives, this write
	    mode is required for multi session recording.

     -raw   Set RAW writing mode.  Using this option defaults to -raw96r.   Note
	    that  cdrecord  needs  to know the size of each track in advance for
	    this mode (see the mkisofs -print-size option and the EXAMPLES  sec-
	    tion for more information).

     -raw96r
	    Select  Set RAW writing mode with 2352 byte sectors plus 96 bytes of
	    raw P-W subchannel data resulting in a sector size	of  2448  bytes.
	    This is the preferred raw writing mode as it gives best control over
	    the CD writing process.  If you find any problems with the layout of
	    a  disk or with sub channel content (e.g. wrong times on the display
	    when playing the CD) and your drive supports to write in -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  significantly  more
	    CPU  time  than other write modes. If your CPU is too slow, this may
	    result in buffer underruns.  Note that cdrecord needs  to  know  the
	    size of each track in advance for this mode (see the mkisofs -print-
	    size option and the EXAMPLES section for more information).

     -raw96p
	    Select  Set RAW writing mode with 2352 byte sectors plus 96 bytes of
	    packed P-W subchannel data resulting 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 im-
	    plementation.  Don't use this mode if your recorder supports -raw96r
	    or	-raw16.  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.  Note that cdrecord needs to know the
	    size of each track in advance for this mode (see the mkisofs -print-
	    size option and the EXAMPLES section for more information).

     -raw16
	    Select Set RAW writing mode with 2352 byte sectors plus 16 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 writ-
	    ers  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.   Note  that
	    cdrecord  needs  to  know the size of each track in advance for this
	    mode (see the mkisofs -print-size option and  the  EXAMPLES  section
	    for more information).

     -multi
	    Allow multi session CDs to be made. This flag needs to be present on
	    all  sessions  of  a multi session disk, except you want to create a
	    session that will be the last session on the  media.   The	fixation
	    will  be done in a way that allows the CD/DVD-Recorder to append ad-
	    ditional 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 CDs (except for CDplus).   Use  only  for
	    recording  of multi session CDs.  If this option is present, the de-
	    fault track type is CD-ROM XA mode 2 form 1 and the sector	size  is
	    2048  bytes.  The XA sector subheaders will be created by the drive.
	    The Sony drives have no hardware support for CD-ROM XA mode  2  form
	    1.	 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 a multisession disk in SAO mode.  Not all drives allow multi-
	    session CDs in SAO mode.

     -msinfo
	    Retrieve  multi  session info in a form suitable for mkisofs-1.10 or
	    later.

	    This option makes only sense with a CD that contains  at  least  one
	    closed  session  and  is  appendable (not finally closed yet).  Some
	    drives create error messages if you try to	get  the  multi  session
	    info for a disk that is not suitable for this operation.

     -toc   Retrieve  and  print  out the table of content or PMA 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 Pre-groove) info
	    of a CD/DVD recordable or CD/DVD re-writable media.  With  this  op-
	    tion,  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 does 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  fixated. 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 session 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  mecha-
	    nism but seems to be useful when using the Kodak disk transporter.

     -lock  Load  the media, lock the door 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 creating a new disk. Doing a -dummy  test
	    and  immediately  creating	a  real disk would not work on these de-
	    vices.

     speed=#
	    Set the speed factor of the writing process to #.  # is an	integer,
	    representing  a multiple of the audio speed.  This is about 150 KB/s
	    for CD-ROM, about 172 KB/s for CD-Audio and about 1385 kB/s for  DVD
	    media.   If  no  speed option is present, cdrecord will try to get a
	    drive specific speed value from the file /usr/local/etc/cdrecord and
	    if it cannot find one, it will try to get the speed value  from  the
	    CDR_SPEED  environment  and  later	from  the  CDR_SPEED=  entry  in
	    /usr/local/etc/cdrecord.  If no speed value could be found, cdrecord
	    uses a drive specific default speed.  The default for all  new  (MMC
	    compliant)	drives is to use the maximum supported by the drive.  If
	    you use speed=0 with a MMC compliant drive, cdrecord will switch  to
	    the lowest possible speed for drive and medium.  If you are using an
	    old  (non  MMC) drive that has problems with speed=2 or speed=4, you
	    should try speed=0.

     blank=type
	    Blank a CD-RW and exit or blank a CD-RW before writing. The blanking
	    type may be one of:

	    help	Display a list of possible blanking 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 necessary 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 cdrecord does it's best if the -force	flag  is
     used  but	it  finally depends on the drive's firmware whether the blanking
     operation will succeed or not.

     -format
	    Format a CD-RW/DVD-RW/DVD+RW disc.	Formatting is currently only im-
	    plemented for DVD+RW media.  A 'maiden' DVD+RW  media  needs  to  be
	    formatted  before you may write to it.  However, as cdrecord autode-
	    tects the need for formatting in this  case  and  auto  formats  the
	    medium  before  it starts writing, the -format option is only needed
	    if you like to forcibly reformat a DVD+RW medium.

     fs=#   Set the FIFO (ring buffer) size to #.  You may use the  same  syntax
	    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 followed
	    directly by the letter `b', `k', `m', `s' or `f', the size is multi-
	    plied by 512, 1024, 1024*1024, 2048 or 2352.  If the  size	consists
	    of	numbers  separated by `x' or `*', multiplication of the two num-
	    bers 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 mem-
	    ory.  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 do any
	    modifications  on the disk if mkisofs dies before it starts writing.
	    The recommended FIFO size is between 4 and 128 MBytes.  As a rule of
	    thumb, the FIFO size should be at least equal to the size of the in-
	    ternal buffer of the CD/DVD-Recorder and no more than  half  of  the
	    physical  amount  of RAM available in the machine.	If the FIFO size
	    is big enough, the FIFO statistics will print a FIFO empty count  of
	    zero  and the FIFO min fill is not below 20%.  It is not wise to use
	    too much space for the FIFO. If you need more than 8 MB to	write  a
	    CD	at a speed less than 20x from an image on a local file system on
	    an idle machine, your machine is either underpowered,  has	hardware
	    problems  or  is  mis-configured.	If  you like to write DVDs or to
	    write CDs at higher speed, it makes sense to use at least 16 MB  for
	    the FIFO.

	    On old and small machines, you need to be more careful with the FIFO
	    size.   If	your  machine  has less than 256 MB of physical RAM, you
	    should not set up a FIFO size that is more than  32 MB.   The  sun4c
	    architecture (e.g. a Sparcstation-2) has only MMU page table entries
	    for  16 MBytes  per  process. 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 hardware problem. I have no information on PC-hardware
	    reflecting this problem.

	    Old Linux systems for non x86 platforms have broken definitions  for
	    the  shared memory size. You need to fix them and rebuild the kernel
	    or manually tell cdrecord to use a smaller FIFO.

	    If you have buffer underruns or similar problems (like a  constantly
	    empty  drive  buffer)  and observe a zero fifo empty count, you have
	    hardware problems that prevents the data from  flowing  fast  enough
	    from  the  kernel memory to the drive. The FIFO size in this case is
	    sufficient, but you should check for a working DMA setup.

     ts=#   Set the maximum transfer size for a single SCSI command to	#.   The
	    syntax  for  the  ts= option is the same as for cdrecord fs=# or sdd
	    bs=#.

	    If no ts= option has been specified, cdrecord defaults to a transfer
	    size of 63 kB. If libscg gets lower values from the  operating  sys-
	    tem, the value is reduced to the maximum value that is possible with
	    the current operating system.  Sometimes, it may help to further re-
	    duce 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= op-
	    tion.

     dev=target
	    Sets the SCSI target for the CD/DVD-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 file-
	    name 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 support, you  need  to  use
	    the control device (e.g.  /dev/rcd0.ctl).  A correct device specifi-
	    cation 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  tar-
	    gets 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 interpreted as an label name that may be
	    found in the file /usr/local/etc/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  de-
	    fault  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 command runs correctly  with  a
	    raised  command  timeout, please report the better timeout value and
	    the corresponding command to the author of the program.  If no time-
	    out option is present, a default timeout of 40 seconds is used.

     driver=name
	    Allows the user to manually select a driver  for  the  device.   The
	    reason for the existence of the driver=name option is to allow users
	    to use cdrecord with drives that are similar to supported drives but
	    not  known	directly by cdrecord.  All drives made after 1997 should
	    be MMC standard compliant and thus supported by one of the MMC  dri-
	    vers.  It is most unlikely that cdrecord is unable to find the right
	    driver automatically.  Use this option with extreme care. If a wrong
	    driver  is	used for a device, the possibility of creating corrupted
	    disks is high.  The minimum problem related to  a  wrong  driver  is
	    that the -speed or -dummy will not work.

	    The following driver names are supported:

	    help   To  get  a list of possible drivers together with a short de-
		   scription.

	    mmc_cd
		   The generic SCSI-3/mmc CD-ROM driver is  auto-selected  when-
		   ever cdrecord finds a MMC compliant drive that does not iden-
		   tify  itself  to support writing at all, or that only identi-
		   fies to support media  or  write  modes  not  implemented  in
		   cdrecord.

	    mmc_cd_dvd
		   The	generic  SCSI-3/mmc CD/DVD driver is auto-selected when-
		   ever cdrecord finds a MMC-2 or  MMC-3  compliant  drive  that
		   seems  to  support  more than one medium type and the tray is
		   open or no medium could be found to select the right  driver.
		   This  driver tries to close the tray, checks the medium found
		   in the tray and then branches to the driver that matches  the
		   current medium.

	    mmc_cdr
		   The	generic  SCSI-3/mmc  CD-R/CD-RW  driver is auto-selected
		   whenever cdrecord find a MMC compliant drive that  only  sup-
		   ports to write CDs or a multi system drive that contains a CD
		   as the current medium.

	    mmc_cdr_sony
		   The	generic  SCSI-3/mmc  CD-R/CD-RW  driver is auto-selected
		   whenever cdrecord would otherwise select the  mmc_cdr  driver
		   but the device seems to be made by Sony.  The mmc_cdr_sony is
		   definitely needed for the Sony CDU 928 as this drive does not
		   completely  implement  the  MMC  standard and some of the MMC
		   SCSI commands have to be replaced by  Sony  proprietary  com-
		   mands.  It seems that all Sony drives (even newer ones) still
		   implement the Sony proprietary SCSI commands so  it	has  not
		   yet	become a problem to use this driver for all Sony drives.
		   If you find a newer Sony drive that does not work  with  this
		   driver, please report.

	    mmc_dvd
		   The generic SCSI-3/mmc-2 DVD-R/DVD-RW driver is auto-selected
		   whenever cdrecord finds a MMC-2 or MMC-3 compliant drive that
		   supports  to  write DVDs and an appropriate medium is loaded.
		   There is no Track At Once mode for DVD writers.

	    mmc_dvdplus
		   The generic SCSI-3/mmc-3 DVD+R/DVD+RW driver is auto-selected
		   whenever one of the DVD+ media types that are incompatible to
		   each other is found.  It checks media and  then  branches  to
		   the driver that matches the current medium.

	    mmc_dvdplusr
		   The	generic SCSI-3/mmc-3 DVD+R driver is auto-selected when-
		   ever a DVD+R medium is found in an appropriate writer.   Note
		   that  for unknown reason, the DVD-Plus alliance does not like
		   that there is a simulation mode for DVD+R media.  The  author
		   of  cdrecord  tries	to convince manufacturers to implement a
		   simulation mode for DVD+R and implement support.  DVD+R  only
		   supports  one  write  mode that is somewhere between Track At
		   Once and Packet writing; this mode is  selected  in	cdrecord
		   via a the -dao/-sao option.

	    mmc_dvdplusrw
		   The generic SCSI-3/mmc-3 DVD+RW driver is auto-selected when-
		   ever  a  DVD+RW medium is found in an appropriate writer.  As
		   DVD+RW media needs to be formatted  before  it's  first  use,
		   cdrecord  auto-detects this media state and performs a format
		   before it starts to write.  Note that for unknown reason, the
		   DVD-Plus alliance does not like that there  is  a  simulation
		   mode  nor  a way to erase DVD+RW media.  DVD+RW only supports
		   one write mode that is close to Packet writing; this mode  is
		   selected in cdrecord via a the -dao/-sao option.

	    cw_7501
		   The	driver for Matsushita/Panasonic CW-7501 is auto-selected
		   when cdrecord finds this old pre MMC  drive.   Cdrecord  sup-
		   ports all write modes for this drive type.

	    kodak_pcd_600
		   The	driver	for Kodak PCD-600 is auto-selected when cdrecord
		   finds this old pre MMC drive which has been	the  first  high
		   speed (6x) CD writer for a long time. This drive behaves sim-
		   ilar to the Philips CDD-521 drive.

	    philips_cdd521
		   The driver for Philips CDD-521 is auto-selected when cdrecord
		   finds  a  Philips CDD-521 drive (which is the first CD writer
		   ever made) or one of the other drives that are known  to  be-
		   have  similar  to this drive.  All Philips CDD-521 or similar
		   drives (see other drivers in this list) do not  support  Ses-
		   sion At Once recording.

	    philips_cdd521_old
		   The	driver	for  Philips  old  CDD-521 is auto-selected when
		   cdrecord finds a Philips CDD-521 with very old firmware which
		   has some known limitations.

	    philips_cdd522
		   The driver for Philips CDD-522 is auto-selected when cdrecord
		   finds a Philips CDD-522 which is the successor of the 521  or
		   one	of  it's  variants  with Kodak label.  Cdrecord does not
		   support Session At Once recording with these drives.

	    philips_dumb
		   The driver for Philips CDD-521 with	pessimistic  assumptions
		   is  never  auto-selected.  It may be used by hand with drives
		   that behave similar to the Philips CDD-521.

	    pioneer_dws114x
		   The	driver	for  Pioneer  DW-S114X	is  auto-selected   when
		   cdrecord  finds  one  of the old non MMC CD writers from Pio-
		   neer.

	    plasmon_rf4100
		   The driver for Plasmon RF 4100 is auto-selected when cdrecord
		   finds this specific variant of the Philips CDD-521.

	    ricoh_ro1060c
		   The driver for Ricoh RO-1060C is auto-selected when	cdrecord
		   finds  this	drive.	There  is no real support for this drive
		   yet.

	    ricoh_ro1420c
		   The driver for Ricoh RO-1420C is auto-selected when	cdrecord
		   finds  a  drive  with  this	specific  variant of the Philips
		   CDD-521 command set.

	    scsi2_cd
		   The generic SCSI-2 CD-ROM driver  is  auto-selected	whenever
		   cdrecord  finds a pre MMC drive that does not support writing
		   or a pre MMC writer that is not supported by cdrecord.

	    sony_cdu924
		   The driver for Sony CDU-924 / CDU-948 is auto-selected  when-
		   ever  cdrecord  finds  one of the old pre MMC CD writers from
		   Sony.

	    teac_cdr50
		   The driver for Teac CD-R50S, Teac CD-R55S, JVC XR-W2010, Pin-
		   nacle RCD-5020 is auto-selected whenever one of the drives is
		   found that is known to the non MMC command set used	by  TEAC
		   and	JVC.   Note  that many drives from JVC will not work be-
		   cause they do not correctly implement the documented  command
		   set	and  JVC has been unwilling to fix or document the bugs.
		   There is no support for the Session At Once write mode yet.

	    tyuden_ew50
		   The driver  for  Taiyo  Yuden  EW-50  is  auto-selected  when
		   cdrecord  finds  a  drive  with  this specific variant of the
		   Philips CDD-521 command set.

	    yamaha_cdr100
		   The driver for Yamaha CDR-100 / CDR-102 is auto-selected when
		   cdrecord finds one of the old pre MMC CD writers from Yamaha.
		   There is no support for the Session At Once write mode yet.

	    cdr_simul
		   The simulation CD-R driver allows to  run  timing  and  speed
		   tests with parameters that match the behavior of CD writers.

	    dvd_simul
		   The	simulation  DVD-R  driver allows to run timing and speed
		   tests with parameters that match the behavior of DVD writers.

	    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 timing tests for drives  that  do  not  support  the
	    -dummy  option.   The  simulation  drivers	implement a drive with a
	    buffer size of 1 MB 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	present,
	    the simulation is not aborted in case of a buffer underrun.

     driveropts=option list
	    Set driver specific options. The options are specified a comma sepa-
	    rated  list.  To get a list of valid options use driveropts=help to-
	    gether with the -checkdrive option.  If you like to set  driver  op-
	    tions  without  running a typical cdrecord task, you need to use the
	    -setdropts option in addition, otherwise the command line parser  in
	    cdrecord will complain.  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 tech-
		   nology.  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 de-
		   faults of the drive.

	    noburnfree
		   Turn the support for Buffer Underrun Free writing off.

	    varirec=value
		   Turn on the Plextor VariRec writing mode. The mandatory para-
		   meter 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 Yamaha Audio Master Q. R.  feature which  usually
		   should  result  in  high  quality  CDs that have less reading
		   problems in Hi-Fi players.  As this is implemented as a vari-
		   ant 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  limited  speed
		   but may also be used with data CDs. In Audio Master mode, the
		   pits  on  the CD will be written larger then usual so the ca-
		   pacity of the medium is reduced when turning this feature on.
		   A 74 minute CD will only have a capacity of 63 minutes if Au-
		   dio Master is active and the capacity of a 80 minute CD  will
		   be reduced to 68 minutes.

	    forcespeed
		   Normally,  modern  drives know the highest possible speed for
		   different media and may reduce the speed in	order  to  grant
		   best  write	quality.  This technology may be called: Plextor
		   PowerRec, Ricoh Just-Speed, Yamaha Optimum Write  Speed  Con-
		   trol  or  similar.	Some  drives  (e.g.  Plextor,  Ricoh and
		   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  se-
		   lected 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.

	    speedread
		   Some ultra high speed drives such as 48x  and  faster  drives
		   from  Plextor  limit the read speed for unknown media to e.g.
		   40x in order to avoid damaged disks and drives.   Using  this
		   option tells the drive to read any media as fast as possible.
		   Be  very  careful as this may cause the media to break in the
		   drive while reading, resulting in a damaged media and drive!

	    nospeedread
		   Turn off unlimited read speed.

	    singlesession
		   Turn the drive into a single session only drive.  This allows
		   to read defective or non-compliant (illegal) media  with  ex-
		   tremely  non-standard additional (broken/illegal) TOC entries
		   in the TOC from the second or higher session. Some  of  these
		   disks  become  usable  if only the information from the first
		   session is used.  You need to enable Single Session mode  be-
		   fore you insert the defective disk!

	    nosinglesession
		   Turn  off single session mode. The drive will again behave as
		   usual.

	    hidecdr
		   Hide the fact that a medium might  be  a  recordable  medium.
		   This  allows to make CD-Rs look like CD-ROMs and applications
		   believe that the media in the drive is not a CD-R.

	    nohidecdr
		   Turn off hiding CD-R media.

	    tattooinfo
		   Use this option together with -checkdrive to retrieve the im-
		   age size information for the Yamaha DiskT@2 feature. The  im-
		   ages  always have a line length of 3744 pixel.  Line number 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
		   distorted image that later  may  appear  undistorted  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  tat-
		   toofile=name  .   If the size of the image equals the maximum
		   possible 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.

     -setdropts
	    Set the driveropts specified by driveropts=option list, the speed of
	    the  drive and the dummy flag and exit.  This allows cdrecord to set
	    drive specific parameters that are not  directly  used  by	cdrecord
	    like  e.g.	single session mode, hide cdr and similar.  It is needed
	    in case that driveropts=option list should be called  without  plan-
	    ning to run a typical cdrecord task.

     -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 compliant drives as  ob-
	    tained  from mode page 0x2A. Values marked with kB use 1000 bytes as
	    kilo-byte, values marked with KB use 1024 bytes as Kilo-byte.

     -inq   Do an inquiry for the drive, print the inquiry info and exit.

     -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 CD/DVD-
	    Recorder  on  a  system.  The numbers printed out as labels are com-
	    puted by: bus * 100 + target

     -reset
	    Try to reset the SCSI bus where the CD  recorder  is  located.  This
	    works not on all operating systems.

     -abort
	    Try  to  send  an  abort sequence to the drive.  If you use cdrecord
	    only, this should never be needed; but other software  may	leave  a
	    drive  in  an  unusable  condition.   Calling cdrecord -reset may be
	    needed if a previous write has been interrupted and the software did
	    not tell the drive that it will not continue to write.

     -overburn
	    Allow cdrecord to write more than the official  size  of  a  medium.
	    This  feature  is usually called overburning 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 usually works if there are at least 150
	    sectors of lead out, all media may be overburned by at least 88 sec-
	    onds (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 not 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  circumvented 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 option should be used with
	    extreme care, it exists only for debugging purposes don't use it for
	    other reasons.  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 as-
	    sociated with the file that contains the audio data for a track.

	    If used together with the -audio option, cdrecord  may  be	used  to
	    write  audio CDs from a pipe from cdda2wav if you call cdrecord with
	    the *.inf files as track  parameter  list  instead	of  using  audio
	    files.   The  audio data is read from stdin in this case.  See EXAM-
	    PLES section below.  Cdrecord first verifies that stdin is not  con-
	    nected  to	a terminal and runs some heuristic consistency checks on
	    the *.inf files and then sets the track lengths from the information
	    in the *.inf files.

	    If you like to write from stdin, make sure that cdrecord  is  called
	    with a large enough FIFO size, reduce the write speed to a value be-
	    low  the read speed of the source drive and switch the burn-free op-
	    tion for the recording drive on.

     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 cre-
	    ating  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  ex-
	    perimental interface.

     -noclose
	    Do	not  close the current track, useful only when in packet writing
	    mode.  This is an experimental interface.

     mcn=med_cat_nr
	    Set the Media Catalog Number of the CD to med_cat_nr.

     -text  Write CD-Text information based on information  taken  from  a  file
	    that contains ascii information for the text strings.  Cdrecord sup-
	    ports  CD-Text  information  based on the content of the *.inf files
	    created by cdda2wav and CD-Text information  based	on  the  content
	    from  a  CUE  sheet file.  If a CUE sheet file contains both (binary
	    CDTEXTFILE and text based SONGWRITER) entries, then the  information
	    based on the CDTEXTFILE entry will win.

	    You  need  to  use	the -useinfo option in addition in order to tell
	    cdrecord to read the *.inf files or  cuefile=filename  in  order  to
	    tell  cdrecord to read a CUE sheet file in addition.  If you like to
	    write your own CD-Text information, edit the *.inf files or the  CUE
	    sheet  file  with a text editor and change the fields that are rele-
	    vant for CD-Text.

     textfile=filename
	    Write CD-Text based on information found in the  binary  file  file-
	    name.   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 correct 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.	If both, textfile=filename and CD-Text information  from
	    *.inf  or  *.cue files are present, textfile=filename will overwrite
	    the other information.

     cuefile=filename
	    Take all recording related information from a CDRWIN  compliant  CUE
	    sheet  file.  No track files are allowed when this option is present
	    and the option -dao is currently needed in addition.

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 seconds) that  repre-
	    sent  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 format.  The file  with  data  for  this
	    tracks  should  contain stereo, 16-bit digital audio with 44100 sam-
	    ples/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 mul-
	    tiple 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  considered  to  be  a
	    structured	audio data file.  Cdrecord assumes that the file in this
	    case is a Sun audio file or a Microsoft .WAV file and  extracts  the
	    audio  data from the files by skipping over the non-audio header in-
	    formation.	In all other cases, cdrecord will only work correctly if
	    the audio data stream does not have any header.  Because many struc-
	    tured audio files do not have an integral number of  blocks  (1/75th
	    second)  in length, it is often necessary to specify the -pad option
	    as well.  cdrecord recognizes that audio data  in  a  .WAV	file  is
	    stored  in	Intel (little-endian) byte order, and will automatically
	    byte-swap the data if the  CD  recorder  requires  big-endian  data.
	    Cdrecord will reject any audio file that does not match the Red Book
	    requirements  of  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 presented  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 or-
	    der.

	    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 re-
	    quired 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 size 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 CD-drives with 2 KB sector  size  to  be  used  for
	    reading.

	    -data  is the default, if no other flag is present and the file does
	    not appear to be of one of the well known audio file types.

	    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.

     -mode2
	    If this flag is present, all subsequent tracks are written in CD-ROM
	    mode 2 format. The data size is a multiple of 2336 bytes.

     -xa    If this flag is present, all subsequent tracks are written in CD-ROM
	    XA	mode 2 form 1 format. The data size is a multiple of 2048 bytes.
	    The XA sector sub headers will be created by the drive.   With  this
	    option, the write mode is the same as with the -multi option.

     -xa1   If this flag is present, all subsequent tracks are written in CD-ROM
	    XA	mode 2 form 1 format. The data size is a multiple of 2056 bytes.
	    The XA sector sub headers are part of the user data and have  to  be
	    supplied by the application that prepares the data to be written.

     -xa2   If this flag is present, all subsequent tracks are written in CD-ROM
	    XA	mode 2 form 2 format. The data is a multiple of 2324 bytes.  The
	    XA sector sub headers will be created by the drive.

     -xamix
	    If this flag is present, all subsequent tracks are written in a  way
	    that allows a mix of CD-ROM XA mode 2 form 1/2 format. The data size
	    is	a multiple of 2332 bytes.  The XA sector sub headers are part of
	    the user data and have to be supplied by the application  that  pre-
	    pares  the	data  to be written.  The CRC and the P/Q parity ECC/EDC
	    information (depending on the sector type) have to	be  supplied  by
	    the application that prepares the data to be written.

     -cdi   If	this  flag  is present, the TOC type for the disk is set to CDI.
	    This only makes sense with XA disks.

     -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 im-
	    age 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 underrun 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 contains Sparc boot
	    information, the boot information will be lost.

	    Note also that this option cannot be used to determine 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 subsequent 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, independent from
	    the real sector size and  independent  from  the  write  mode.   The
	    megabytes  mentioned in the verbose mode output however are counting
	    the output sector size which is e.g.  2448	bytes  when  writing  in
	    RAW/RAW96  mode.  See fs= option for possible arguments.  To pad the
	    equivalent of 20 minutes on a CD, you may  write  padsize=20x60x75s.
	    Use  this  option if your CD-drive is not able to read the last sec-
	    tors of a track or if you want to be able to read the CD on a  Linux
	    system  with  the  ISO-9660  filesystem read ahead bug.  If an empty
	    file is used for track data, this option may be  used  to  create  a
	    disk  that	is  entirely  made of padding.	This may e.g. be used to
	    find out how 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	Red  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 accept the resulting CUE sheet
	    or support RAW writing.

     -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 subsequent audio tracks
	    will  indicate  that  the audio data has been sampled with 50/15 mi-
	    crosec pre-emphasis.  The data, however is not modified  during  the
	    process  of  transferring from file to disk.  This option has no ef-
	    fect on data tracks.

     -nopreemp
	    If this flag is present, all TOC entries for subsequent 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 subsequent audio tracks
	    of the resulting CD will indicate 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 subsequent audio tracks
	    of the resulting CD will indicate 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 subsequent audio tracks
	    of the resulting CD will indicate that the audio data has no permis-
	    sion to be copied anymore.

     tsize=#
	    If	the  master  image  for  the next track has been stored on a raw
	    disk, use this option to specify the valid amount of  data	on  this
	    disk.  If  the  image of the next track is stored in a regular file,
	    the size of that file is taken  to	determine  the	length	of  this
	    track.   If  the track contains an ISO 9660 filesystem image use the
	    -isosize option to determine the length of that filesystem image.
	    In Disk at Once mode and with some drives that use the TEAC program-
	    ming 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  hap-
	    pens  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/DVD-Recorder is con-
     nected 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 cdim-
     age.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  run  mkisofs  in the real time class too.	To raise the priority of
     mkisofs replace the command

	 mkisofs -R /master/tree
     by
	 priocntl -e -c RT -p 59 mkisofs -R /master/tree

     on Solaris and by

	 nice --18 mkisofs -R /master/tree

     on systems that don't have UNIX International compliant real-time	schedul-
     ing.

     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*.cdaudio

     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.cdaudio, etc:

	 cdrecord -v 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 dev=2,0 -vall cddb=0 -B -Owav

     and then run

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

     This will try to copy track indices and to read  CD-Text  information  from
     disk.  If there is no CD-Text information, cdda2wav will try to get the in-
     formation from freedb.org instead.

     To copy an audio CD from a pipe (without intermediate files), first run

	 cdda2wav dev=1,0 -vall cddb=0 -info-only

     and then run

	 cdda2wav dev=1,0 -no-infofile -B -Oraw - | \
	 cdrecord dev=2,0 -v -dao -audio -useinfo -text *.inf

     This  will  get  all information (including track size info) from the *.inf
     files and then read the audio data from stdin.

     If you like to write from stdin, make sure that cdrecord is called  with  a
     large  enough  FIFO size (e.g.  fs=128m), reduce the write speed to a value
     below the read speed of the source drive (e.g.  speed=12), and  switch  the
     burn-free option for the recording drive on by adding driveropts=burnfree.

     To set drive options without writing a CD (e.g. to switch a drive to single
     session mode), run

	 cdrecord dev=1,0 -setdropts driveropts=singlesession

     If you like to do this when no CD is in the drive, call

	 cdrecord dev=1,0 -force -setdropts driveropts=singlesession

     To copy a CD in clone mode, first read the master CD using:

	 readcd dev=b,t,l -clone f=somefile

     or  (in case the CD contains many sectors that are unreadable by intention)
     by calling:

	 readcd dev=1,0 -clone -nocorr f=somefile

     will create the files somefile and somefile.toc.  Then write the CD using:

	 cdrecord dev=1,0 -raw96r -clone -v somefile

ENVIRONMENT
     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
	    /usr/local/etc/cdrecord.

     CDR_SPEED
	    Sets the default speed value for writing (see also -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 potential of buffer underruns. Use with care.

     CDR_FORCESPEED
	    If this environment variable is set,  cdrecord  will  allow  you  to
	    write  at  the  full DMA speed the system supports.  There is no DMA
	    reserve for reading the data that is to be written from disk.   This
	    will create high potential of buffer underruns. Use with care.

     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 cdrecord to create a pipe to the  rsh(1)  pro-
	    gram and disallows cdrecord to directly access the network socket to
	    the  remote  server.  This makes it impossible to set up performance
	    parameters and slows down the connection compared to a  root  initi-
	    ated rcmd(3) connection.

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

FILES
     /usr/local/etc/cdrecord
	    Default values can be set for  the	following  options  in	/usr/lo-
	    cal/etc/cdrecord.  For example: CDR_FIFOSIZE=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 /usr/local/etc/cdrecord that allows to identify  a  spe-
		   cific drive on the system.

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

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

	    Any other label
		   is an identifier for a specific drive on the system.  Such an
		   identifier  may  not  contain the characters ',', '/', '@' or
		   ':'.

		   Each line that follows a label contains a TAB separated  list
		   of  items.  Currently, four items are recognized: the SCSI ID
		   of the drive, the default speed that should be used for  this
		   drive,  the	default  FIFO  size that should be used for this
		   drive and drive specific options. The values  for  speed  and
		   fifosize  may be set to -1 to tell cdrecord to use the global
		   defaults.  The value for driveropts may be set to  ""  if  no
		   driveropts are used.  A typical line may look this way:

		   teac1= 0,5,0   4    8m   ""

		   yamaha= 1,6,0  -1   -1   burnfree

		   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, tar-
		   get 6, lun 0 and uses the default speed and the default  FIFO
		   size.

SEE ALSO
     cdda2wav(1), readcd(1), mkisofs(8), rcmd(3), ssh(1).

NOTES
     Not  all options described in this manual may be supported by the GPL vari-
     ant of cdrecord. Cdrecord issues a warning if an attempt is made to use  an
     option that has been disabled in the GPL variant.

     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  er-
     ror, 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 up-
     graded will not work.  The Sony CDU-924 has been tested, but does not  sup-
     port  XA-mode2  in  hardware.   The Sony therefore cannot create conforming
     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.

     The  Yamaha  CDR-400 and all new SCSI-3/mmc conforming drives are supported
     in single and multi-session.

     You should run several tests in all supported speeds of your drive with the
     -dummy option turned on if you are using cdrecord	on  an	unknown  system.
     Writing  a  CD  is  a  real-time process.	NFS will not always deliver con-
     stantly the needed data rates.  If you want to use cdrecord with  CD-images
     that are located on a NFS mounted filesystem, be sure that the FIFO size is
     big  enough.   I  used  cdrecord with medium load on a SS20/502 and even at
     quad speed on a Sparcstation-2 which was heavily loaded, but it  is  recom-
     mended  to  leave	the system as lightly loaded as possible 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  privileges	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  disconnect/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
     session 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:

	  http://www.hp.com/isgsupport/cdr/index.html

     If you have more information or SCSI command manuals for  currently  unsup-
     ported CD/DVD-Recorders please contact the author.

     The  Philips CDD 521 CD-Recorder (even in the upgraded version) has several
     firmware bugs. Some of them will force you to power cycle the device or  to
     reboot the machine.

     When  using cdrecord with the broken Linux SCSI generic driver.  You should
     note that cdrecord uses a hack, that tries to emulate the functionality  of
     the  scg  driver.	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/DVD-Recorder. For this reason, there will never	be  100%
     FIFO fill ratio 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 session.

     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 kernel. 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 possible to transport the command (i.e. no device present  at	the  re-
     quested SCSI address).

     The  second  line	prints	the SCSI command descriptor block for the failed
     command.

     The third line gives information on the SCSI status code  returned  by  the
     command,  if the transport of the command succeeds.  This is error informa-
     tion from the SCSI device.

     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,	followed
     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 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  de-
     coded  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 com-
     mand 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 writ-
     ten 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

     Finn Arne Gangstad  (finnag@guardian.no)
		    For the first FIFO implementation.

     Dave Platt     (dplatt@feghoot.ml.org)
		    For creating the experimental packet  writing  support,  the
		    first  implementation  of  CD-RW blanking support, the first
		    .wav file decoder and many nice discussions on cdrecord.

     Chris P. Ross (cross@eng.us.uu.net)
		    For the first implementation of a BSDI SCSI transport.

     Grant R. Guenther	 (grant@torque.net)
		    For creating the first parallel port  transport  implementa-
		    tion for Linux.

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

     Heiko Eiszfeldt (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-developers

     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

     If 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-developers
     or http://lists.berlios.de/mailman/listinfo/cdrecord-support

     The old cdwrite mailing list may be joined by sending mail to:

	  cdwrite-request@other.debian.org

     and including the word subscribe in the body.  The mail address of the list
     is:

	  cdwrite@other.debian.org

Joerg Schilling 		   Version 2.0			     CDRECORD(1)

home | help