libburn/cdrskin/cdrskin.1

1246 lines
48 KiB
Groff

.\" Hey, EMACS: -*- nroff -*-
.\" First parameter, NAME, should be all caps
.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
.\" other parameters are allowed: see man(7), man(1)
.TH CDRSKIN 1 "April 12, 2008"
.\" Please adjust this date whenever revising the manpage.
.\"
.\" Some roff macros, for reference:
.\" .nh disable hyphenation
.\" .hy enable hyphenation
.\" .ad l left justify
.\" .ad b justify to both left and right margins
.\" .nf disable filling
.\" .fi enable filling
.\" .br insert line break
.\" .sp <n> insert n+1 empty lines
.\" for manpage-specific macros, see man(7)
.SH NAME
cdrskin \- burns preformatted data to CD-R[W], DVD-R[W], DVD+R[W], DVD+R/DL,
DVD-RAM via libburn.
.SH SYNOPSIS
.B cdrskin
.RI [ options | track_source_addresses ]
.br
.SH DESCRIPTION
.PP
.\" TeX users may be more comfortable with the \fB<whatever>\fP and
.\" \fI<whatever>\fP escape sequences to invode bold face and italics,
.\" respectively.
.PP
\fBcdrskin\fP is a program that provides some of cdrecord's options
in a compatible way for CD media. With DVD it has its own ways.
You do not need to be superuser for its daily usage.
.SS
.B Overview of features:
.br
Blanking of CD-RW and DVD-RW.
.br
Burning of data or audio tracks to CD,
.br
either in versatile Track at Once mode (TAO)
.br
or in Session at Once mode for seamless tracks.
.br
Multi session on CD (follow-up sessions in TAO only)
.br
or on DVD-R[W] (in Incremental mode) or on DVD+R[/DL].
.br
Single session on DVD-RW or DVD-R (Disk-at-once).
.br
Single session or emulated ISO-9660 multi-session
.br
on overwriteable DVD+RW, DVD-RW, DVD-RAM,
.br
or on data file or block device.
.br
Bus scan, burnfree, speed options, retrieving media info, padding, fifo.
.br
See section EXAMPLES at the end of this text.
.SS
.B General information paragraphs:
.br
Track recording model
.br
Write mode selection
.br
Recordable CD Media
.br
Sequentially Recordable DVD Media
.br
Overwriteable DVD Media
.br
Drive preparation and addressing
.br
Emulated drives
.SS
.B Track recording model:
.br
The input-output entities which get processed are called tracks.
A \fBtrack\fP stores a stream of bytes.
.br
Each track is initiated by one track source address argument, which may either
be "-" for standard input or the address of a readable file. If no write mode
is given explicitely then one will be chosen which matches the peculiarities
of track sources and the state of the output media.
.PP
More than one track can be burned by a single run of cdrskin.
In the terms of the MMC standard all tracks written by the same run constitute
a \fBsession\fP.
.br
Some media types can be kept appendable so that further tracks can
be written to them in subsequent runs of cdrskin (see option -multi).
Info about the addresses of burned tracks is kept in a table of
content (TOC) on media and can be retrieved via cdrskin option -toc.
These informations are also used by the operating systems' CD-ROM read drivers.
.PP
In general there are two types of tracks: data and audio. They differ in
sector size, throughput and readability via the systems' CD-ROM drivers
resp. by music CD players. With DVD there is only type data.
.br
If not explicitely option -audio is given, then any track is burned as type
data, unless the track source is a file with suffix ".wav" or ".au" and has a
header part which identifies it as MS-WAVE resp. SUN Audio with suitable
parameters. Such files are burned as audio tracks by default.
.PP
While audio tracks just contain a given time span of acoustic vibrations,
data tracks may have an arbitray meaning. Nevertheless, ISO-9660 filesystems
are established as a format which can represent a tree of directories and
files on all major operating systems. Such filesystem images can be
produced by programs mkisofs or genisoimage. They can also be extended by
follow-up tracks if prepared properly. See the man pages of said programs.
cdrskin is able to fulfill the needs about their option -C.
.br
Another type of data track content are archive formats which originally
have been developed for magnetic tapes. Only formats which mark a detectable
end-of-archive in their data are suitable, though. Well tested are
the archivers afio and star. Not suitable seems GNU tar.
.SS
.B Write mode selection:
.br
In general there are two approaches for writing media:
.br
A permissive mode depicted by option
.B -tao
which needs no predicted track size and allows to make use of
eventual multi-session capabilities.
.br
A more restrictive mode
.B -sao
(alias -dao) which usually demands a predictable track size and is not
necessarily capable of multi-session. It may have advantages for some
readers resp. players of the recorded tracks.
.br
If none of the options -dao, -tao or -sao is given then the program will
try to choose a write mode which matches the defined recording job,
the capabilities of the drive and the state of the present media.
.br
So the mentioning of write modes in the following paragraphs and in the
examples is not so much a demand that the user shall choose one explicitely,
but rather an illustration of what to expect with particular media types.
.SS
.B Recordable CD Media:
.br
CD-R can be initially written only once and eventually extended until they
get closed (or are spoiled because they are overly full). After that they are
read-only. Closing is done automatically unless option
.B -multi
is given which keeps the media appendable.
.br
Write mode
-tao allows to use track sources of unpredictable length (like stdin) and
allows to write further sessions to appendable media.
-sao produces audio sessions with seamless tracks but needs predicted track
sizes and cannot append sessions to media.
.br
CD-RW media can be blanked to make them re-usable for another
round of overwriting. Usually
.B blank=fast
is the appropriate option.
Blanking damages the previous content but does not
make it completely unreadable. It is no effective privacy precaution.
Multiple cycles of blanking and overwriting with random numbers might be.
.SS
.B Sequentially Recordable DVD Media:
.br
Currently DVD-RW, DVD-R and DVD+R[/DL] can be used for the Sequential recording
model.
.br
DVD-RW must be in state "Sequential Recording".
The media must be either blank or appendable.
Newly purchased DVD-RW and DVD-R media are in this state.
Used DVD-RW get into blank sequential state by option
.B blank=deformat_sequential .
.br
With DVD-R[W] two write modes may be available:
.br
Mode DAO has many restrictions. It does not work with
appendable media, allows no -multi and only a single track. The size of the
track needs to be known in advance. So either its source has to be a disk file
of recognizable size or the size has to be announced explicitely by options
.B tsize=
or
.B tao_to_sao_tsize= .
.br
DAO is the only mode for media which do not offer feature 21h Incremental
Streaming. DAO may also be selected explicitely by option
.B -sao .
Program growisofs uses DAO on sequential DVD-R[W] media for maximum
DVD-ROM/-Video compatibility.
.br
The other mode, Incremental Streaming, is the default write mode if
it is available and if the restrictions of DAO would prevent the job.
Incremental Streaming may be selected explicitely by option
.B -tao
as it resembles much CD TAO by allowing track sources of
unpredicted length and to keep media appendable by option
.B -multi .
The only restriction towards CD-R[W] is the lack of support for -audio tracks.
Multiple tracks per session are permissible.
.br
The write modes for DVD+R[/DL] resemble those with DVD-R except that with +R
each track gets wrapped in an own session. There is no -dummy writing with
DVD+R[/DL].
.br
Quite deliberately write mode -sao insists in the tradition of a predicted
track size and blank media, whereas -tao writes the tracks open ended and
allows appendable media.
.br
.B Note:
Option -multi might make DVD media unreadable in some DVD-ROM drives.
Best reader compatibility is achieved without it
(i.e. by single session media).
.SS
.B Overwriteable DVD Media:
.br
Currently types DVD+RW, DVD-RW and DVD-RAM can be overwritten via cdrskin.
.br
DVD+RW and DVD-RAM media need no special initial formatting. They offer a
single continuous data area for blockwise random access.
.br
Option -audio is not allowed. Only one track is allowed.
Option -multi cannot mark a recognizeable end of overwriteable media.
Therefore -multi is banned unless ISO-9660 images shall be expandable by help
of option
.B --grow_overwriteable_iso .
Without this option or without an ISO-9660 filesystem image present
on media, -toc does not return information about the media content and
media get treated as blank regardless wether they hold data or not.
.br
Currently there is no difference between -sao and -tao. If ever, then -tao
will be the mode which preserves the current behavior.
.br
DVD-RW are sold in state "Sequential Recording". To become suitable for the
Overwriteable DVD recording model they need to get formatted to state
"Restricted Overwrite". Then they behave much like DVD+RW. This formatting
can be done by option
.B blank=format_overwrite .
.br
Several programs like dvd+rw-format, cdrecord, wodim, or cdrskin
can bring a DVD-RW out of overwriteable state so
that it has to be formatted again. If in doubt, just give it a try.
.SS
.B Drive preparation and addressing:
.br
The drives, either CD burners or DVD burners, are accessed via addresses which
are specific to libburn and the operating system. Those addresses get listed
by a run of \fBcdrskin --devices\fP.
.br
On Linux, they are device files which traditionally do not offer
w-permissions for normal users. Because libburn needs rw-permission,
it might be only the
.B superuser
who is able to get this list without further
precautions.
.br
It is consensus that \fBchmod a+rw /dev/sr0\fP or \fBchmod a+rw /dev/hdc\fP
is less security sensitive than chmod u+s,a+x /usr/bin/cdrskin. The risk for
the drive is somewhat higher but the overall system is much less at stake.
Consider to restrict rw-access to a single group which bundles the users who
are allowed to use the burner drive (like group "floppy").
.br
.PP
If you only got one CD capable drive then you may leave out cdrskin option
\fBdev=\fP. Else you should use this option to address the drive you want.
.br
cdrskin option dev= not only accepts the listed addresses but also
traditional cdrecord SCSI addresses which on Linux consist of three
numbers: Bus,Target,Lun. There is also a related address family "ATA" which
accesses IDE drives not under control of Linux SCSI drivers:
ATA:Bus,Target,Lun.
.br
See option -scanbus for getting a list of cdrecord style addresses.
.br
Further are accepted on Linux: links to libburn-suitable device files,
device files which have the same major and minor device number,
and device files which have the same SCSI address parameters (e.g. /dev/sg0).
.br
.SS
.B Emulated drives:
.br
Option
.B --allow_emulated_drives
enables addressing of pseudo-drives
which get emulated on top of filesystem objects. Regular data files and
block devices result in pseudo-drives which behave much like DVD-RAM.
If the given address does not exist yet but its directory exists, then
it gets created as regular file.
Other file types like character devices or pipes result in pseudo-drives
which behave much like blank DVD-R.
The target file address is given after prefix "stdio:".
.br
E.g.: dev=stdio:/tmp/my_pseudo_drive
.br
Addresses of the form "stdio:/dev/fd/<number>" are treated special. The
number is read literally and used as open file descriptor. With
dev="stdio:/dev/fd/1" the normal standard output of the program is
redirected to stderr and the stream data of a burn run will appear on stdout.
.br
Not good for terminals ! Redirect it.
.br
Pseudo-drives allow -dummy. Their reply with --tell_media_space can be utopic.
-dummy burn runs touch the file but do not modify its data content.
.br
Note: --allow_emulated_drives is restricted to stdio:/dev/null if cdrskin
is run by the
.B superuser
or if it has changed user identity via the
.B setuid
bit of its access permissions. The ban for the superuser can be lifted by a
skillfully created file. See section FILES below.
.br
.SH OPTIONS
.TP
.BI \-\-help
Show non-cdrecord compatible options.
.TP
.BI \-help
Show cdrecord compatible options.
.br
Note that some of the help texts are quite wrong - for cdrecord as well as
for cdrskin (e.g. -format, blank=, -load). They are, nevertheless, traditional
indicators for the availability of the listed options. Some frontend programs
make decisions after reading them.
.TP
.BI \-version
Print cdrskin id line, compatibility lure line, libburn version, cdrskin
version, version timestamp, build timestamp (if available), and then exit.
.PP
Alphabetical list of options which are intended to be compatible with
original cdrecord by Joerg Schilling:
.TP
.BI \-atip
Retrieve some info about media state. With CD-RW print "Is erasable".
With DVD media print "book type:" and a media type text.
.TP
.BI \-audio
Announces that the subsequent tracks are to be burned as audio.
The source is supposed to be uncompressed headerless PCM, 44100 Hz, 16 bit,
stereo. For little-endian byte order (which is usual on PCs) use option
-swab. Unless marked explicitely by option -data, input files with suffix
".wav" are examined wether they have a header in MS-WAVE format confirming
those parameters and eventually raw audio data get extracted and burned as
audio track. Same is done for suffix ".au" and SUN Audio.
.br
Option -audio may be used only with CD media and not with DVD.
.TP
.BI blank= type
Blank a CD-RW, a DVD-RW, or format a DVD+/-RW.
This is combinable with burning in the same run of cdrskin.
The type given with blank= selects the particular behavior:
.RS
.TP
help
Print this list of blanking types.
.TP
all
Blank an entire CD-RW or an unformatted DVD-RW.
(See also --prodvd_cli_compatible, --grow_overwriteable_iso)
.TP
fast
Minimally blank an entire CD-RW or blank an unformatted DVD-RW.
(See also --prodvd_cli_compatible, --grow_overwriteable_iso)
.TP
format_overwrite
Format a DVD-RW to "Restricted Overwrite". The user should bring some patience.
.br
(Note: blank=format_overwrite* are not original cdrecord options.)
.TP
format_overwrite_quickest
Like format_overwrite without creating a 128 MiB trailblazer session.
Leads to "intermediate" state which only allows sequential write
beginning from address 0.
The "intermediate" state ends after the first session of writing data.
.TP
format_overwrite_full
For DVD-RW this is like format_overwrite but claims full media size
rather than just 128 MiB.
Most traditional formatting is attempted. No data get written.
Much patience is required.
.br
This option treats already formatted media even if not option -force is given.
.br
For DVD+RW this is the only supported explicit formatting type. It provides
complete "de-icing" so no reader slips on unwritten data areas.
.TP
deformat_sequential
Like blank=all but with the additional ability to blank overwriteable DVD-RW.
This will destroy their formatting and make them sequentially recordable.
Another peculiarity is the ability to blank media which appear already blank.
This is similar to option -force but does not try to blank media other than
recognizable CD-RW and DVD-RW.
.br
(Note: blank=deformat_sequential* are not original cdrecord options.)
.TP
deformat_sequential_quickest
Like blank=deformat_sequential but blanking DVD-RW only minimally.
This is faster than full blanking but may yield media incapable of
Incremental Streaming (-tao).
.RE
.TP
.BI \-checkdrive
Retrieve some info about the addressed drive and then exit.
Exits with non-zero value if the drive cannot be found and opened.
.TP
.BI \-dao
Alias for option -sao. Write CD in Session at Once mode
or DVD-R[W] in Disc-at-once mode.
.TP
.BI \-data
Subsequent tracks are data tracks. This option is default and only needed
to mark the end of the range of an eventual option -audio.
.TP
.BI dev= target
Set the address of the drive to use. Valid are at least the
addresses listed with option --devices,
X,Y,Z addresses listed with option -scanbus,
ATA:X,Y,Z addresses listed with options dev=ATA -scanbus,
and volatile libburn drive numbers (numbering starts at "0").
Other device file addresses which lead to the same drive might work too.
.br
If no dev= is given, volatile address "dev=0" is assumed. That is the first
drive found being available. Better avoid this ambiguity on systems with more
than one drive.
.br
The special target "help" lists hints about available addressing formats.
Be aware that deprecated option --old_pseudo_scsi_adr may change the meaning
of Bus,Target,Lun addresses.
.TP
.BI driveropts= opt
Set "driveropts=noburnfree" to disable the drive's eventual protection
mechanism against temporary lack of source data (i.e. buffer underrun).
A drive that announces no such capabilities will not get them enabled anyway,
even if attempted explicitely via "driveropts=burnfree".
.TP
.BI \-dummy
Try to perform the drive operations without actually affecting the inserted
media. There is no warranty that this will work with a particular combination
of drive, media, and write mode. Blanking is prevented reliably, though.
To avoid inadverted real burning, -dummy refuses burn runs on anything but
CD-R[W], DVD-R[W], or emulated stdio-drives.
.TP
.BI \-eject
Eject the disc after work is done.
.TP
.BI \-force
Assume that the user knows better in situations when cdrskin or libburn are
insecure about drive or media state. This includes the attempt to blank
media which are classified as unknown or unsuitable, and the attempt to use
write modes which libburn believes they are not supported by the drive.
.br
Another application is to enforce blanking or re-formatting of media
which appear to be in the desired blank or format state already.
.br
This option enables a burn run with option -dummy even if libburn believes
that drive and media will not simulate the write mode but will write for real.
.br
.B Caution:
Use this only when in urgent need.
.TP
.BI \-format
Same as blank=format_overwrite_full -force but restricted to DVD+RW.
.TP
.BI fs= size
Set the fifo size to the given value. The value may have appended letters which
multiply the preceding number:
.br
"k" or "K" = 1024 , "m" or "M" = 1024k , "g" or "G" = 1024m , "s" or "S" = 2048
.br
Set size to 0 in order to disable the fifo (default is "4m").
.br
The fifo buffers an eventual temporary surplus of track source data in order to
provide the drive with a steady stream during times of temporary lack of track
source supply.
The larger the fifo, the longer periods of poor source supply can be
compensated.
But a large fifo needs substantial time to fill up if not curbed via
option fifo_start_at=size.
.TP
.BI gracetime= seconds
Set the grace time before starting to write. (Default is 0)
.TP
.BI -immed
Equivalent to:
.br
modesty_on_drive=1:min_percent=75:max_percent=95
.br
The name of this cdrecord option stems from the "Immed" bit which can make some
long running drive commands asynchronous and thus eases the load on some
wiring hardware types. Regardless of option -immed, cdrskin uses asynchronous
commands where possible and appropriate.
.TP
.BI -inq
Print the identification of the drive and then exit.
.TP
.BI -isosize
The next track following this option will try to obtain its source size from
the header information out of the first few blocks of the source data.
If these blocks indicate an ISO-9660 filesystem then its declared size
will be used under the assumption that it is a single session filesystem.
.br
If not, then the burn run will be aborted.
.br
The range of -isosize is exactly one track. Further tracks may be preceeded
by further -isosize options, though. At least 15 blocks of padding will be
added to each -isosize track. But be advised to rather use padsize=300k.
.br
This option can be performed on track sources which are regular files or block
devices. For the first track of the session it can be performed on any type
of source if there is a fifo of at least 64 kiB. See option fs= .
.TP
.BI -load
Load the media and exit. Exit value is 0 if any kind of media was found, non
zero else. Note: Option -eject will unload the media even if -load is given.
.TP
.BI -lock
Like option -load but leave the drive's eject button disabled if there is any
media found and not option -eject is given.
.br
Use program "eject" or cdrskin -eject to get the tray out of the drive.
Runs of programs like cdrecord, growisofs, wodim, cdrskin will not be hampered
and normally enable the drive's eject button when they are done.
.TP
.BI minbuf= percentage
Equivalent to:
.br
modesty_on_drive=1:min_percent=<percentage>:max_percent=95
.br
Percentage is permissible between 25 and 95.
.TP
.BI msifile= path
Run option -msinfo and copy the result line into the file given by path.
Unlike -msinfo this option does not redirect all normal output away from
standard output. But it may be combined with -msinfo to achieve this.
.br
Note: msifile=path is actually an option of wodim and not of cdrecord.
.TP
.BI \-msinfo
Retrieve multi-session info for preparing a follow-up session by option -C
of programs mkisofs or genisoimage. Print result to standard output.
This option redirects to stderr all message output except the one of option
--tell_media_space and its own result string, which consists of two numbers.
The result string shall be used as argument of option -C with said programs.
It gives the start address of the most recent session and the predicted
start address of the next session to be appended. The string is empty if
the most recent session was not written with option -multi.
.br
To have a chance for working on overwriteable media, this option has to be
accompanied by option --grow_overwriteable_iso.
.TP
.BI \-multi
This option keeps the CD or unformatted DVD-R[W] appendable after the current
session has been written.
Without it the disc gets closed and may not be written any more - unless it
is a -RW and gets blanked which causes loss of its content.
.br
The following sessions can only be written in -tao mode. -multi is prohibited
with DVD-R[W] DAO write mode. Option --prodvd_cli_compatible eventually makes
-multi tolerable but cannot make it work.
.br
In order to have all filesystem content accessible, the eventual ISO-9660
filesystem of a follow-up
session needs to be prepared in a special way by the filesystem formatter
program. mkisofs and genisoimage expect particular info about the situation
which can be retrieved by cdrskin option -msinfo.
.br
To retrieve an archive file which was written as follow-up session,
you may use option -toc to learn about the "lba" of the desired track number.
This lba is the address of the 2048 byte block where the archive begins.
.br
With overwriteable DVD media, -multi cannot mark the end of the session.
So when adding a new session this end has to be determined from the payload.
Currently only ISO-9660 filesystems can be used that way. See option
.B \--grow_overwriteable_iso
for lifting the ban on -multi.
.br
Note: -multi might make DVD media unreadable in some DVD-ROM drives.
.TP
.BI \-nopad
Do not add trailing zeros to the data stream. Nevertheless, since there seems
to be no use for audio tracks with incomplete last sector, this option applies
only to data tracks. There it is default.
.TP
.BI \-pad
Add 30 kiB of trailing zeros to each data track. (This is not sufficient to
avoid problems with various CD-ROM read drivers.)
.TP
.BI padsize= size
Add the given amount of trailing zeros to the next data track. This option
gets reset to padsize=0 after that next track is written. It may be set
again before the next track argument. About size specifiers, see option fs=.
.TP
.BI \-raw96r
Write CD in RAW/RAW96R mode. This mode allows to put more payload bytes
into a CD sector but obviously at the cost of error correction. It can only
be used for tracks of fixely predicted size. Some drives allow this mode but
then behave strange or even go bad for the next few attempts to burn a CD.
One should use it only if inavoidable.
.TP
.BI \-sao
Write CD in Session At Once mode, a sequential DVD-R[W] in Disc-at-once
(DAO) mode, or a DVD+R[/DL].
.br
With CD this mode is able to put several audio tracks on media without
producing audible gaps between them.
.br
With DVD-R[W] this mode can only write a single track.
No -multi is allowed with DVD-R[W] -sao.
.br
-sao is permissible with overwriteable DVD and with DVD+R[/DL] but actually
only imposes restrictions without providing known advantages.
.br
-sao can only be used for tracks of fixely predicted size. This implies that
track arguments which depict stdin or named pipes need to be preceeded by
option tsize= or by option tao_to_sao_tsize=.
.br
-sao cannot be used on appendable media.
.TP
.BI \-scanbus
Scan the system for drives. On Linux the drives at /dev/s* and at /dev/hd*
are to be scanned by two separate runs. One without dev= for /dev/s* and
one with dev=ATA for /dev/hd* devices. (Option --drives lists all available
drives in a single run.)
.br
Drives which are busy or which offer no rw-permission to the user of cdrskin
are not listed. Busy drives get reported in form of warning messages.
.br
The useful fields in a result line are:
.br
Bus,Target,Lun Number) 'Vendor' 'Mode' 'Revision'
.TP
.BI speed= number
Set speed of drive. With data CD, 1x speed corresponds to a throughput of
150,000 bytes/second. With DVD, 1x = 1,385,000 bytes/second.
It is not an error to set a speed higher than is suitable for drive
and media. One should stay within a realistic speed range, though.
Special speed settings are:
.br
0 = minimal speed , -1 = maximal speed (default), text "any" = like -1.
.TP
.BI \-swab
Announce that the raw audio data source of subsequent tracks is byte swapped
versus the expectations of cdrecord. This option is suitable for audio where
the least significant byte of a 16 bit word is first (little-endian, Intel).
Most raw audio data on PC systems are available in this byte order.
Less guesswork is needed if track sources are in format MS-WAVE in a file with
suffix ".wav".
.TP
.BI \-tao
Write CD in Track At Once (TAO) mode, sequential DVD-R[W] in Incremental
Streaming mode, or DVD+R[/DL] without traditional -sao restrictions.
This mode also applies pro-forma to overwriteable DVD media.
.br
Mode -tao can be used with track sources of unpredictable size, like standard
input or named pipes. It is also the only mode that can be used for writing
to appendable media which already hold data. With unformatted DVD-R[W] it is
the only mode which allows -multi.
.TP
.BI \-toc
Print the table of content (TOC) which describes the tracks recorded on disc.
The output contains all info from option -atip plus lines which begin with
"track:", the track number, the word "lba:" and a number which gives the
start address of the track. Addresses are counted in CD sectors which with
SAO or TAO data tracks hold 2048 bytes each.
.RS
.TP
Example. Retrieve an afio archive from track number 2:
.br
tracknumber=2
.br
lba=$(cdrskin dev=/dev/cdrom -toc 2>&1 | \\
.br
grep '^track:[ ]*[ 0-9][0-9]' | \\
.br
tail +"$tracknumber" | head -1 | \\
.br
awk '{ print $4}' )
.br
dd if=/dev/cdrom bs=2048 skip="$lba" | \\
.br
afio -t - | less
.RE
.TP
.BI tsize= size
Announces the exact size of the next track source. This is necessary with any
write mode other than -tao if the track source is not a regular disk file, but
e.g. "-" (standard input) or a named pipe.
About size specifiers, see option fs=.
.br
If the track source does not deliver the predicted amount of bytes, the
remainder of the track is padded with zeros. This is not considered an error.
If on the other hand the track source delivers more than the announced bytes
then the track on media gets truncated to the predicted size and cdrskin exits
with non-zero value.
.TP
.BI \-v
Increment verbose level by one. Startlevel is 0 with only few messages.
Level 1 prints progress report with long running operations and also causes
some extra lines to be put out with info retrieval options.
Level 2 additionally reports about option settings derived from arguments or
startup files. Level 3 is for debugging and useful mainly in conjunction with
somebody who had a look into the program sourcecode.
.TP
.BI \-waiti
Wait until input data is available at stdin or EOF occurs at stdin.
Only then begin to access any drives.
.br
One should use this if cdrskin is working at the end of a pipe where the
feeder process reads from the drive before it starts writing its output into
cdrskin. Example:
.br
mkisofs ... -C 0,12800 -M /dev/sr0 | \\
.br
cdrskin dev=/dev/sr0 ... -waiti -
.br
This option works even if stdin is not among the track sources. If no process
is piping in, then the Enter key of your terminal will act as trigger for
cdrskin. Note that this input line will not be consumed by cdrskin if stdin
is not among the track sources. It will end up as shell command, usually.
.PP
Alphabetical list of options which are genuine to cdrskin and intended for
normal use:
.TP
.BI \--adjust_speed_to_drive
Curb explicitely given speed= values to the maximum which is announced by the
drive for the loaded media. By default, such an adjustment is only made with
pseudo-speeds 0 and -1 whereas speed settings > 0 are sent unchanged to the
drive which will then choose an appropriate speed on its own.
.TP
.BI \--allow_emulated_drives
Enable drive addresses of the form dev=stdio:<path>. See above, paragraph
"Drive preparation and addressing".
.TP
.BI \--allow_setuid
Disable the loud warning about insecure discrepance between login user and
effective user which indicates application of chmod u+s to the program binary.
One should not do this chmod u+s , but it is an old cdrecord tradition.
.TP
.BI \--any_track
Allow source_addresses to begin with "-" (plus further characters) or to
contain a "=" character.
By default such arguments are seen as misspelled options. It is nevertheless
not possible to use one of the options listed with --list_ignored_options.
.TP
.BI assert_write_lba= block_number | byte_address
Abort if the write address given with this option is not the same as predicted
immediately before the write session starts. This option can ensure that a
start address which was presumed by a formatter like mkisofs -C is really used
by the drive for writing.
assert_write_lba=0 effectively demands blank media and excludes appendables.
.br
Block numbering is peculiar: If the last character of the option string is
a letter [a-zA-Z] then the usual unit scaling by "s", "k", "m", etc. applies
and the result is divided by 2048. Else the number value of the string is
taken as plain block number with block size 2048 byte.
(E.g ...=1000 or ...=1000s means block 1000, ...=1m means block
512, ...=4096b means block number 2)
.TP
.BI \--demand_a_drive
Exit with a nonzero value if no drive can be found during a bus scan.
.TP
.BI \--devices
List the device file addresses of all accessible CD drives. In order to get
listed, a drive has to offer rw-permission for the cdrskin user and it may
not be busy. The superuser should be able to see all idle drives listed and
busy drives reported as "SORRY" messages.
.br
Each available drive gets listed by a line containing the following fields:
.br
Number dev='Devicefile' rw-Permissions : 'Vendor' 'Model'
.br
Number and Devicefile can both be used with option dev=, but number is
volatile (numbering changes if drives become busy).
.TP
.BI direct_write_amount= size
Do not write a session with tracks but rather make an appropriate number of
direct write operations with no preparations. Flushing the drive buffer will
be the only finalization. It is advised to eject the media afterwards because
the write operations circumvent the usual system i/o with its caches and
buffers. By ejecting, those invalid memory copies get surely discarded.
.br
Only few media can be written this way: DVD-RAM, RVD+RW and overwriteable
DVD-RW. Writing is restricted to the already formatted area of the media.
.br
Writing starts at byte 0 of the media or at the address given by option
.B write_start_address= .
Only the first track source is used as input for the write operations.
The fifo (fs=) is disabled.
.br
Parameter
.B size
controls the amount of data to be written. Size 0 means that the track source
shall be used up until EOF. In this case, the last write transaction gets
padded up to the necessary size by zeros. Size -1 revokes direct writing
and switches back to normal session oriented writing.
.br
Both, write_start_address and direct_write_amount size must be aligned to a
media dependend transaction size. With DVD-RAM and DVD+RW this is 2k, with
overwriteable DVD-RW it is 32k.
.TP
.BI fallback_program= command
Set a command name to be executed if cdrskin encounters a known cdrecord
option which it does not yet support. If a non-empty command is given with
fallback_program=, and if no essential options are given which are specific
to cdrskin, then cdrskin will delegate the job to said command.
.br
The natural commands to be given are cdrecord or wodim but one may well submit
the address of an own program.
.br
The fallback programm will get all arguments of cdrskin which do not match
the shell patterns --?* or *_*=* . This eventually suppresses path names of
track sources which happen to match those patterns. The options from the
startup files are not handed to the fallback program.
.br
Fallback program execution is disabled if cdrskin is run setuid and not
option --allow_setuid is given. In general, the drive's device files and the
involved programs should be set up so that each program runs under its advised
conditions. (E.g. cdrskin as member of group floppy, cdrecord setuid root.)
.br
Two alias names for cdrskin are predefined with default fallback programs:
.br
.B unicord
implies fallback_program=cdrecord
.br
.B codim
implies fallback_program=wodim
.TP
.BI fifo_start_at= size
Do not wait for full fifo but start burning as soon as the given number
of bytes is read. This option may be helpful to bring the average throughput
near to the maximum throughput of a drive. A large fs= and a small
fifo_start_at= combine a quick burn start and a large savings buffer to
compensate for temporary lack of source data. At the beginning of burning,
the software protection against buffer underun is as weak as the size of
fifo_start_at= . So it is best if the drive offers hardware protection which
is enabled automatically if not driveropts=noburnfree is given.
.TP
.BI \--grow_overwriteable_iso
Enable emulation of multi-session writing on overwriteable media which
contain an ISO-9660 filesystem. This emulation is learned from growisofs -M
but adapted to the usage model of
.br
.B cdrskin -msinfo
.br
.B mkisofs -C -M | cdrskin -waiti [-multi] -
.br
--grow_overwriteable_iso does not hamper the use of true multi-session media.
I.e. it is possible to use the same cdrskin options with both kinds of media
and to achieve similar results if ISO-9660 filesystem images are to be written.
This option implies option -isosize and therefore demands that the track
source is a ISO-9660 filesystem image.
.br
With overwriteable media and no option blank=fast|all present it expands an
eventual ISO-9660 filesystem on media. It is assumed that this image's inner
size description points to the end of the valuable data.
Overwriteable media with a recognizeable ISO-9660 size will be regarded as
appendable rather than as blank. I.e. options -msinfo and -toc will work.
-toc will always show a single session with its size increasing with
every added mkisofs image.
.br
If not overriden by option write_start_address=, the track with the new image
will be placed behind the end of the old one. One may use option
assert_write_lba= to make sure that media state and mkisofs job do match.
.br
--grow_overwriteable_iso causes option blank=fast|all to invalidate an
eventual ISO-9660 image by altering the first few bytes of block 16 on
overwriteable media.
Option -multi is tolerated in order not to hamper true multi-session media.
.br
An equivalent of growisofs -Z for overwriteable media is:
.br
.B mkisofs | cdrskin --grow_overwriteable_iso blank=fast [-multi] -
.br
With multi-session DVD, blank=fast will act like dvd+rw-format -blank=full .
.br
growisofs -dvd-compat is roughly equivalent to cdrskin without option -multi.
.TP
.BI \--list_ignored_options
List all ignored cdrecord options. The "-" options cannot be used as addresses
of track sources. No track source address may begin with a text equal to an
option which ends by "=". The list is ended by an empty line.
.TP
.BI \--no_rc
Only if used as first command line argument this option prevents reading and
interpretation of eventual startup files. See section FILES below.
.TP
.BI \--prodvd_cli_compatible
Activates behavior modifications with some DVD situations which bring cdrskin
nearer to the behavior of cdrecord-ProDVD:
.br
Option -multi with unsuitable media is not an error but simply has no effect.
.br
Options blank=fast and blank=all deformat overwriteable DVD-RW media.
.br
Option blank=fast does indeed minmal blanking with DVD-RW. This may yield media
which can only do DAO but not Incremental Streaming.
.TP
.BI \--single_track
Accept only the last argument of the command line as track source address.
.TP
.BI tao_to_sao_tsize= size
Set an exact fixed size for the next track to be in effect only if the track
source cannot deliver a size prediction and no tsize= was specified and an
exact track size prediction is demanded by the write mode.
.br
This was the fallback from bad old times when cdrskin was unable to burn
in mode -tao . It came back with minimally blanked DVD-RW which allow no
Incremental Streaming (-tao) resp. with explicitly selected write mode -sao
for best DVD-ROM compatibility.
.br
If the track source delivers less bytes than announced then the missing ones
will be filled with zeros.
.TP
.BI --tell_media_space
Prepare a recording session, do not perform it but rather inquire the
maximum number of 2048 byte data blocks which may be written in
the current state of media with the prepared setup. So this option disables
recording of data. It does allow blanking, though, and will measure space
afterwards.
.br
It is not mandatory to give track sources but their nature may influence
the available capacity. So for most realistic results one may set up
the full burn session and add --tell_media_space. But if one has to expect
a cdrskin version prior to 0.3.3 no track source should be given in order
not to start an involuntary burn session.
In this case set at least -sao or -tao explicitely.
.br
The result gets printed to standard output. It is 0 or empty if no writing
is possible with the given options.
This option redirects to stderr all message output except its own result
string and eventual output of -msinfo.
.TP
.BI write_start_address= byte_offset
Set the address on media where to start writing the track. With DVD+RW or
DVD-RAM byte_offset must be aligned to 2 kiB blocks, but better is 32 kiB.
With DVD-RW 32 kiB alignment is mandatory.
.br
Other media are not suitable for this option yet.
.PP
Alphabetical list of options which are only intended for very special
situations and not for normal use:
.TP
.BI \--abort_handler
Establish default signal handling not to leave a drive in busy state
but rather to shut it down and to wait until it has ended the final operations.
This option is only needed for revoking eventual --ignore_signals or
--no_abort_handler.
.TP
.BI \--allow_untested_media
Enable the use of media profiles which have been implemented but not yet
tested. Currently this applies to :
.br
Profile 0015h , DVD-R/DL Sequential (will not allow -multi).
.br
Profile 0043h , BD-RE.
.br
If you really test such media, then please report the outcome on
libburn-hackers@pykix.org
.TP
.BI dev_translation= <sep><from><sep><to>
Set drive address alias. This was necessary before cdrskin-0.2.4 to manually
translate cdrecord addresses into cdrskin addresses.
.br
<sep> is a single character which may not occur in the address string
<from>. <from> is an address as expected to be given by the user via option
dev=. <to> is the address to be used instead whenever <from> is given.
More than one translation instruction can be given in one cdrskin run.
.br
E.g.: dev_translation=+ATA:1,0,0+/dev/sr1 dev_translation=+ATA:1,1,0+/dev/sr2
.TP
.BI \--drive_abort_on_busy
Linux specific: Abort process if a busy drive is encountered.
.TP
.BI \--drive_blocking
Linux specific: Try to wait for a busy drive to become free.
This is not guaranteed to work with all drivers. Some need nonblocking i/o.
.TP
.BI \--drive_f_setlk
Linux specific: Try to get exclusive lock on drive device file via fcntl(2).
.TP
.BI \--drive_not_exclusive
Linux specific: Combine --drive_not_f_setlk and --drive_not_o_excl.
.TP
.BI \--drive_not_f_setlk
Linux specific: Do not try to get exclusive lock on drive device file via
fcntl(2).
.TP
.BI \--drive_not_o_excl
Linux specific: Do not ask the operating system to prevent opening busy drives.
Wether this leads to senseful behavior depends on operating system and kernel.
.TP
.BI drive_scsi_dev_family= sr | scd | sg
Linux specific: Select a SCSI device file family to be used for drive command
transactions. Normally this is /dev/sgN on kernel versions < 2.6 and /dev/srN
on kernels >= 2.6 . This option allows to explicitely override that default
in order to meet other programs at a common device file for each drive.
On kernel 2.4 families sr and scd will find no drives.
.br
Device file family /dev/hdX on kernel >= 2.6 is not affected by this setting.
.TP
.BI \--drive_scsi_exclusive
Linux specific:
Try to exclusively reserve device files /dev/srN, /dev/scdM, /dev/sgK of drives.
This would be helpful to protect against collisions with program growisofs.
Regrettably on Linux kernel 2.4 with ide-scsi emulation this seems not to
work. Wether it becomes helpful with new Linux systems has to be evaluated.
.TP
.BI \--fifo_disable
Disable fifo despite any fs=.
.TP
.BI \--fifo_per_track
Use a separate fifo for each track.
.TP
.BI \--fill_up_media
Expand the last track of the session to occupy all remaining free space on
the media.
.br
This option overrides option -multi. It will not fill up media if option -sao
is given with CD media.
.br
.B Caution:
With multi-session media this option might increase readatibility on DVD-ROM
drives but with some DVD recorders and media types it might also fail to
produce readable media at all. "Your mileage may vary".
.br
You can expect the best possible read compatibility if you do not use -multi at
all.
.TP
.BI grab_drive_and_wait= seconds
Open the addressed drive, wait the given number of seconds, release the drive,
and do normal work as indicated by the other options used. This option helps
to explore the program behavior when faced with busy drives. Just start a
second cdrskin with option --devices while grab_drive_and_wait= is still
active.
.TP
.BI \--ignore_signals
Try to ignore any signals rather than to abort the program. This is not a
very good idea. You might end up waiting a very long time for cdrskin
to finish.
.TP
.BI modesty_on_drive= <mode>[:min_percent=<num>][:max_percent=<num>]
Mode 1 keeps the program from trying to write to the burner drive while its
buffer is in danger to be filled by more than max_percent. If this filling is
exceeded then the program will wait until the filling is at most min_percent.
.br
This can ease the load on operating system and drive controller and thus help
with achieving better input bandwidth if disk and burner are not on independent
controllers (like hda and hdb). Unsufficient input bandwidth is indicated by
output "(fifo xy%)" of option -v if xy is lower than 90 for some time.
modesty_on_drive= might hamper output bandwidth and cause buffer underruns.
.br
To have max_percent larger than the burner's best actual
buffer fill has the same effect as min_percent==max_percent. Some burners
do not use their full buffer with all media types. Watch output "[buf xy%]"
of option -v to get an impression of the actual buffer usage. Some burners
are not suitable because they report buffer fill with granularity too large
in size or time.
.br
Mode 0 disables this feature. Mode -1 keeps it unchanged. Default is:
.br
modesty_on_drive=0:min_percent=65:max_percent=95
.br
Percentages are permissible in the range of 25 to 100.
.TP
.BI \--no_abort_handler
On signals exit even if the drive is in busy state. This is not a very good
idea. You might end up with a stuck drive that refuses to hand out the media.
.TP
.BI \--no_blank_appendable
Refuse to blank appendable CD-RW or DVD-RW. This is a feature that was once
builtin with libburn. No information available for what use case it was needed.
.TP
.BI \--no_convert_fs_adr
Do only literal translations of dev=. This prevents cdrskin from test-opening
device files in order to find one that matches the given dev= specifier.
.br
Partly Linux specific:
Such opening is needed for Bus,Target,Lun addresses unless option
--old_pseudo_scsi_adr is given. It is also needed to resolve device file
addresses which are not listed with cdrskin --devices but nevertheless point
to a usable drive. (Like /dev/sg0 using the same SCSI address as /dev/sr0.)
.TP
.BI \--old_pseudo_scsi_adr
Linux specific:
Use and report literal Bus,Target,Lun addresses rather than real SCSI and
pseudo ATA addresses. This method is outdated and was never compatible with
original cdrecord.
.TP
.BI stream_recording="on"|"off"
By setting "on" request that compliance to the desired speed setting is
preferred over management of write errors. With DVD-RAM this can bring
effective write speed near to the nominal write speed of the media. But it
will also disable the automatic use of replacement blocks if write errors
occur. It might as well be disliked or ignored by the drive.
.br
.SH EXAMPLES
.SS
.B Get an overview of drives and their addresses:
.br
cdrskin -scanbus
.br
cdrskin dev=ATA -scanbus
.br
cdrskin --devices
.SS
.B Get info about a particular drive or loaded media:
.br
cdrskin dev=0,1,0 -checkdrive
.br
cdrskin dev=ATA:1,0,0 -v -atip
.br
cdrskin dev=/dev/hdc -toc
.SS
.B Make used CD-RW or used unformatted DVD-RW writable again:
.br
cdrskin -v dev=/dev/sg1 blank=fast -eject
.br
cdrskin -v dev=/dev/dvd blank=all -eject
.SS
.B Format DVD-RW to avoid need for blanking before re-use:
.br
cdrskin -v dev=/dev/sr0 blank=format_overwrite
.SS
.B De-format DVD-RW to make it capable of multi-session again:
.br
cdrskin -v dev=/dev/sr0 blank=deformat_sequential
.SS
.B Write ISO-9660 filesystem image as only one to blank or formatted media:
.br
cdrskin -v dev=/dev/hdc speed=12 fs=8m \\
.br
-sao -eject padsize=300k my_image.iso
.SS
.B Write compressed afio archive on-the-fly (not possible with minimally blanked DVD-RW):
.br
find . | afio -oZ - | \\
.br
cdrskin -v dev=0,1,0 fs=32m speed=8 \\
.br
-tao padsize=300k -
.SS
.B Write multi-session to the same CD, DVD-R[W] or DVD+R[/DL]:
.br
cdrskin dev=/dev/hdc -v padsize=300k -multi -tao 1.iso
.br
cdrskin dev=/dev/hdc -v padsize=300k -multi -tao 2.iso
.br
cdrskin dev=/dev/hdc -v padsize=300k -multi -tao 3.iso
.br
cdrskin dev=/dev/hdc -v padsize=300k -tao 4.iso
.SS
.B Get multi-session info for option -C of program mkisofs:
.br
c_values=$(cdrskin dev=/dev/hdc -msinfo 2>/dev/null)
.br
mkisofs ... -C "$c_values" ...
.SS
.B Inquire free space on media for a -tao -multi run:
.br
x=$(cdrskin dev=/dev/sr0 -tao -multi \\
.br
--tell_media_space 2>/dev/null)
.br
echo "Available: $x blocks of 2048 data bytes"
.SS
.B Write audio tracks to CD:
.br
cdrskin -v dev=ATA:1,0,0 speed=48 -sao \\
.br
track1.wav track2.au -audio -swab track3.raw
.br
.SH FILES
.SS
Startup files:
.br
If not --no_rc is given as the first argument then cdrskin attempts on
startup to read the arguments from the following files:
.PP
.br
.B /etc/default/cdrskin
.br
.B /etc/opt/cdrskin/rc
.br
.B /etc/cdrskin/cdrskin.conf
.br
.B $HOME/.cdrskinrc
.br
.PP
The files are read in the sequence given above, but none of them is
required for cdrskin to function properly. Each readable line is treated
as one single argument. No extra blanks.
A first character '#' marks a comment, empty lines are ignored.
.br
Example content of a startup file:
.br
# This is the default device
.br
dev=0,1,0
.br
# Some more options
.br
fifo_start_at=0
.br
fs=16m
.br
.SS
Disabling superuser safety precautions:
The superuser is normally banned from using any other emulated drive but
/dev/null. This ban can be lifted by the existence of file
.PP
.B /root/cdrskin_permissions/allow_emulated_drives
.PP
where the directory must be owned by the superuser and must not offer
w-permissions for group or others.
.br
Warning: Superusers must take care not to spoil their hard disk via its raw
block device (like stdio:/dev/hda or stdio:/dev/sd0).
.SH SEE ALSO
.TP
Formatting data track sources for cdrskin:
.br
.BR mkisofs (8),
.BR genisoimage (8),
.BR xorriso (1),
.BR afio (1),
.BR star (1)
.br
.TP
Other CD/DVD/BD burn programs:
.br
.BR cdrecord (1),
.BR wodim (1),
.BR xorriso (1)
.br
.TP
For DVD/BD burning (also tutor of libburn's DVD/BD capabilities):
.br
.BR growisofs (1)
.br
.SH AUTHOR
cdrskin was written by Thomas Schmitt <scdbackup@gmx.net>.
.PP
This manual page was started by George Danchev <danchev@spnet.net> and
is now maintained by Thomas Schmitt.