Compare commits
9 Commits
ZeroTwoSix
...
ZeroTwoSix
Author | SHA1 | Date | |
---|---|---|---|
9ab5290059 | |||
ec1aa0c49a | |||
80639a7749 | |||
8c82e3c437 | |||
de02cc26f9 | |||
35a1a1f7d7 | |||
54d3702513 | |||
c3f9764e0a | |||
ab4096e720 |
@ -103,7 +103,7 @@ test_structest_SOURCES = test/structest.c
|
|||||||
|
|
||||||
## cdrskin construction site - ts A60816
|
## cdrskin construction site - ts A60816
|
||||||
cdrskin_cdrskin_CPPFLAGS = -Ilibburn
|
cdrskin_cdrskin_CPPFLAGS = -Ilibburn
|
||||||
cdrskin_cdrskin_CFLAGS = -DCdrskin_libburn_0_2_3
|
cdrskin_cdrskin_CFLAGS = -DCdrskin_libburn_0_2_6
|
||||||
cdrskin_cdrskin_LDADD = $(libburn_libburn_la_OBJECTS) $(THREAD_LIBS)
|
cdrskin_cdrskin_LDADD = $(libburn_libburn_la_OBJECTS) $(THREAD_LIBS)
|
||||||
cdrskin_cdrskin_SOURCES = cdrskin/cdrskin.c cdrskin/cdrfifo.c cdrskin/cdrfifo.h cdrskin/cdrskin_timestamp.h
|
cdrskin_cdrskin_SOURCES = cdrskin/cdrskin.c cdrskin/cdrfifo.c cdrskin/cdrfifo.h cdrskin/cdrskin_timestamp.h
|
||||||
##
|
##
|
||||||
@ -165,6 +165,9 @@ indent: $(indent_files)
|
|||||||
nodist_pkgconfig_DATA = \
|
nodist_pkgconfig_DATA = \
|
||||||
libburn-1.pc
|
libburn-1.pc
|
||||||
|
|
||||||
|
# http://www.nada.kth.se/cgi-bin/info?(automake.info)Man%20pages
|
||||||
|
man_MANS = cdrskin/cdrskin.1
|
||||||
|
|
||||||
EXTRA_DIST = \
|
EXTRA_DIST = \
|
||||||
libburn-1.pc.in \
|
libburn-1.pc.in \
|
||||||
version.h.in \
|
version.h.in \
|
||||||
@ -186,5 +189,6 @@ EXTRA_DIST = \
|
|||||||
libburn/os-linux.h \
|
libburn/os-linux.h \
|
||||||
libburn/sg-freebsd.c \
|
libburn/sg-freebsd.c \
|
||||||
libburn/sg-linux.c \
|
libburn/sg-linux.c \
|
||||||
COPYING
|
COPYING \
|
||||||
|
$(man_MANS)
|
||||||
|
|
||||||
|
@ -26,12 +26,12 @@ following possible.
|
|||||||
cdrskin. By Thomas Schmitt <scdbackup@gmx.net>
|
cdrskin. By Thomas Schmitt <scdbackup@gmx.net>
|
||||||
Integrated sub project of libburn.pykix.org but also published via:
|
Integrated sub project of libburn.pykix.org but also published via:
|
||||||
http://scdbackup.sourceforge.net/cdrskin_eng.html
|
http://scdbackup.sourceforge.net/cdrskin_eng.html
|
||||||
http://scdbackup.sourceforge.net/cdrskin-0.2.5.tar.gz
|
http://scdbackup.sourceforge.net/cdrskin-0.2.6.pl01.tar.gz
|
||||||
Copyright (C) 2006 Thomas Schmitt
|
Copyright (C) 2006 Thomas Schmitt
|
||||||
|
|
||||||
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
||||||
|
|
||||||
On top of libburn there is implemented cdrskin 0.2.5, a limited cdrecord
|
On top of libburn there is implemented cdrskin 0.2.6, a limited cdrecord
|
||||||
compatibility wrapper which allows to use some libburn features from
|
compatibility wrapper which allows to use some libburn features from
|
||||||
the command line.
|
the command line.
|
||||||
Interested users of cdrecord are invited to participate in the development
|
Interested users of cdrecord are invited to participate in the development
|
||||||
@ -59,16 +59,16 @@ systems, including 64 bit systems. (Further reports are welcome.)
|
|||||||
|
|
||||||
Compilation, First Glimpse, Installation
|
Compilation, First Glimpse, Installation
|
||||||
|
|
||||||
Obtain cdrskin-0.2.5.tar.gz , take it to a directory of your choice and do:
|
Obtain cdrskin-0.2.6.pl02.tar.gz, take it to a directory of your choice and do:
|
||||||
|
|
||||||
tar xzf cdrskin-0.2.5.tar.gz
|
tar xzf cdrskin-0.2.6.pl02.tar.gz
|
||||||
cd cdrskin-0.2.5
|
cd cdrskin-0.2.6
|
||||||
|
|
||||||
Or obtain a libburn.pykix.org SVN snapshot,
|
Or obtain a libburn.pykix.org SVN snapshot,
|
||||||
go into the toplevel directory of the snapshot (e.g. cd libburn_pykix ),
|
go into the toplevel directory of the snapshot (e.g. cd libburn_pykix ),
|
||||||
and execute the autotools script ./bootstrap . Use autools version >= 1.7 .
|
and execute the autotools script ./bootstrap . Use autools version >= 1.7 .
|
||||||
|
|
||||||
Within that toplevel directory of either cdrskin-0.2.5 or libburn then execute:
|
Within that toplevel directory of either cdrskin-0.2.6 or libburn then execute:
|
||||||
|
|
||||||
./configure
|
./configure
|
||||||
make
|
make
|
||||||
@ -90,6 +90,7 @@ Version identification and help texts available afterwards:
|
|||||||
cdrskin/cdrskin -version
|
cdrskin/cdrskin -version
|
||||||
cdrskin/cdrskin --help
|
cdrskin/cdrskin --help
|
||||||
cdrskin/cdrskin -help
|
cdrskin/cdrskin -help
|
||||||
|
man cdrskin/cdrskin.1
|
||||||
|
|
||||||
Install (eventually as superuser) cdrskin to a directory where it can be found:
|
Install (eventually as superuser) cdrskin to a directory where it can be found:
|
||||||
If cdrskin was already installed by a previous version, or by "make install"
|
If cdrskin was already installed by a previous version, or by "make install"
|
||||||
@ -108,6 +109,10 @@ It will not collide with an installed version of libburn either.
|
|||||||
But libpthread must be installed on the system and glibc has to match. (See
|
But libpthread must be installed on the system and glibc has to match. (See
|
||||||
below for a way to create a statically linked binary.)
|
below for a way to create a statically linked binary.)
|
||||||
|
|
||||||
|
To install the man page, you may do: echo $MANPATH and choose one of the
|
||||||
|
listed directories to copy the man-page under its ./man1 directory. Like:
|
||||||
|
cp cdrskin/cdrskin.1 /usr/share/man/man1/cdrskin.1
|
||||||
|
|
||||||
|
|
||||||
Usage
|
Usage
|
||||||
|
|
||||||
|
@ -36,10 +36,13 @@ intermediate="./libburn_pykix"
|
|||||||
# My changes are in libburn-0.2.3.ts.develop , mainly in ./cdrskin
|
# My changes are in libburn-0.2.3.ts.develop , mainly in ./cdrskin
|
||||||
|
|
||||||
changes="./libburn-0.2.3.ts.develop"
|
changes="./libburn-0.2.3.ts.develop"
|
||||||
skin_rev="0.2.4"
|
skin_release="0.2.6"
|
||||||
|
patch_level=".pl01"
|
||||||
|
skin_rev="$skin_release""$patch_level"
|
||||||
|
|
||||||
|
|
||||||
# The result directory and the name of the result tarballs
|
# The result directory and the name of the result tarballs
|
||||||
target="./cdrskin-${skin_rev}"
|
target="./cdrskin-${skin_release}"
|
||||||
cdrskin_tarball="./cdrskin-${skin_rev}.tar.gz"
|
cdrskin_tarball="./cdrskin-${skin_rev}.tar.gz"
|
||||||
cdrskin_tarball_svn="./cdrskin-${skin_rev}.svn.tar.gz"
|
cdrskin_tarball_svn="./cdrskin-${skin_rev}.svn.tar.gz"
|
||||||
|
|
@ -36,7 +36,7 @@ intermediate="./libburn_pykix"
|
|||||||
# My changes are in libburn-0.2.3.ts.develop , mainly in ./cdrskin
|
# My changes are in libburn-0.2.3.ts.develop , mainly in ./cdrskin
|
||||||
|
|
||||||
changes="./libburn-0.2.3.ts.develop"
|
changes="./libburn-0.2.3.ts.develop"
|
||||||
skin_rev="0.2.5"
|
skin_rev="0.2.7"
|
||||||
|
|
||||||
# The result directory and the name of the result tarballs
|
# The result directory and the name of the result tarballs
|
||||||
target="./cdrskin-${skin_rev}"
|
target="./cdrskin-${skin_rev}"
|
600
cdrskin/cdrskin.1
Normal file
600
cdrskin/cdrskin.1
Normal file
@ -0,0 +1,600 @@
|
|||||||
|
.\" 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 "December 13, 2006"
|
||||||
|
.\" 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 or CD-RW 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.
|
||||||
|
You don't need to be root to use it.
|
||||||
|
.PP
|
||||||
|
.B Overview of features:
|
||||||
|
.br
|
||||||
|
Blanking of CD-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 (follow-up sessions in TAO only).
|
||||||
|
.br
|
||||||
|
Bus scan, burnfree, speed options, retrieving media info, padding, fifo.
|
||||||
|
.br
|
||||||
|
See section EXAMPLES at the end of this text.
|
||||||
|
.PP
|
||||||
|
.B Known deficiencies:
|
||||||
|
.br
|
||||||
|
No DVD support yet.
|
||||||
|
.PP
|
||||||
|
.B Track recording model:
|
||||||
|
.br
|
||||||
|
The input-output entities which get processed are called tracks.
|
||||||
|
A track 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 source and the state of the output media.
|
||||||
|
.PP
|
||||||
|
There can be more than one track burned by a single run of cdrskin.
|
||||||
|
CDs 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.
|
||||||
|
.br
|
||||||
|
If not explicitely option -audio is given, then any track is burned as 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
|
||||||
|
data 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 with CD, though. Well tested are
|
||||||
|
the archivers afio and star. Not suitable seems GNU tar.
|
||||||
|
.PP
|
||||||
|
.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.
|
||||||
|
.br
|
||||||
|
CD-RW media can be blanked to make them re-usable for another
|
||||||
|
round of overwriting. 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.
|
||||||
|
.br
|
||||||
|
.SH OPTIONS
|
||||||
|
.TP
|
||||||
|
.BI \-\-help
|
||||||
|
Show non-cdrecord compatible options.
|
||||||
|
.TP
|
||||||
|
.BI \-help
|
||||||
|
Show cdrecord compatible options.
|
||||||
|
.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".
|
||||||
|
.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. 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 automatically. Same is done for suffix .au and SUN Audio.
|
||||||
|
.TP
|
||||||
|
.BI blank= type
|
||||||
|
Blank a CD-RW disc. 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 the entire disk.
|
||||||
|
.TP
|
||||||
|
fast
|
||||||
|
Minimally blank the entire disk.
|
||||||
|
.RE
|
||||||
|
.TP
|
||||||
|
.BI \-checkdrive
|
||||||
|
Retrieve some info about the addressed drive.
|
||||||
|
Exits with non-zero value if the drive cannot be found and opened.
|
||||||
|
.TP
|
||||||
|
.BI \-dao
|
||||||
|
Alias for option -sao. Write disk in Session 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
|
||||||
|
Sets the (pseudo-)SCSI address of the drive to use. Valid are at least the
|
||||||
|
X,Y,Z addresses listed with option -scanbus, ATA:X,Y,Z addresses listed with
|
||||||
|
options dev=ATA -scanbus, the device file addresses listed with
|
||||||
|
option --devices , 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 on multi-drive systems.
|
||||||
|
.br
|
||||||
|
The special target "help" lists hints about available addressing formats.
|
||||||
|
Be aware that option --old_pseudo_scsi_adr changes the meaning of
|
||||||
|
Bus,Target,Lun addresses.
|
||||||
|
.TP
|
||||||
|
.BI driveropts= opt
|
||||||
|
Set "driveropts=burnfree" to enable the drive's eventual protection mechanism
|
||||||
|
against temporary lack of source data (i.e. buffer underrun).
|
||||||
|
It is not an error to do this with a drive that has no such capabilities.
|
||||||
|
.TP
|
||||||
|
.BI \-dummy
|
||||||
|
Try to perform the drive operations without actually affecting the inserted
|
||||||
|
media. There is no guarantee that this will work with a particular drive
|
||||||
|
in a particular write mode. Blanking is prevented reliably, though.
|
||||||
|
.TP
|
||||||
|
.BI \-eject
|
||||||
|
Eject the disk 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
|
||||||
|
Use this only when in urgent need.
|
||||||
|
.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 \-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 besides 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.
|
||||||
|
.TP
|
||||||
|
.BI \-multi
|
||||||
|
This option keeps the CD appendable after the current session has been written.
|
||||||
|
Without it the disk gets closed and may not be written any more - unless it
|
||||||
|
is a CD-RW and gets blanked which causes loss of its content.
|
||||||
|
.br
|
||||||
|
The following sessions can only be written in -tao mode.
|
||||||
|
.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.
|
||||||
|
.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 kB 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 disk 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 disk in Session At Once mode. This mode is able to put several audio
|
||||||
|
tracks on CD without producing audible gaps between them. It 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=.
|
||||||
|
.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 kB/s. 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.
|
||||||
|
.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 disk in Track At Once (TAO) mode. This mode 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 CD which
|
||||||
|
already hold data.
|
||||||
|
.TP
|
||||||
|
.BI \-toc
|
||||||
|
Print the table of content (TOC) which describes the tracks recorded on CD.
|
||||||
|
The output contains all info from option -atip plus lines which begin with
|
||||||
|
"track: " followed by 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 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 CD 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.
|
||||||
|
.PP
|
||||||
|
Alphabetical list of options which are genuine to cdrskin and intended for
|
||||||
|
normal use:
|
||||||
|
.TP
|
||||||
|
.BI \--allow_setuid
|
||||||
|
Disable the program abort triggered by an 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 of cdrecord-2.01.
|
||||||
|
.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 drives. In order to get
|
||||||
|
listed a drive has to offer rw-permission for the cdrskin user and it may
|
||||||
|
not be busy.
|
||||||
|
Busy drives are reported as "SORRY" messages on standard error.
|
||||||
|
.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).
|
||||||
|
Normal users might not see all drives unless the superuser enabled access
|
||||||
|
by chmod o+rw
|
||||||
|
after using cdrskin --devices to get an overview of the situation.
|
||||||
|
That's why current rw-Permissions are listed.
|
||||||
|
.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
|
||||||
|
has to be enabled by driveropts=burnfree.
|
||||||
|
.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 \--single_track
|
||||||
|
Accept only the last argument of the command line as track source address.
|
||||||
|
.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 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/sg1 dev_translation=+ATA:1,1,0+/dev/sg2
|
||||||
|
.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_not_exclusive
|
||||||
|
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_exclusive
|
||||||
|
Linux specific:
|
||||||
|
Try to exclusively reserve device files /dev/srN, /dev/scdM, /dev/stK of drive.
|
||||||
|
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 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 \--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. 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/sr0 using the same SCSI address as /dev/sg0.)
|
||||||
|
.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 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.
|
||||||
|
This is the fallback from bad old times when cdrskin was unable to burn
|
||||||
|
in mode -tao.
|
||||||
|
.br
|
||||||
|
.SH EXAMPLES
|
||||||
|
.SS
|
||||||
|
.B Get an overview of drives:
|
||||||
|
.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 -atip
|
||||||
|
.br
|
||||||
|
cdrskin dev=/dev/hdc -toc
|
||||||
|
.SS
|
||||||
|
.B Make used CD-RW writable again:
|
||||||
|
.br
|
||||||
|
cdrskin -v dev=/dev/sg1 blank=all -eject
|
||||||
|
.br
|
||||||
|
cdrskin -v dev=/dev/dvd blank=fast -eject
|
||||||
|
.SS
|
||||||
|
.B Write ISO-9660 filesystem image:
|
||||||
|
.br
|
||||||
|
cdrskin -v dev=/dev/hdc speed=12 fs=8m \\
|
||||||
|
.br
|
||||||
|
driveropts=burnfree -sao -eject \\
|
||||||
|
.br
|
||||||
|
padsize=300k my_image.iso
|
||||||
|
.SS
|
||||||
|
.B Write compressed afio archive on-the-fly:
|
||||||
|
.br
|
||||||
|
find . | afio -oZ - | \\
|
||||||
|
.br
|
||||||
|
cdrskin -v dev=0,1,0 fs=32m speed=8 driveropts=burnfree \\
|
||||||
|
.br
|
||||||
|
padsize=300k -tao -
|
||||||
|
.SS
|
||||||
|
.B Write several sessions to the same CD:
|
||||||
|
.br
|
||||||
|
cdrskin dev=/dev/hdc padsize=300k -multi 1.iso
|
||||||
|
.br
|
||||||
|
cdrskin dev=/dev/hdc padsize=300k -multi -tao 2.afio
|
||||||
|
.br
|
||||||
|
cdrskin dev=/dev/hdc padsize=300k -multi -tao 3.afio
|
||||||
|
.br
|
||||||
|
cdrskin dev=/dev/hdc padsize=300k -tao 4.afio
|
||||||
|
.SS
|
||||||
|
.B Get the multi-session info for option -C of program mkisofs:
|
||||||
|
.br
|
||||||
|
c_values=$(cdrskin dev=/dev/sr0 -msinfo 2>/dev/null)
|
||||||
|
.br
|
||||||
|
mkisofs ... -C "$c_values" ...
|
||||||
|
.SS
|
||||||
|
.B Write audio tracks:
|
||||||
|
.br
|
||||||
|
cdrskin -v dev=ATA:1,0,0 speed=48 \\
|
||||||
|
.br
|
||||||
|
driveropts=burnfree -sao \\
|
||||||
|
.br
|
||||||
|
track1.wav track2.au -audio -swab track3.raw
|
||||||
|
.br
|
||||||
|
.SH FILES
|
||||||
|
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 $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.
|
||||||
|
.SS
|
||||||
|
.B Example content of a startup file:
|
||||||
|
.br
|
||||||
|
# This is the default device
|
||||||
|
.br
|
||||||
|
dev=0,1,0
|
||||||
|
.br
|
||||||
|
# To accomodate to remnant cdrskin-0.2.2 addresses
|
||||||
|
.br
|
||||||
|
dev_translation=+1,0,0+0,1,0
|
||||||
|
.br
|
||||||
|
# Some more options
|
||||||
|
.br
|
||||||
|
fifo_start_at=0
|
||||||
|
.br
|
||||||
|
fs=16m
|
||||||
|
.br
|
||||||
|
.SH SEE ALSO
|
||||||
|
.TP
|
||||||
|
Formatting track sources for cdrskin:
|
||||||
|
.br
|
||||||
|
.BR mkisofs (8),
|
||||||
|
.BR genisoimage (8),
|
||||||
|
.BR afio (1),
|
||||||
|
.BR star (1)
|
||||||
|
.br
|
||||||
|
.TP
|
||||||
|
Other CD burn programs:
|
||||||
|
.br
|
||||||
|
.BR cdrecord (1),
|
||||||
|
.BR wodim (1)
|
||||||
|
.br
|
||||||
|
.TP
|
||||||
|
For DVD burning:
|
||||||
|
.br
|
||||||
|
.BR growisofs (1)
|
||||||
|
.br
|
||||||
|
.SH AUTHOR
|
||||||
|
cdrskin was written by Thomas Schmitt <scdbackup@gmx.net>.
|
||||||
|
.PP
|
||||||
|
This manual page was written by George Danchev <danchev@spnet.net> and
|
||||||
|
Thomas Schmitt, for the Debian project and for all others.
|
||||||
|
|
@ -123,7 +123,7 @@ or
|
|||||||
|
|
||||||
/** The official program version */
|
/** The official program version */
|
||||||
#ifndef Cdrskin_prog_versioN
|
#ifndef Cdrskin_prog_versioN
|
||||||
#define Cdrskin_prog_versioN "0.2.5"
|
#define Cdrskin_prog_versioN "0.2.6"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/** The source code release timestamp */
|
/** The source code release timestamp */
|
||||||
@ -156,14 +156,25 @@ or
|
|||||||
#endif /* Cdrskin_libburn_cvs_A60220_tS */
|
#endif /* Cdrskin_libburn_cvs_A60220_tS */
|
||||||
|
|
||||||
|
|
||||||
#ifdef Cdrskin_libburn_0_2_2
|
#ifdef Cdrskin_libburn_0_2_6
|
||||||
#define Cdrskin_libburn_versioN "0.2.2"
|
#define Cdrskin_libburn_versioN "0.2.6"
|
||||||
|
#define Cdrskin_libburn_from_pykix_svN 1
|
||||||
|
#endif /* Cdrskin_libburn_0_2_6 */
|
||||||
|
|
||||||
|
#ifndef Cdrskin_libburn_versioN
|
||||||
|
#define Cdrskin_libburn_versioN "0.2.6"
|
||||||
#define Cdrskin_libburn_from_pykix_svN 1
|
#define Cdrskin_libburn_from_pykix_svN 1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef Cdrskin_libburn_0_2_3
|
#ifdef Cdrskin_libburn_from_pykix_svN
|
||||||
#define Cdrskin_libburn_versioN "0.2.3"
|
#ifndef Cdrskin_oldfashioned_api_usE
|
||||||
#define Cdrskin_libburn_from_pykix_svN 1
|
|
||||||
|
#define Cdrskin_libburn_does_ejecT 1
|
||||||
|
#define Cdrskin_libburn_has_drive_get_adR 1
|
||||||
|
#define Cdrskin_progress_track_does_worK 1
|
||||||
|
#define Cdrskin_is_erasable_on_load_does_worK 1
|
||||||
|
#define Cdrskin_grab_abort_does_worK 1
|
||||||
|
#define Cdrskin_allow_libburn_taO 1
|
||||||
#define Cdrskin_libburn_has_is_enumerablE 1
|
#define Cdrskin_libburn_has_is_enumerablE 1
|
||||||
#define Cdrskin_libburn_has_convert_fs_adR 1
|
#define Cdrskin_libburn_has_convert_fs_adR 1
|
||||||
#define Cdrskin_libburn_has_convert_scsi_adR 1
|
#define Cdrskin_libburn_has_convert_scsi_adR 1
|
||||||
@ -178,21 +189,6 @@ or
|
|||||||
#define Cdrskin_libburn_has_pretend_fulL 1
|
#define Cdrskin_libburn_has_pretend_fulL 1
|
||||||
#define Cdrskin_libburn_has_multI 1
|
#define Cdrskin_libburn_has_multI 1
|
||||||
#define Cdrskin_libburn_has_buffer_min_filL 1
|
#define Cdrskin_libburn_has_buffer_min_filL 1
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef Cdrskin_libburn_versioN
|
|
||||||
#define Cdrskin_libburn_versioN "0.2.2"
|
|
||||||
#define Cdrskin_libburn_from_pykix_svN 1
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef Cdrskin_libburn_from_pykix_svN
|
|
||||||
|
|
||||||
#define Cdrskin_libburn_does_ejecT 1
|
|
||||||
#define Cdrskin_libburn_has_drive_get_adR 1
|
|
||||||
#define Cdrskin_progress_track_does_worK 1
|
|
||||||
#define Cdrskin_is_erasable_on_load_does_worK 1
|
|
||||||
#define Cdrskin_grab_abort_does_worK 1
|
|
||||||
#define Cdrskin_allow_libburn_taO 1
|
|
||||||
|
|
||||||
#ifdef Cdrskin_new_api_tesT
|
#ifdef Cdrskin_new_api_tesT
|
||||||
|
|
||||||
@ -204,14 +200,10 @@ or
|
|||||||
#define Cdrskin_atip_speed_is_oK 1
|
#define Cdrskin_atip_speed_is_oK 1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif
|
#endif /* Cdrskin_new_api_tesT */
|
||||||
|
|
||||||
#ifdef Cdrskin_oldfashioned_api_usE
|
|
||||||
|
|
||||||
/* switch back to pre-0.2.2 libburn usage */;
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
#endif /* ! Cdrskin_oldfashioned_api_usE */
|
||||||
#endif /* Cdrskin_libburn_from_pykix_svN */
|
#endif /* Cdrskin_libburn_from_pykix_svN */
|
||||||
|
|
||||||
|
|
||||||
|
@ -51,7 +51,7 @@ A CD recorder suitable for
|
|||||||
GPL software included:<BR>
|
GPL software included:<BR>
|
||||||
</H2>
|
</H2>
|
||||||
<DL>
|
<DL>
|
||||||
<DT>libburn-0.2.3 stabilized SVN snapshot</DT>
|
<DT>libburn-0.2.6</DT>
|
||||||
<DD>(by Derek Foreman, Ben Jansens, and team of libburn.pykix.org)</DD>
|
<DD>(by Derek Foreman, Ben Jansens, and team of libburn.pykix.org)</DD>
|
||||||
<DD>transfers data to CD</DD>
|
<DD>transfers data to CD</DD>
|
||||||
</DL>
|
</DL>
|
||||||
@ -99,9 +99,7 @@ wishes as well as on the development of libburn.</DT>
|
|||||||
<DD>$ cdrskin -v dev=/dev/dvd blank=fast -eject</DD>
|
<DD>$ cdrskin -v dev=/dev/dvd blank=fast -eject</DD>
|
||||||
<DT>Write ISO-9660 filesystem image:</DT>
|
<DT>Write ISO-9660 filesystem image:</DT>
|
||||||
<DD>$ cdrskin -v dev=/dev/hdc speed=12 fs=8m driveropts=burnfree -sao -eject padsize=300k my_image.iso</DD>
|
<DD>$ cdrskin -v dev=/dev/hdc speed=12 fs=8m driveropts=burnfree -sao -eject padsize=300k my_image.iso</DD>
|
||||||
<DT>Write compressed afio archive on-the-fly via cdrskin-0.2.4 :</DT>
|
<DT>Write compressed afio archive on-the-fly :</DT>
|
||||||
<DD>$ find . | afio -oZ - | cdrskin -v dev=0,1,0 fs=32m speed=8 driveropts=burnfree padsize=300k -sao tsize=650m -</DD>
|
|
||||||
<DT>Write compressed afio archive on-the-fly via cdrskin-0.2.5 :</DT>
|
|
||||||
<DD>$ find . | afio -oZ - | cdrskin -v dev=0,1,0 fs=32m speed=8 driveropts=burnfree padsize=300k -tao -</DD>
|
<DD>$ find . | afio -oZ - | cdrskin -v dev=0,1,0 fs=32m speed=8 driveropts=burnfree padsize=300k -tao -</DD>
|
||||||
<DT>Write audio tracks:</DT>
|
<DT>Write audio tracks:</DT>
|
||||||
<DD>$ cdrskin -v dev=ATA:1,0,0 speed=48 driveropts=burnfree -sao track1.wav track2.au -audio -swab track3.raw
|
<DD>$ cdrskin -v dev=ATA:1,0,0 speed=48 driveropts=burnfree -sao track1.wav track2.au -audio -swab track3.raw
|
||||||
@ -125,13 +123,7 @@ wishes as well as on the development of libburn.</DT>
|
|||||||
<UL>
|
<UL>
|
||||||
<DT></DT>
|
<DT></DT>
|
||||||
<LI>
|
<LI>
|
||||||
Burns only a single closed session. No -multi option yet.
|
Appending sessions to unclosed media is restricted to write mode TAO.
|
||||||
Note: Development version 0.2.5 offers multi-session now. See below.
|
|
||||||
</LI>
|
|
||||||
<LI>
|
|
||||||
No TAO mode in cdrskin-0.2.4 and therefore no writing on-the-fly without
|
|
||||||
a predefined source size.<BR>
|
|
||||||
Note: Development version 0.2.5 offers TAO now. See below.
|
|
||||||
</LI>
|
</LI>
|
||||||
<LI>
|
<LI>
|
||||||
cdrskin -scanbus or --devices hangs for quite a while if there is
|
cdrskin -scanbus or --devices hangs for quite a while if there is
|
||||||
@ -153,9 +145,10 @@ rw-permissions and retry the bus scan as non-superuser.
|
|||||||
<P>
|
<P>
|
||||||
<DL>
|
<DL>
|
||||||
<DT>Download as source code (see README):</DT>
|
<DT>Download as source code (see README):</DT>
|
||||||
<DD><A HREF="cdrskin-0.2.4.pl01.tar.gz">cdrskin-0.2.4.pl01.tar.gz</A>
|
<DD><A HREF="cdrskin-0.2.6.pl02.tar.gz">cdrskin-0.2.6.pl02.tar.gz</A>
|
||||||
(510 KB).
|
(510 KB).
|
||||||
</DD>
|
</DD>
|
||||||
|
<DD>(Most recent patch: backported man page from cdrskin-0.2.7)</DD>
|
||||||
<DD>
|
<DD>
|
||||||
The "stable" cdrskin tarballs are source code identical with "stable"
|
The "stable" cdrskin tarballs are source code identical with "stable"
|
||||||
libburn releases or with "stabilized" libburn SVN snapshots. They get
|
libburn releases or with "stabilized" libburn SVN snapshots. They get
|
||||||
@ -164,14 +157,14 @@ cdrskin is part of libburn - full libburn is provided with cdrskin releases.
|
|||||||
</DD>
|
</DD>
|
||||||
<DD> </DD>
|
<DD> </DD>
|
||||||
<DT>Download as single x86 binaries (untar and move to /usr/bin/cdrskin):</DT>
|
<DT>Download as single x86 binaries (untar and move to /usr/bin/cdrskin):</DT>
|
||||||
<DD><A HREF="cdrskin_0.2.4.pl01-x86-suse9_0.tar.gz">
|
<DD><A HREF="cdrskin_0.2.6.pl01-x86-suse9_0.tar.gz">
|
||||||
cdrskin_0.2.4.pl01-x86-suse9_0.tar.gz</A>, (60 KB),
|
cdrskin_0.2.6.pl01-x86-suse9_0.tar.gz</A>, (60 KB),
|
||||||
<DL>
|
<DL>
|
||||||
<DD>runs on SuSE 9.0 (2.4.21) , RIP-14.4 (2.6.14) ,
|
<DD>runs on SuSE 9.0 (2.4.21) , RIP-14.4 (2.6.14) ,
|
||||||
Gentoo (2.6.15 x86_64 Athlon).</DD>
|
Gentoo (2.6.15 x86_64 Athlon).</DD>
|
||||||
</DL>
|
</DL>
|
||||||
<DD><A HREF="cdrskin_0.2.4.pl01-x86-suse9_0-static.tar.gz">
|
<DD><A HREF="cdrskin_0.2.6.pl01-x86-suse9_0-static.tar.gz">
|
||||||
cdrskin_0.2.4.pl01-x86-suse9_0-static.tar.gz</A>, (260 KB), -static compiled,
|
cdrskin_0.2.6.pl01-x86-suse9_0-static.tar.gz</A>, (260 KB), -static compiled,
|
||||||
<DL>
|
<DL>
|
||||||
<DD>runs on SuSE 7.2 (2.4.4), and on the systems above.</DD>
|
<DD>runs on SuSE 7.2 (2.4.4), and on the systems above.</DD>
|
||||||
</DL>
|
</DL>
|
||||||
@ -195,22 +188,23 @@ cdrskin_0.2.4.pl01-x86-suse9_0-static.tar.gz</A>, (260 KB), -static compiled,
|
|||||||
<HR>
|
<HR>
|
||||||
|
|
||||||
<P>
|
<P>
|
||||||
Enhancements towards previous stable version cdrskin-0.2.2:
|
Enhancements towards previous stable version cdrskin-0.2.4:
|
||||||
<UL>
|
<UL>
|
||||||
<LI>cdrecord compatibility with drive addresses of form [ATA:]Bus,Target,Lun.
|
<LI>Option <KBD><B>-tao</B></KBD> is fully enabled.<BR>
|
||||||
<BR>(use option --old_pseudo_scsi_adr to get back the incompatible
|
SAO is still the preferred default but TAO is default if a track of
|
||||||
Bus,Traget,Lun addressing of version 0.2.2)
|
unpredicted size is present (stdin, named pipe, ...) or if a follow-up
|
||||||
|
session is written to an appendable CD.
|
||||||
|
(This is an intentional deviation from cdrecord defaults which themselves
|
||||||
|
have changed with the newest cdrecord versions.)
|
||||||
</LI>
|
</LI>
|
||||||
<LI>Drives adressable via links and device siblings (/dev/cdrom , /dev/scd0).
|
<LI>Status report during blank, preparation and finalization improved.</LI>
|
||||||
</LI>
|
<LI>Bug fixed: Trailing trash appended to .wav files caused error message
|
||||||
<LI>Automatic -audio extraction with .wav files and .au files.
|
and, if exceeding fifo size, could even stall a burn.
|
||||||
</LI>
|
(Workaround: disable fifo by <KBD><B>fs=0</B></KBD>)</LI>
|
||||||
<LI>Bug fix about failure to eject.</LI>
|
<LI>Bug fixed: False speed with first pacifier cycle. Potential program
|
||||||
<LI>Comments and empty lines allowed in startup files.</LI>
|
abort by floating point exception (NaN).</LI>
|
||||||
<LI>Options -scanbus and --devices print SORRY messages about busy drives.
|
<LI>multi-session CDs: <KBD><B>-multi</B></KBD>, <KBD><B>-msinfo</B></KBD>,
|
||||||
</LI>
|
writing to appendable CDs (for now restricted to write mode TAO).</LI>
|
||||||
<LI>Drive buffer fill indicator reports realistic percentage numbers.</LI>
|
|
||||||
<LI>Option -toc is supported, drive firmware revision gets displayed.</LI>
|
|
||||||
</UL>
|
</UL>
|
||||||
</P>
|
</P>
|
||||||
|
|
||||||
@ -218,30 +212,14 @@ Enhancements towards previous stable version cdrskin-0.2.2:
|
|||||||
|
|
||||||
<P>
|
<P>
|
||||||
<DL>
|
<DL>
|
||||||
<DT><H3>Development snapshot, version 0.2.5 :</H3></DT>
|
<DT><H3>Development snapshot, version 0.2.7 :</H3></DT>
|
||||||
<DD>Enhancements towards stable version 0.2.4:
|
<DD>Enhancements towards stable version 0.2.6:
|
||||||
<UL>
|
(none yet)
|
||||||
<LI>Option <KBD><B>-tao</B></KBD> is fully enabled.<BR>
|
|
||||||
SAO is still the preferred default but TAO is default if a track of
|
|
||||||
unpredicted size is present (stdin, named pipe, ...) or if a follow-up
|
|
||||||
session is written to an appendable CD.
|
|
||||||
(This is an intentional deviation from cdrecord defaults which themselves
|
|
||||||
have changed with the newest cdrecord versions.)
|
|
||||||
</LI>
|
|
||||||
<LI>Status report during blank, preparation and finalization improved.</LI>
|
|
||||||
<LI>Bug fixed: Trailing trash appended to .wav files caused error message
|
|
||||||
and, if exceeding fifo size, could even stall a burn.
|
|
||||||
(Workaround: disable fifo by <KBD><B>fs=0</B></KBD>)</LI>
|
|
||||||
<LI>Bug fixed: False speed with first pacifier cycle. Potential program
|
|
||||||
abort by floating point exception (NaN).</LI>
|
|
||||||
<LI>multi-session CDs: <KBD><B>-multi</B></KBD>, <KBD><B>-msinfo</B></KBD>,
|
|
||||||
writing to appendable CDs (for now restricted to write mode TAO).</LI>
|
|
||||||
</UL>
|
|
||||||
</DD>
|
</DD>
|
||||||
<DD> </DD>
|
<DD> </DD>
|
||||||
<DD><A HREF="README_cdrskin_devel">README 0.2.5</A>
|
<DD><A HREF="README_cdrskin_devel">README 0.2.7</A>
|
||||||
<DD><A HREF="cdrskin__help_devel">cdrskin_0.2.5 --help</A></DD>
|
<DD><A HREF="cdrskin__help_devel">cdrskin_0.2.7 --help</A></DD>
|
||||||
<DD><A HREF="cdrskin_help_devel">cdrskin_0.2.5 -help</A></DD>
|
<DD><A HREF="cdrskin_help_devel">cdrskin_0.2.7 -help</A></DD>
|
||||||
<DD> </DD>
|
<DD> </DD>
|
||||||
<DT>Maintainers of cdrskin unstable packages please use SVN of
|
<DT>Maintainers of cdrskin unstable packages please use SVN of
|
||||||
<A HREF="http://libburn.pykix.org"> libburn.pykix.org</A></DT>
|
<A HREF="http://libburn.pykix.org"> libburn.pykix.org</A></DT>
|
||||||
@ -261,15 +239,15 @@ admins with full system souvereignty.</DT>
|
|||||||
<A HREF="README_cdrskin_devel">upcoming README</A> ):
|
<A HREF="README_cdrskin_devel">upcoming README</A> ):
|
||||||
</DD>
|
</DD>
|
||||||
<DD>
|
<DD>
|
||||||
<A HREF="cdrskin-0.2.5.tar.gz">cdrskin-0.2.5.tar.gz</A>
|
<A HREF="cdrskin-0.2.7.tar.gz">cdrskin-0.2.7.tar.gz</A>
|
||||||
(500 KB).
|
(500 KB).
|
||||||
</DD>
|
</DD>
|
||||||
<DD>Binary (untar and move to /usr/bin/cdrskin):</DD>
|
<DD>Binary (untar and move to /usr/bin/cdrskin):</DD>
|
||||||
<DD><A HREF="cdrskin_0.2.5-x86-suse9_0.tar.gz">
|
<DD><A HREF="cdrskin_0.2.7-x86-suse9_0.tar.gz">
|
||||||
cdrskin_0.2.5-x86-suse9_0.tar.gz</A>, (60 KB).
|
cdrskin_0.2.7-x86-suse9_0.tar.gz</A>, (60 KB).
|
||||||
</DD>
|
</DD>
|
||||||
<DD><A HREF="cdrskin_0.2.5-x86-suse9_0-static.tar.gz">
|
<DD><A HREF="cdrskin_0.2.7-x86-suse9_0-static.tar.gz">
|
||||||
cdrskin_0.2.5-x86-suse9_0-static.tar.gz</A>, (260 KB)
|
cdrskin_0.2.7-x86-suse9_0-static.tar.gz</A>, (260 KB)
|
||||||
</DD>
|
</DD>
|
||||||
</DL>
|
</DL>
|
||||||
</P>
|
</P>
|
||||||
@ -322,14 +300,6 @@ is a GUI frontend which uses cdrecord for CD burning.)
|
|||||||
<DT>Example for a test session with a cdrecord based scdbackup installation:</DT>
|
<DT>Example for a test session with a cdrecord based scdbackup installation:</DT>
|
||||||
<DD>$ <KBD><B>cdrskin -scanbus</B></KBD></DD>
|
<DD>$ <KBD><B>cdrskin -scanbus</B></KBD></DD>
|
||||||
<DD><KBD>...</KBD></DD>
|
<DD><KBD>...</KBD></DD>
|
||||||
</DL>
|
|
||||||
If your system is stricken with some ill CD device then this can stall
|
|
||||||
and you will have to press <KBD>Ctrl+C</KBD> to abort.
|
|
||||||
In this case, you may execute
|
|
||||||
<KBD>export SCDBACKUP_NO_SCANBUS=1</KBD>
|
|
||||||
and try again.
|
|
||||||
<DL>
|
|
||||||
<DT></DT>
|
|
||||||
<DD><KBD> 2,0,0 0) 'TEAC' 'CD-ROM CD-532S' '?' Removable CD-ROM</KBD></DD>
|
<DD><KBD> 2,0,0 0) 'TEAC' 'CD-ROM CD-532S' '?' Removable CD-ROM</KBD></DD>
|
||||||
<DD>$ <KBD><B>cdrskin -scanbus dev=ATA</B></KBD></DD>
|
<DD>$ <KBD><B>cdrskin -scanbus dev=ATA</B></KBD></DD>
|
||||||
<DD><KBD>...</KBD></DD>
|
<DD><KBD>...</KBD></DD>
|
||||||
@ -344,8 +314,15 @@ and try again.
|
|||||||
<DD>$ <KBD><B>export SCDBACKUP_USE_CDRSKIN=1</B></KBD></DD>
|
<DD>$ <KBD><B>export SCDBACKUP_USE_CDRSKIN=1</B></KBD></DD>
|
||||||
<DD>$ <KBD><B>./CONFIGURE_CD</B></KBD></DD>
|
<DD>$ <KBD><B>./CONFIGURE_CD</B></KBD></DD>
|
||||||
<DD><KBD>...</KBD></DD>
|
<DD><KBD>...</KBD></DD>
|
||||||
<DD><KBD>cdrskin 0.2.4 : limited cdrecord compatibility wrapper for libburn</KBD></DD>
|
<DD><KBD>cdrskin 0.2.6 : limited cdrecord compatibility wrapper for libburn</KBD></DD>
|
||||||
<DD><KBD>...</KBD></DD>
|
</DL>
|
||||||
|
If your system is stricken with some ill CD device then this can stall
|
||||||
|
and you will have to press <KBD>Ctrl+C</KBD> to abort.
|
||||||
|
In this case, you may execute
|
||||||
|
<KBD>export SCDBACKUP_NO_SCANBUS=1</KBD>
|
||||||
|
and try again.
|
||||||
|
<DL>
|
||||||
|
<DT></DT>
|
||||||
<DD><KBD> ------------------- SCSI devices. To be used like 0,0,0</KBD></DD>
|
<DD><KBD> ------------------- SCSI devices. To be used like 0,0,0</KBD></DD>
|
||||||
<DD><KBD> 2,0,0 0) 'TEAC' 'CD-ROM CD-532S' '?' Removable CD-ROM</KBD></DD>
|
<DD><KBD> 2,0,0 0) 'TEAC' 'CD-ROM CD-532S' '?' Removable CD-ROM</KBD></DD>
|
||||||
<DD><KBD> ------------------- end of SCSI device list</KBD></DD>
|
<DD><KBD> ------------------- end of SCSI device list</KBD></DD>
|
||||||
|
@ -1 +1 @@
|
|||||||
#define Cdrskin_timestamP "2006.11.22.122228"
|
#define Cdrskin_timestamP "2006.12.16.090001"
|
||||||
|
@ -1687,41 +1687,71 @@ Removed a redundant d->start_unit() of revision 419
|
|||||||
* libisofs unbundled from libburn+cdrskin
|
* libisofs unbundled from libburn+cdrskin
|
||||||
* Hints for porting to other operating systems are now in sg-*.c
|
* Hints for porting to other operating systems are now in sg-*.c
|
||||||
|
|
||||||
|
20 Nov 2006 [425]
|
||||||
|
cdrskin/changelog.txt
|
||||||
|
Next cdrskin-0.2.5 cycle
|
||||||
|
|
||||||
|
2006.11.20.132717 [426]
|
||||||
[]
|
|
||||||
cdrskin/cdrskin.c
|
cdrskin/cdrskin.c
|
||||||
cdrskin/cdrfifo.h
|
cdrskin/cdrfifo.h
|
||||||
cdrskin/cdrfifo.c
|
cdrskin/cdrfifo.c
|
||||||
cdrskin/wiki_plain.txt
|
cdrskin/wiki_plain.txt
|
||||||
Implemented new option fifo_start_at=
|
Implemented new option fifo_start_at=
|
||||||
|
|
||||||
|
20 Nov 2006 [427]
|
||||||
|
cdrskin/wiki_plain.txt
|
||||||
|
Updated in respect to multi-session
|
||||||
|
|
||||||
|
2006.11.22.122228 [428]
|
||||||
|
libburn/spc.h
|
||||||
|
libburn/spc.c
|
||||||
|
Coordinated scsi_notify_error() and scsi_error()
|
||||||
|
|
||||||
|
|
||||||
|
------------------------------------ cycle - cdrskin-0.2.5 - 2006.11.22.142517
|
||||||
|
|
||||||
|
23 Nov 2006 [433]
|
||||||
|
cdrskin/changelog.txt
|
||||||
|
Last cdrskin-0.2.5 cycle
|
||||||
|
|
||||||
|
|
||||||
|
23 Nov 2006 [434] [tag ]
|
||||||
|
- test/burn.c
|
||||||
|
- test/master.c
|
||||||
|
- test/tree.py
|
||||||
|
- test/tree.pyc
|
||||||
|
- test/rip.c
|
||||||
|
Removed obsolete test programs
|
||||||
|
|
||||||
|
|
||||||
|
2006.11.23.102340 [435] [tag ]
|
||||||
|
Makefile.am
|
||||||
|
cdrskin/compile_cdrskin.sh
|
||||||
|
cdrskin/cdrskin.c
|
||||||
|
cdrskin/cdrskin_eng.html
|
||||||
|
cdrskin/README
|
||||||
|
cdrskin/wiki_plain.txt
|
||||||
|
+ cdrskin/add_ts_changes_to_libburn_0_2_6
|
||||||
|
+ cdrskin/add_ts_changes_to_libburn_0_2_7
|
||||||
|
- cdrskin/add_ts_changes_to_libburn_0_2_4
|
||||||
|
- cdrskin/add_ts_changes_to_libburn_0_2_5
|
||||||
|
Version leap to 0.2.6
|
||||||
|
|
||||||
|
|
||||||
|
2006.11.24.121745 [437]
|
||||||
|
Version leap to 0.2.7
|
||||||
|
|
||||||
|
|
||||||
|
2006.12.16.090001 []
|
||||||
|
Makefile.am
|
||||||
|
+ cdrskin-0.2.6/cdrskin/cdrskin.1
|
||||||
|
cdrskin-0.2.6/cdrskin/README
|
||||||
|
cdrskin-0.2.6/cdrskin/cdrskin_eng.html
|
||||||
|
cdrskin-0.2.6/cdrskin/changelog.txt
|
||||||
|
cdrskin-0.2.6/cdrskin/cdrskin_timestamp.h
|
||||||
|
Backported manpage to libburn-0.2.6 -> libburn-0.2.6.2
|
||||||
|
|
||||||
[]
|
|
||||||
Coordinate scsi_notify_error() and scsi_error() about harmless conditions
|
|
||||||
|
|
||||||
|
|
||||||
----------------------------------------- long term intentions:
|
----------------------------------------- long term intentions:
|
||||||
|
|
||||||
[]
|
|
||||||
-reset: ioctl(fd,CDROMRESET) ioctl(fd,SG_SCSI_RESET,SG_SCSI_RESET_DEVICE)
|
|
||||||
|
|
||||||
[]
|
|
||||||
Open O_EXCL all devices in address resolution chain
|
|
||||||
(Might help with non-standard hdX device siblings)
|
|
||||||
|
|
||||||
[]
|
|
||||||
Convert libburn_experimental: into LIBDAX_MSGS_SEV_DEBUG
|
|
||||||
Convert burn_print() into libdax_msgs_submit()
|
|
||||||
|
|
||||||
[]
|
|
||||||
Test unlocking of all drives by burn_drive_info_free()
|
|
||||||
Test unlocking of single drive by burn_drive_grab(), burn_drive_release()
|
|
||||||
|
|
||||||
[]
|
|
||||||
Clear outdated persistent read buffer after small CD image was read (ticket 57)
|
|
||||||
|
|
||||||
[]
|
|
||||||
Enable multi-session for write modes other than TAO
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
debug_opts=
|
debug_opts=
|
||||||
def_opts=
|
def_opts=
|
||||||
largefile_opts="-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE=1"
|
largefile_opts="-D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE=1"
|
||||||
libvers="-DCdrskin_libburn_0_2_3"
|
libvers="-DCdrskin_libburn_0_2_6"
|
||||||
cleanup_src_or_obj="libburn/cleanup.o"
|
cleanup_src_or_obj="libburn/cleanup.o"
|
||||||
libdax_msgs_o="libburn/libdax_msgs.o"
|
libdax_msgs_o="libburn/libdax_msgs.o"
|
||||||
libdax_audioxtr_o="libburn/libdax_audioxtr.o"
|
libdax_audioxtr_o="libburn/libdax_audioxtr.o"
|
||||||
@ -33,15 +33,15 @@ do
|
|||||||
libdax_audioxtr_o=
|
libdax_audioxtr_o=
|
||||||
libdax_msgs_o="libburn/message.o"
|
libdax_msgs_o="libburn/message.o"
|
||||||
cleanup_src_or_obj="-DCleanup_has_no_libburn_os_H cdrskin/cleanup.c"
|
cleanup_src_or_obj="-DCleanup_has_no_libburn_os_H cdrskin/cleanup.c"
|
||||||
elif test "$i" = "-libburn_0_2_2"
|
elif test "$i" = "-libburn_0_2_6"
|
||||||
then
|
then
|
||||||
libvers="-DCdrskin_libburn_0_2_2"
|
libvers="-DCdrskin_libburn_0_2_6"
|
||||||
libdax_audioxtr_o=
|
libdax_audioxtr_o="libburn/libdax_audioxtr.o"
|
||||||
libdax_msgs_o="libburn/message.o"
|
libdax_msgs_o="libburn/libdax_msgs.o"
|
||||||
cleanup_src_or_obj="-DCleanup_has_no_libburn_os_H cdrskin/cleanup.c"
|
cleanup_src_or_obj="libburn/cleanup.o"
|
||||||
elif test "$i" = "-libburn_0_2_3"
|
elif test "$i" = "-libburn_svn"
|
||||||
then
|
then
|
||||||
libvers="-DCdrskin_libburn_0_2_3"
|
libvers="-DCdrskin_libburn_0_2_6"
|
||||||
libdax_audioxtr_o="libburn/libdax_audioxtr.o"
|
libdax_audioxtr_o="libburn/libdax_audioxtr.o"
|
||||||
libdax_msgs_o="libburn/libdax_msgs.o"
|
libdax_msgs_o="libburn/libdax_msgs.o"
|
||||||
cleanup_src_or_obj="libburn/cleanup.o"
|
cleanup_src_or_obj="libburn/cleanup.o"
|
||||||
@ -79,8 +79,8 @@ do
|
|||||||
echo " -compile_cdrfifo compile program cdrskin/cdrfifo."
|
echo " -compile_cdrfifo compile program cdrskin/cdrfifo."
|
||||||
echo " -compile_dewav compile program test/dewav without libburn."
|
echo " -compile_dewav compile program test/dewav without libburn."
|
||||||
echo " -cvs_A60220 set macro to match libburn-CVS of 20 Feb 2006."
|
echo " -cvs_A60220 set macro to match libburn-CVS of 20 Feb 2006."
|
||||||
echo " -libburn_0_2_2 set macro to match libburn-0.2.2."
|
echo " -libburn_0_2_6 set macro to match libburn-0.2.6."
|
||||||
echo " -libburn_0_2_3 set macro to match current libburn-SVN."
|
echo " -libburn_svn set macro to match current libburn-SVN."
|
||||||
echo " -no_largefile do not use 64 bit off_t (must match libburn)."
|
echo " -no_largefile do not use 64 bit off_t (must match libburn)."
|
||||||
echo " -do_not_compile_cdrskin omit compilation of cdrskin/cdrskin."
|
echo " -do_not_compile_cdrskin omit compilation of cdrskin/cdrskin."
|
||||||
echo " -experimental use newly introduced libburn features."
|
echo " -experimental use newly introduced libburn features."
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
cdrskin Wiki - plain text copy
|
cdrskin Wiki - plain text copy
|
||||||
--------------------------------------------------------------------------
|
--------------------------------------------------------------------------
|
||||||
|
|
||||||
cdrskin-0.2.5 is the cdrecord compatibility middleware of libburn.
|
cdrskin is the cdrecord compatibility middleware of libburn.
|
||||||
|
|
||||||
Its paragon, cdrecord, is a powerful GPL'ed burn program included in Joerg
|
Its paragon, cdrecord, is a powerful GPL'ed burn program included in Joerg
|
||||||
Schilling's cdrtools. cdrskin strives to be a second source for the services
|
Schilling's cdrtools. cdrskin strives to be a second source for the services
|
||||||
@ -19,10 +19,9 @@ About libburn API for burning CD: http://libburn-api.pykix.org
|
|||||||
|
|
||||||
--------------------------------------------------------------------------
|
--------------------------------------------------------------------------
|
||||||
|
|
||||||
Convenient TAO burn mode is provided in development version 0.2.5 but not in
|
Appending sessions to an unclosed CD is restricted to write mode TAO.
|
||||||
current "stable" release 0.2.4. The same is true for multi-session, where
|
(Users who have a burner which succeeds with a follow-up session via
|
||||||
follow-up sessions must be done in TAO mode. (Users who have a burner which
|
cdrecord -sao : please contact us.)
|
||||||
succeeds with a follow-up session via cdrecord -sao : please contact us.)
|
|
||||||
|
|
||||||
cdrskin does not provide DVD burning yet. See advise to use dvd+rw-tools
|
cdrskin does not provide DVD burning yet. See advise to use dvd+rw-tools
|
||||||
at the end of this text.
|
at the end of this text.
|
||||||
@ -135,8 +134,8 @@ tao_to_sao_tsize=<num> allows the - actually unsupported - cdrecord option
|
|||||||
-tao and defines a default track size to be used if - as custom with -tao -
|
-tao and defines a default track size to be used if - as custom with -tao -
|
||||||
no option tsize=# is given.
|
no option tsize=# is given.
|
||||||
|
|
||||||
Since -tao is supported in cdrskin-0.2.5 the TAO-to-SAO workaround on its way
|
Since -tao is supported in cdrskin-0.2.6 the TAO-to-SAO workaround has become
|
||||||
to obsolescence. Nevertheless, tao_to_sao_tsize= allows to preset a default
|
quite obsolete. Nevertheless, tao_to_sao_tsize= allows to preset a default
|
||||||
size for SAO mode which is in effect only if no track size is available.
|
size for SAO mode which is in effect only if no track size is available.
|
||||||
|
|
||||||
As in general with cdrskin tsize=# the data source does not have to provide
|
As in general with cdrskin tsize=# the data source does not have to provide
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
AC_INIT([libburn], [0.2.3], [http://libburn.pykix.org])
|
AC_INIT([libburn], [0.2.6.2], [http://libburn.pykix.org])
|
||||||
AC_PREREQ([2.50])
|
AC_PREREQ([2.50])
|
||||||
dnl AC_CONFIG_HEADER([config.h])
|
dnl AC_CONFIG_HEADER([config.h])
|
||||||
|
|
||||||
@ -25,7 +25,7 @@ dnl if MAJOR or MINOR version changes, be sure to change AC_INIT above to match
|
|||||||
dnl
|
dnl
|
||||||
BURN_MAJOR_VERSION=0
|
BURN_MAJOR_VERSION=0
|
||||||
BURN_MINOR_VERSION=2
|
BURN_MINOR_VERSION=2
|
||||||
BURN_MICRO_VERSION=3
|
BURN_MICRO_VERSION=6.2
|
||||||
BURN_INTERFACE_AGE=0
|
BURN_INTERFACE_AGE=0
|
||||||
BURN_BINARY_AGE=0
|
BURN_BINARY_AGE=0
|
||||||
BURN_VERSION=$BURN_MAJOR_VERSION.$BURN_MINOR_VERSION.$BURN_MICRO_VERSION
|
BURN_VERSION=$BURN_MAJOR_VERSION.$BURN_MINOR_VERSION.$BURN_MICRO_VERSION
|
||||||
|
@ -56,8 +56,8 @@ WARN_LOGFILE =
|
|||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
# configuration options related to the input files
|
# configuration options related to the input files
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
INPUT = libburn libisofs doc test
|
INPUT = libburn doc test
|
||||||
FILE_PATTERNS = libburn.h libisofs.h comments libburner.c
|
FILE_PATTERNS = libburn.h comments libburner.c
|
||||||
RECURSIVE = NO
|
RECURSIVE = NO
|
||||||
EXCLUDE =
|
EXCLUDE =
|
||||||
EXCLUDE_SYMLINKS = NO
|
EXCLUDE_SYMLINKS = NO
|
||||||
|
@ -1,4 +0,0 @@
|
|||||||
int main()
|
|
||||||
{
|
|
||||||
return 0;
|
|
||||||
}
|
|
126
test/master.c
126
test/master.c
@ -1,126 +0,0 @@
|
|||||||
/* -*- indent-tabs-mode: t; tab-width: 8; c-basic-offset: 8; -*- */
|
|
||||||
#include <libburn/libburn.h>
|
|
||||||
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <assert.h>
|
|
||||||
#include <sys/types.h>
|
|
||||||
#include <sys/stat.h>
|
|
||||||
#include <fcntl.h>
|
|
||||||
#include <unistd.h>
|
|
||||||
#include <string.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
|
|
||||||
static struct burn_drive_info *drives;
|
|
||||||
static unsigned int n_drives;
|
|
||||||
|
|
||||||
void burn_files(struct burn_drive *drive, struct burn_disc *disc)
|
|
||||||
{
|
|
||||||
struct burn_write_opts *o;
|
|
||||||
enum burn_disc_status s;
|
|
||||||
|
|
||||||
if (!burn_drive_grab(drive, 1)) {
|
|
||||||
printf("Unable to open the drive!\n");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
while (burn_drive_get_status(drive, NULL))
|
|
||||||
usleep(1000);
|
|
||||||
|
|
||||||
while ((s = burn_disc_get_status(drive)) == BURN_DISC_UNREADY)
|
|
||||||
usleep(1000);
|
|
||||||
|
|
||||||
if (s != BURN_DISC_BLANK) {
|
|
||||||
burn_drive_release(drive, 0);
|
|
||||||
printf("Please insert blank media in the drive\n");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
o = burn_write_opts_new(drive);
|
|
||||||
burn_drive_set_speed(drive, 0, 2816);
|
|
||||||
burn_write_opts_set_perform_opc(o, 0);
|
|
||||||
burn_write_opts_set_write_type(o, BURN_WRITE_TAO, BURN_BLOCK_MODE1);
|
|
||||||
burn_write_opts_set_simulate(o, 1);
|
|
||||||
/* want failure on seggy while debugging :) */
|
|
||||||
burn_write_opts_set_underrun_proof(o, 0);
|
|
||||||
burn_structure_print_disc(disc);
|
|
||||||
burn_disc_write(o, disc);
|
|
||||||
burn_write_opts_free(o);
|
|
||||||
|
|
||||||
while (burn_drive_get_status(drive, NULL)) {
|
|
||||||
sleep(1);
|
|
||||||
}
|
|
||||||
printf("\n");
|
|
||||||
burn_drive_release(drive, 0);
|
|
||||||
burn_disc_free(disc);
|
|
||||||
}
|
|
||||||
|
|
||||||
void parse_args(int argc, char **argv, int *drive, struct burn_disc **disc)
|
|
||||||
{
|
|
||||||
int i, tmode = BURN_AUDIO;
|
|
||||||
int help = 1;
|
|
||||||
struct burn_session *session;
|
|
||||||
struct burn_track *tr;
|
|
||||||
struct burn_source *src;
|
|
||||||
|
|
||||||
*disc = burn_disc_create();
|
|
||||||
session = burn_session_create();
|
|
||||||
burn_disc_add_session(*disc, session, BURN_POS_END);
|
|
||||||
for (i = 1; i < argc; ++i) {
|
|
||||||
if (!strcmp(argv[i], "--drive")) {
|
|
||||||
++i;
|
|
||||||
if (i >= argc)
|
|
||||||
printf("--drive requires an argument\n");
|
|
||||||
else
|
|
||||||
*drive = atoi(argv[i]);
|
|
||||||
} else if (!strcmp(argv[i], "--audio")) {
|
|
||||||
tmode = BURN_AUDIO;
|
|
||||||
} else if (!strcmp(argv[i], "--data")) {
|
|
||||||
tmode = BURN_MODE1;
|
|
||||||
} else if (!strcmp(argv[i], "--verbose")) {
|
|
||||||
++i;
|
|
||||||
if (i >= argc)
|
|
||||||
printf("--verbose requires an argument\n");
|
|
||||||
else
|
|
||||||
burn_set_verbosity(atoi(argv[i]));
|
|
||||||
} else if (!strcmp(argv[i], "--help")) {
|
|
||||||
help = 1; /* who cares */
|
|
||||||
} else {
|
|
||||||
help = 0;
|
|
||||||
printf("%s is a track\n", argv[i]);
|
|
||||||
|
|
||||||
tr = burn_track_create();
|
|
||||||
src = burn_file_source_new(argv[i], NULL);
|
|
||||||
burn_track_set_source(tr, src);
|
|
||||||
burn_source_free(src);
|
|
||||||
burn_track_define_data(tr, 0, 0, 1, tmode);
|
|
||||||
burn_session_add_track(session, tr, BURN_POS_END);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (help) {
|
|
||||||
printf("Usage: %s [--drive <num>] [--verbose <level>] files\n",
|
|
||||||
argv[0]);
|
|
||||||
exit(EXIT_FAILURE);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
int main(int argc, char **argv)
|
|
||||||
{
|
|
||||||
int drive = 0;
|
|
||||||
struct burn_disc *disc;
|
|
||||||
|
|
||||||
parse_args(argc, argv, &drive, &disc);
|
|
||||||
printf("Initializing library...");
|
|
||||||
if (burn_initialize())
|
|
||||||
printf("Success\n");
|
|
||||||
else {
|
|
||||||
printf("Failed\n");
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
printf("Scanning for devices...");
|
|
||||||
while (!burn_drive_scan(&drives, &n_drives)) ;
|
|
||||||
printf("Done\n");
|
|
||||||
|
|
||||||
burn_files(drives[drive].drive, disc);
|
|
||||||
burn_drive_info_free(drives);
|
|
||||||
burn_finish();
|
|
||||||
return 0;
|
|
||||||
}
|
|
54
test/rip.c
54
test/rip.c
@ -1,54 +0,0 @@
|
|||||||
/* THIS IS NOT A PROPER EXAMPLE */
|
|
||||||
#include <stdlib.h>
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <sys/types.h>
|
|
||||||
#include <sys/stat.h>
|
|
||||||
#include <fcntl.h>
|
|
||||||
#include <unistd.h>
|
|
||||||
|
|
||||||
#include <libburn/libburn.h>
|
|
||||||
|
|
||||||
static struct burn_drive_info *drives;
|
|
||||||
static unsigned int n_drives;
|
|
||||||
|
|
||||||
#warning this example is totally fried
|
|
||||||
int main()
|
|
||||||
{
|
|
||||||
#if 0
|
|
||||||
struct burn_drive *drive;
|
|
||||||
struct burn_read_opts o;
|
|
||||||
|
|
||||||
burn_initialize();
|
|
||||||
o.datafd =
|
|
||||||
open("/xp/burn/blah.data", O_CREAT | O_WRONLY,
|
|
||||||
S_IRUSR | S_IWUSR);
|
|
||||||
o.subfd =
|
|
||||||
open("/xp/burn/blah.sub", O_CREAT | O_WRONLY,
|
|
||||||
S_IRUSR | S_IWUSR);
|
|
||||||
o.raw = 1;
|
|
||||||
o.c2errors = 0;
|
|
||||||
o.subcodes_audio = 1;
|
|
||||||
o.subcodes_data = 1;
|
|
||||||
o.hardware_error_recovery = 1;
|
|
||||||
o.report_recovered_errors = 0;
|
|
||||||
o.transfer_damaged_blocks = 1;
|
|
||||||
o.hardware_error_retries = 1;
|
|
||||||
|
|
||||||
printf("Scanning for devices...");
|
|
||||||
while (!burn_drive_scan(&drives, &n_drives)) ;
|
|
||||||
printf("Done\n");
|
|
||||||
drive = drives[0].drive;
|
|
||||||
burn_drive_set_speed(drive, 0, 0);
|
|
||||||
|
|
||||||
if (!burn_drive_grab(drive, 1)) {
|
|
||||||
printf("Unable to open the drive!\n");
|
|
||||||
return EXIT_FAILURE;
|
|
||||||
}
|
|
||||||
|
|
||||||
while (burn_drive_get_status(drive, NULL))
|
|
||||||
usleep(1000);
|
|
||||||
|
|
||||||
burn_disc_read(drive, &o);
|
|
||||||
#endif
|
|
||||||
return EXIT_SUCCESS;
|
|
||||||
}
|
|
77
test/tree.py
77
test/tree.py
@ -1,77 +0,0 @@
|
|||||||
# a module to help with handling of filenames, directory trees, etc.
|
|
||||||
|
|
||||||
import os
|
|
||||||
import os.path
|
|
||||||
import stat
|
|
||||||
|
|
||||||
def pathsubtract(a, b):
|
|
||||||
index = a.find(b)
|
|
||||||
if index == -1:
|
|
||||||
return None
|
|
||||||
res = a[ (index + len(b)): ]
|
|
||||||
|
|
||||||
if res.find("/") == 0:
|
|
||||||
res = res[1:]
|
|
||||||
return res
|
|
||||||
|
|
||||||
# same as C strcmp()
|
|
||||||
def strcmp(a, b):
|
|
||||||
if a < b:
|
|
||||||
return -1
|
|
||||||
if a > b:
|
|
||||||
return 1
|
|
||||||
return 0
|
|
||||||
|
|
||||||
class TreeNode:
|
|
||||||
|
|
||||||
# path is the location of the file/directory. It is either a full path or
|
|
||||||
# a path relative to $PWD
|
|
||||||
def __init__(self, parent, path=".", root=".", isofile=None):
|
|
||||||
if isofile:
|
|
||||||
self.root = os.path.abspath(isofile)
|
|
||||||
self.path = ""
|
|
||||||
else:
|
|
||||||
fullpath = os.path.abspath( path )
|
|
||||||
fullroot = os.path.abspath( root )
|
|
||||||
self.root = fullroot
|
|
||||||
self.path = pathsubtract( fullpath, fullroot )
|
|
||||||
self.parent = parent
|
|
||||||
self.children = []
|
|
||||||
|
|
||||||
if self.path == None:
|
|
||||||
raise NameError, "Invalid paths %s and %s" % (fullpath, fullroot)
|
|
||||||
|
|
||||||
# if this is a directory, add its children recursively
|
|
||||||
def addchildren(self):
|
|
||||||
if not stat.S_ISDIR( os.lstat(self.root + "/" + self.path).st_mode ):
|
|
||||||
return
|
|
||||||
|
|
||||||
children = os.listdir( self.root + "/" + self.path )
|
|
||||||
for child in children:
|
|
||||||
if self.path:
|
|
||||||
child = self.path + "/" + child
|
|
||||||
self.children.append( TreeNode(self, child, self.root) )
|
|
||||||
for child in self.children:
|
|
||||||
child.addchildren()
|
|
||||||
|
|
||||||
def printAll(self, spaces=0):
|
|
||||||
print " "*spaces + self.root + "/" + self.path
|
|
||||||
for child in self.children:
|
|
||||||
child.printAll(spaces + 2)
|
|
||||||
|
|
||||||
def isValidISO1(self):
|
|
||||||
pass
|
|
||||||
|
|
||||||
class Tree:
|
|
||||||
def __init__(self, root=None, isofile=None):
|
|
||||||
if isofile:
|
|
||||||
self.root = TreeNode(parent=None, isofile=isofile)
|
|
||||||
else:
|
|
||||||
self.root = TreeNode(parent=None, path=root, root=root)
|
|
||||||
self.root.addchildren()
|
|
||||||
|
|
||||||
def isValidISO1(self):
|
|
||||||
return root.isValidISO1();
|
|
||||||
|
|
||||||
#t = Tree(root=".")
|
|
||||||
#t.root.printAll()
|
|
BIN
test/tree.pyc
BIN
test/tree.pyc
Binary file not shown.
Reference in New Issue
Block a user