Compare commits
2 Commits
ZeroTwoSix
...
ZeroTwoSix
Author | SHA1 | Date | |
---|---|---|---|
a64893b457 | |||
15fa006ec3 |
@ -1,3 +1,2 @@
|
|||||||
Joe Neeman
|
Joe Neeman
|
||||||
Philippe Rouquier
|
Philippe Rouquier
|
||||||
Jean-Francois Wauthy
|
|
||||||
|
10
Makefile.am
10
Makefile.am
@ -7,7 +7,7 @@ lib_LTLIBRARIES = libburn/libburn.la
|
|||||||
|
|
||||||
# Build libraries
|
# Build libraries
|
||||||
libburn_libburn_la_LDFLAGS = \
|
libburn_libburn_la_LDFLAGS = \
|
||||||
-version-info $(LT_VERSION_INFO)
|
-version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE)
|
||||||
libburn_libburn_la_LIBADD = $(LIBBURN_ARCH_LIBS) $(THREAD_LIBS)
|
libburn_libburn_la_LIBADD = $(LIBBURN_ARCH_LIBS) $(THREAD_LIBS)
|
||||||
libburn_libburn_la_SOURCES = \
|
libburn_libburn_la_SOURCES = \
|
||||||
libburn/async.c \
|
libburn/async.c \
|
||||||
@ -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_6
|
cdrskin_cdrskin_CFLAGS = -DCdrskin_libburn_0_2_3
|
||||||
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,9 +165,6 @@ 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 \
|
||||||
@ -189,6 +186,5 @@ 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.6.pl01.tar.gz
|
http://scdbackup.sourceforge.net/cdrskin-0.2.5.tar.gz
|
||||||
Copyright (C) 2006 Thomas Schmitt
|
Copyright (C) 2006 Thomas Schmitt
|
||||||
|
|
||||||
------------------------------------------------------------------------------
|
------------------------------------------------------------------------------
|
||||||
|
|
||||||
On top of libburn there is implemented cdrskin 0.2.6, a limited cdrecord
|
On top of libburn there is implemented cdrskin 0.2.5, 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.6.pl02.tar.gz, take it to a directory of your choice and do:
|
Obtain cdrskin-0.2.5.tar.gz , take it to a directory of your choice and do:
|
||||||
|
|
||||||
tar xzf cdrskin-0.2.6.pl02.tar.gz
|
tar xzf cdrskin-0.2.5.tar.gz
|
||||||
cd cdrskin-0.2.6
|
cd cdrskin-0.2.5
|
||||||
|
|
||||||
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.6 or libburn then execute:
|
Within that toplevel directory of either cdrskin-0.2.5 or libburn then execute:
|
||||||
|
|
||||||
./configure
|
./configure
|
||||||
make
|
make
|
||||||
@ -90,7 +90,6 @@ 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"
|
||||||
@ -109,10 +108,6 @@ 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,13 +36,10 @@ 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_release="0.2.6"
|
skin_rev="0.2.4"
|
||||||
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_release}"
|
target="./cdrskin-${skin_rev}"
|
||||||
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.7"
|
skin_rev="0.2.5"
|
||||||
|
|
||||||
# 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}"
|
@ -1,600 +0,0 @@
|
|||||||
.\" 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.6"
|
#define Cdrskin_prog_versioN "0.2.5"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/** The source code release timestamp */
|
/** The source code release timestamp */
|
||||||
@ -156,25 +156,14 @@ or
|
|||||||
#endif /* Cdrskin_libburn_cvs_A60220_tS */
|
#endif /* Cdrskin_libburn_cvs_A60220_tS */
|
||||||
|
|
||||||
|
|
||||||
#ifdef Cdrskin_libburn_0_2_6
|
#ifdef Cdrskin_libburn_0_2_2
|
||||||
#define Cdrskin_libburn_versioN "0.2.6"
|
#define Cdrskin_libburn_versioN "0.2.2"
|
||||||
#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_from_pykix_svN
|
#ifdef Cdrskin_libburn_0_2_3
|
||||||
#ifndef Cdrskin_oldfashioned_api_usE
|
#define Cdrskin_libburn_versioN "0.2.3"
|
||||||
|
#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
|
||||||
@ -189,6 +178,21 @@ 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
|
||||||
|
|
||||||
@ -200,10 +204,14 @@ or
|
|||||||
#define Cdrskin_atip_speed_is_oK 1
|
#define Cdrskin_atip_speed_is_oK 1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif /* Cdrskin_new_api_tesT */
|
#endif
|
||||||
|
|
||||||
|
#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.6</DT>
|
<DT>libburn-0.2.3 stabilized SVN snapshot</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,7 +99,9 @@ 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 :</DT>
|
<DT>Write compressed afio archive on-the-fly via cdrskin-0.2.4 :</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
|
||||||
@ -123,7 +125,13 @@ wishes as well as on the development of libburn.</DT>
|
|||||||
<UL>
|
<UL>
|
||||||
<DT></DT>
|
<DT></DT>
|
||||||
<LI>
|
<LI>
|
||||||
Appending sessions to unclosed media is restricted to write mode TAO.
|
Burns only a single closed session. No -multi option yet.
|
||||||
|
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
|
||||||
@ -145,10 +153,9 @@ 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.6.pl02.tar.gz">cdrskin-0.2.6.pl02.tar.gz</A>
|
<DD><A HREF="cdrskin-0.2.4.pl01.tar.gz">cdrskin-0.2.4.pl01.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
|
||||||
@ -157,14 +164,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.6.pl01-x86-suse9_0.tar.gz">
|
<DD><A HREF="cdrskin_0.2.4.pl01-x86-suse9_0.tar.gz">
|
||||||
cdrskin_0.2.6.pl01-x86-suse9_0.tar.gz</A>, (60 KB),
|
cdrskin_0.2.4.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.6.pl01-x86-suse9_0-static.tar.gz">
|
<DD><A HREF="cdrskin_0.2.4.pl01-x86-suse9_0-static.tar.gz">
|
||||||
cdrskin_0.2.6.pl01-x86-suse9_0-static.tar.gz</A>, (260 KB), -static compiled,
|
cdrskin_0.2.4.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>
|
||||||
@ -188,23 +195,22 @@ cdrskin_0.2.6.pl01-x86-suse9_0-static.tar.gz</A>, (260 KB), -static compiled,
|
|||||||
<HR>
|
<HR>
|
||||||
|
|
||||||
<P>
|
<P>
|
||||||
Enhancements towards previous stable version cdrskin-0.2.4:
|
Enhancements towards previous stable version cdrskin-0.2.2:
|
||||||
<UL>
|
<UL>
|
||||||
<LI>Option <KBD><B>-tao</B></KBD> is fully enabled.<BR>
|
<LI>cdrecord compatibility with drive addresses of form [ATA:]Bus,Target,Lun.
|
||||||
SAO is still the preferred default but TAO is default if a track of
|
<BR>(use option --old_pseudo_scsi_adr to get back the incompatible
|
||||||
unpredicted size is present (stdin, named pipe, ...) or if a follow-up
|
Bus,Traget,Lun addressing of version 0.2.2)
|
||||||
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>Status report during blank, preparation and finalization improved.</LI>
|
<LI>Drives adressable via links and device siblings (/dev/cdrom , /dev/scd0).
|
||||||
<LI>Bug fixed: Trailing trash appended to .wav files caused error message
|
</LI>
|
||||||
and, if exceeding fifo size, could even stall a burn.
|
<LI>Automatic -audio extraction with .wav files and .au files.
|
||||||
(Workaround: disable fifo by <KBD><B>fs=0</B></KBD>)</LI>
|
</LI>
|
||||||
<LI>Bug fixed: False speed with first pacifier cycle. Potential program
|
<LI>Bug fix about failure to eject.</LI>
|
||||||
abort by floating point exception (NaN).</LI>
|
<LI>Comments and empty lines allowed in startup files.</LI>
|
||||||
<LI>multi-session CDs: <KBD><B>-multi</B></KBD>, <KBD><B>-msinfo</B></KBD>,
|
<LI>Options -scanbus and --devices print SORRY messages about busy drives.
|
||||||
writing to appendable CDs (for now restricted to write mode TAO).</LI>
|
</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>
|
||||||
|
|
||||||
@ -212,14 +218,30 @@ Enhancements towards previous stable version cdrskin-0.2.4:
|
|||||||
|
|
||||||
<P>
|
<P>
|
||||||
<DL>
|
<DL>
|
||||||
<DT><H3>Development snapshot, version 0.2.7 :</H3></DT>
|
<DT><H3>Development snapshot, version 0.2.5 :</H3></DT>
|
||||||
<DD>Enhancements towards stable version 0.2.6:
|
<DD>Enhancements towards stable version 0.2.4:
|
||||||
(none yet)
|
<UL>
|
||||||
|
<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.7</A>
|
<DD><A HREF="README_cdrskin_devel">README 0.2.5</A>
|
||||||
<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><A HREF="cdrskin_help_devel">cdrskin_0.2.5 -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>
|
||||||
@ -239,15 +261,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.7.tar.gz">cdrskin-0.2.7.tar.gz</A>
|
<A HREF="cdrskin-0.2.5.tar.gz">cdrskin-0.2.5.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.7-x86-suse9_0.tar.gz">
|
<DD><A HREF="cdrskin_0.2.5-x86-suse9_0.tar.gz">
|
||||||
cdrskin_0.2.7-x86-suse9_0.tar.gz</A>, (60 KB).
|
cdrskin_0.2.5-x86-suse9_0.tar.gz</A>, (60 KB).
|
||||||
</DD>
|
</DD>
|
||||||
<DD><A HREF="cdrskin_0.2.7-x86-suse9_0-static.tar.gz">
|
<DD><A HREF="cdrskin_0.2.5-x86-suse9_0-static.tar.gz">
|
||||||
cdrskin_0.2.7-x86-suse9_0-static.tar.gz</A>, (260 KB)
|
cdrskin_0.2.5-x86-suse9_0-static.tar.gz</A>, (260 KB)
|
||||||
</DD>
|
</DD>
|
||||||
</DL>
|
</DL>
|
||||||
</P>
|
</P>
|
||||||
@ -300,6 +322,14 @@ 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>
|
||||||
@ -314,15 +344,8 @@ is a GUI frontend which uses cdrecord for CD burning.)
|
|||||||
<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.6 : limited cdrecord compatibility wrapper for libburn</KBD></DD>
|
<DD><KBD>cdrskin 0.2.4 : limited cdrecord compatibility wrapper for libburn</KBD></DD>
|
||||||
</DL>
|
<DD><KBD>...</KBD></DD>
|
||||||
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.12.23.220001"
|
#define Cdrskin_timestamP "2006.11.22.122228"
|
||||||
|
@ -1687,71 +1687,41 @@ 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_6"
|
libvers="-DCdrskin_libburn_0_2_3"
|
||||||
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_6"
|
elif test "$i" = "-libburn_0_2_2"
|
||||||
then
|
then
|
||||||
libvers="-DCdrskin_libburn_0_2_6"
|
libvers="-DCdrskin_libburn_0_2_2"
|
||||||
libdax_audioxtr_o="libburn/libdax_audioxtr.o"
|
libdax_audioxtr_o=
|
||||||
libdax_msgs_o="libburn/libdax_msgs.o"
|
libdax_msgs_o="libburn/message.o"
|
||||||
cleanup_src_or_obj="libburn/cleanup.o"
|
cleanup_src_or_obj="-DCleanup_has_no_libburn_os_H cdrskin/cleanup.c"
|
||||||
elif test "$i" = "-libburn_svn"
|
elif test "$i" = "-libburn_0_2_3"
|
||||||
then
|
then
|
||||||
libvers="-DCdrskin_libburn_0_2_6"
|
libvers="-DCdrskin_libburn_0_2_3"
|
||||||
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_6 set macro to match libburn-0.2.6."
|
echo " -libburn_0_2_2 set macro to match libburn-0.2.2."
|
||||||
echo " -libburn_svn set macro to match current libburn-SVN."
|
echo " -libburn_0_2_3 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 is the cdrecord compatibility middleware of libburn.
|
cdrskin-0.2.5 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,9 +19,10 @@ About libburn API for burning CD: http://libburn-api.pykix.org
|
|||||||
|
|
||||||
--------------------------------------------------------------------------
|
--------------------------------------------------------------------------
|
||||||
|
|
||||||
Appending sessions to an unclosed CD is restricted to write mode TAO.
|
Convenient TAO burn mode is provided in development version 0.2.5 but not in
|
||||||
(Users who have a burner which succeeds with a follow-up session via
|
current "stable" release 0.2.4. The same is true for multi-session, where
|
||||||
cdrecord -sao : please contact us.)
|
follow-up sessions must be done in TAO mode. (Users who have a burner which
|
||||||
|
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.
|
||||||
@ -134,8 +135,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.6 the TAO-to-SAO workaround has become
|
Since -tao is supported in cdrskin-0.2.5 the TAO-to-SAO workaround on its way
|
||||||
quite obsolete. Nevertheless, tao_to_sao_tsize= allows to preset a default
|
to obsolescence. 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
|
||||||
|
76
configure.ac
76
configure.ac
@ -1,21 +1,9 @@
|
|||||||
|
AC_INIT([libburn], [0.2.6], [http://libburn.pykix.org])
|
||||||
dnl library version info
|
|
||||||
m4_define([burn_interface_age], [0])
|
|
||||||
m4_define([burn_binary_age], [0])
|
|
||||||
|
|
||||||
dnl version info
|
|
||||||
m4_define([burn_major_version], [0])
|
|
||||||
m4_define([burn_minor_version], [2])
|
|
||||||
m4_define([burn_micro_version], [6])
|
|
||||||
m4_define([burn_nano_version], [3])
|
|
||||||
m4_define([burn_version], [burn_major_version().burn_minor_version().burn_micro_version()ifelse(burn_nano_version(), [], [], [.burn_nano_version()])])
|
|
||||||
|
|
||||||
AC_INIT([libburn], [burn_version], [http://libburnia.pykix.org])
|
|
||||||
AC_PREREQ([2.50])
|
AC_PREREQ([2.50])
|
||||||
dnl AC_CONFIG_HEADER([config.h])
|
dnl AC_CONFIG_HEADER([config.h])
|
||||||
|
|
||||||
AC_CANONICAL_HOST()
|
AC_CANONICAL_HOST
|
||||||
AC_CANONICAL_TARGET()
|
AC_CANONICAL_TARGET
|
||||||
|
|
||||||
AM_INIT_AUTOMAKE([subdir-objects])
|
AM_INIT_AUTOMAKE([subdir-objects])
|
||||||
|
|
||||||
@ -35,47 +23,55 @@ dnl set BURN_BINARY_AGE and BURN_INTERFACE_AGE to 0.
|
|||||||
dnl
|
dnl
|
||||||
dnl if MAJOR or MINOR version changes, be sure to change AC_INIT above to match
|
dnl if MAJOR or MINOR version changes, be sure to change AC_INIT above to match
|
||||||
dnl
|
dnl
|
||||||
BURN_MAJOR_VERSION=burn_major_version()
|
BURN_MAJOR_VERSION=0
|
||||||
BURN_MINOR_VERSION=burn_minor_version()
|
BURN_MINOR_VERSION=2
|
||||||
BURN_MICRO_VERSION=burn_micro_version()
|
BURN_MICRO_VERSION=6
|
||||||
BURN_INTERFACE_AGE=burn_interface_age()
|
BURN_INTERFACE_AGE=0
|
||||||
BURN_BINARY_AGE=burn_binary_age()
|
BURN_BINARY_AGE=0
|
||||||
|
BURN_VERSION=$BURN_MAJOR_VERSION.$BURN_MINOR_VERSION.$BURN_MICRO_VERSION
|
||||||
|
|
||||||
AC_SUBST([BURN_MAJOR_VERSION])
|
AC_SUBST(BURN_MAJOR_VERSION)
|
||||||
AC_SUBST([BURN_MINOR_VERSION])
|
AC_SUBST(BURN_MINOR_VERSION)
|
||||||
AC_SUBST([BURN_MICRO_VERSION])
|
AC_SUBST(BURN_MICRO_VERSION)
|
||||||
|
AC_SUBST(BURN_INTERFACE_AGE)
|
||||||
|
AC_SUBST(BURN_BINARY_AGE)
|
||||||
|
AC_SUBST(BURN_VERSION)
|
||||||
|
|
||||||
dnl Libtool versioning
|
dnl Libtool versioning
|
||||||
|
LT_RELEASE=$BURN_MAJOR_VERSION.$BURN_MINOR_VERSION
|
||||||
LT_CURRENT=`expr $BURN_MICRO_VERSION - $BURN_INTERFACE_AGE`
|
LT_CURRENT=`expr $BURN_MICRO_VERSION - $BURN_INTERFACE_AGE`
|
||||||
LT_REVISION=$BURN_INTERFACE_AGE
|
LT_REVISION=$BURN_INTERFACE_AGE
|
||||||
LT_AGE=`expr $BURN_BINARY_AGE - $BURN_INTERFACE_AGE`
|
LT_AGE=`expr $BURN_BINARY_AGE - $BURN_INTERFACE_AGE`
|
||||||
|
LT_CURRENT_MINUS_AGE=`expr $LT_CURRENT - $LT_AGE`
|
||||||
|
|
||||||
LT_VERSION_INFO=$LT_CURRENT:$LT_REVISION:$LT_AGE
|
AC_SUBST(LT_RELEASE)
|
||||||
AC_SUBST([LT_VERSION_INFO])
|
AC_SUBST(LT_CURRENT)
|
||||||
|
AC_SUBST(LT_REVISION)
|
||||||
|
AC_SUBST(LT_AGE)
|
||||||
|
AC_SUBST(LT_CURRENT_MINUS_AGE)
|
||||||
|
|
||||||
AC_PREFIX_DEFAULT([/usr/local])
|
AC_PREFIX_DEFAULT([/usr/local])
|
||||||
test "$prefix" = "NONE" && prefix=$ac_default_prefix
|
test "$prefix" = "NONE" && prefix=$ac_default_prefix
|
||||||
|
|
||||||
AM_MAINTAINER_MODE()
|
AM_MAINTAINER_MODE
|
||||||
|
|
||||||
AM_PROG_CC_C_O()
|
AM_PROG_CC_C_O
|
||||||
AC_C_CONST()
|
AC_C_CONST
|
||||||
AC_C_INLINE()
|
AC_C_INLINE
|
||||||
AC_C_BIGENDIAN()
|
AC_C_BIGENDIAN
|
||||||
|
|
||||||
dnl Large file support
|
dnl Large file support
|
||||||
AC_SYS_LARGEFILE()
|
AC_SYS_LARGEFILE
|
||||||
dnl AC_FUNC_FSEEKO()
|
AC_FUNC_FSEEKO
|
||||||
AC_CHECK_FUNC([fseeko])
|
|
||||||
if test ! $ac_cv_func_fseeko; then
|
if test ! $ac_cv_func_fseeko; then
|
||||||
AC_ERROR([Libburn requires largefile support.])
|
AC_ERROR([Libburn requires largefile support.])
|
||||||
fi
|
fi
|
||||||
|
|
||||||
AC_PROG_LIBTOOL()
|
AC_PROG_LIBTOOL
|
||||||
AC_SUBST([LIBTOOL_DEPS])
|
AC_SUBST(LIBTOOL_DEPS)
|
||||||
LIBTOOL="$LIBTOOL --silent"
|
LIBTOOL="$LIBTOOL --silent"
|
||||||
|
|
||||||
AC_PROG_INSTALL()
|
AC_PROG_INSTALL
|
||||||
|
|
||||||
AC_CHECK_HEADERS()
|
AC_CHECK_HEADERS()
|
||||||
|
|
||||||
@ -86,11 +82,11 @@ AC_CHECK_MEMBER([struct tm.tm_gmtoff],
|
|||||||
[#include <time.h>])
|
[#include <time.h>])
|
||||||
|
|
||||||
THREAD_LIBS=-lpthread
|
THREAD_LIBS=-lpthread
|
||||||
AC_SUBST([THREAD_LIBS])
|
AC_SUBST(THREAD_LIBS)
|
||||||
|
|
||||||
TARGET_SHIZZLE
|
TARGET_SHIZZLE
|
||||||
AC_SUBST([ARCH])
|
AC_SUBST(ARCH)
|
||||||
AC_SUBST([LIBBURN_ARCH_LIBS])
|
AC_SUBST(LIBBURN_ARCH_LIBS)
|
||||||
|
|
||||||
dnl Add compiler-specific flags
|
dnl Add compiler-specific flags
|
||||||
|
|
||||||
@ -117,4 +113,4 @@ AC_CONFIG_FILES([
|
|||||||
version.h
|
version.h
|
||||||
libburn-1.pc
|
libburn-1.pc
|
||||||
])
|
])
|
||||||
AC_OUTPUT()
|
AC_OUTPUT
|
||||||
|
@ -56,8 +56,8 @@ WARN_LOGFILE =
|
|||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
# configuration options related to the input files
|
# configuration options related to the input files
|
||||||
#---------------------------------------------------------------------------
|
#---------------------------------------------------------------------------
|
||||||
INPUT = libburn doc test
|
INPUT = libburn libisofs doc test
|
||||||
FILE_PATTERNS = libburn.h comments libburner.c
|
FILE_PATTERNS = libburn.h libisofs.h comments libburner.c
|
||||||
RECURSIVE = NO
|
RECURSIVE = NO
|
||||||
EXCLUDE =
|
EXCLUDE =
|
||||||
EXCLUDE_SYMLINKS = NO
|
EXCLUDE_SYMLINKS = NO
|
||||||
|
4
test/burn.c
Normal file
4
test/burn.c
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
int main()
|
||||||
|
{
|
||||||
|
return 0;
|
||||||
|
}
|
126
test/master.c
Normal file
126
test/master.c
Normal file
@ -0,0 +1,126 @@
|
|||||||
|
/* -*- 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
Normal file
54
test/rip.c
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
/* 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
Normal file
77
test/tree.py
Normal file
@ -0,0 +1,77 @@
|
|||||||
|
# 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
Normal file
BIN
test/tree.pyc
Normal file
Binary file not shown.
Reference in New Issue
Block a user