Limited cdrecord compatibility wrapper for libburn
Burns preformatted data to CD, DVD, and BD media:
CD-R, DVD-R, DVD-R DL, DVD+R, DVD+R DL, BD-R, CD-RW,
DVD-RW, DVD-RAM, DVD+RW, BD-RE
Direct hop to download links ->
About any CD, DVD, or BD recorder produced in the recent ten years.
supports recorders which are compliant to standards MMC-1 for CD and
MMC-5 for DVD or BD. Linux, FreeBSD, Solaris, and NetBSD can communicate
with drives connected via SCSI, PATA (aka IDE, ATA), USB, or SATA.
Software requirements :
- Linux with kernel 2.4 or higher (and libc, of course) :
- With kernel 2.4 an ATA drive has to be under ide-scsi emulation.
- With kernel 2.6 or higher the drive should not be under ide-scsi.
- or FreeBSD (with libc, of course) :
- ATA and SATA drives need atapicam running.
- libcam has to be installed.
- or Solaris (with libc, of course) :
- Tested on kernel 5.11, hopefully suitable for older ones too.
- or NetBSD (with libc, of course) :
- Tested on 6.1.2 and 6.1.3
- is supposed to be a standard system component.
GPL software included:
- (founded by Derek Foreman and Ben Jansens,
developed and maintained since August 2006 by
Thomas Schmitt from team of libburnia-project.org)
- transfers data to CD, DVD, BD
This program system has been tested on Intel/AMD with Linux, FreeBSD,
OpenSolaris, and NetBSD based operating systems.
Ports to other usable systems are appreciated. Reports are welcome.
- The most common options of cdrecord for data and audio on CD media
are provided in a compatible way.
On all DVD media, cdrskin is able to perform any recording job
which is possible with cdrecord.
Other than with cdrecord, option -multi is supported with many DVD types and
BD-R. Write mode -tao works with anything but quickly blanked DVD-RW and
DVD-R DL, which both support no -multi.
- Get an overview of drives and their addresses
- # cdrskin -scanbus
- # cdrskin dev=ATA -scanbus
- # cdrskin --devices
- Being superuser avoids permission problems with /dev/srN and /dev/hdX .
- Ordinary users should then get granted access to the /dev files
as listed by option --devices. Linux, FreeBSD, and NetBSD demand rw-permission.
On Solaris it is r-permission and privileges "basic,sys_devices".
- Get info about a particular drive or loaded media:
- $ cdrskin dev=0,1,0 -checkdrive
- $ cdrskin dev=ATA:1,0,0 -v -atip
- $ cdrskin dev=/dev/hdc -minfo
- Prepare CD-RW or DVD-RW for re-use, DVD-RAM or BD-RE for first use:
- $ cdrskin -v dev=/dev/sg1 blank=as_needed -eject
- Format DVD-RW to avoid need for blanking before re-use:
- $ cdrskin -v dev=/dev/sr0 blank=format_overwrite
- De-format DVD-RW to make it capable of multi-session again:
- $ cdrskin -v dev=/dev/sr0 blank=deformat_sequential
- Write ISO-9660 filesystem image as only one to blank or formatted media:
- $ cdrskin -v dev=/dev/hdc speed=12 fs=8m \
- blank=as_needed -eject padsize=300k my_image.iso
- Write compressed afio archive on-the-fly
(not DVD-R DL or minimally blanked DVD-RW):
- $ find . | afio -oZ - | \
- cdrskin -v dev=0,1,0 fs=32m speed=8 \
- blank=as_needed padsize=300k -
- Write several sessions to the same CD, DVD-R[W] or DVD+R[/DL]:
- $ cdrskin dev=/dev/hdc -v padsize=300k -multi 1.iso
- $ cdrskin dev=/dev/hdc -v padsize=300k -multi 2.iso
- $ cdrskin dev=/dev/hdc -v padsize=300k -multi 3.iso
- $ cdrskin dev=/dev/hdc -v padsize=300k 4.iso
- Get multi-session info for option -C of program mkisofs:
- $ c_values=$(cdrskin dev=/dev/sr0 -msinfo 2>/dev/null)
- $ mkisofs ... -C "$c_values" ...
- Inquire free space on media for a -multi run:
- $ x=$(cdrskin dev=/dev/sr0 -multi \
- --tell_media_space 2>/dev/null)
- $ echo "Available: $x blocks of 2048 data bytes"
- Accelerate BD-RE writing to full nominal speed after the first 250 MB
- $ cdrskin ... stream_recording=250m ...
- Write audio tracks to CD:
- $ cdrskin -v dev=ATA:1,0,0 speed=48 -sao \
- track1.wav track2.au -audio -swab track3.raw
- Get overview of the cdrecord compatible options:
- $ cdrskin -help
- Get overview of the non-cdrecord options:
- $ cdrskin --help
- Read the detailed manual page:
- $ man cdrskin
- Read about the standard for which cdrskin is striving:
- Do not bother Joerg Schilling with any cdrskin problems.
(Be cursed if you install cdrskin as "cdrecord" without clearly forwarding
this "don't bother Joerg" demand.)
- Learn to know a more versatile way to burn ISO 9660 formatted data
Standalone ISO 9660 multi-session CD/DVD/BD tool
- Download as source code (see README):
(detached GPG signature for verification by
gpg --verify cdrskin-1.4.2.tar.gz.sig cdrskin-1.4.2.tar.gz
after gpg --keyserver keys.gnupg.net --recv-keys ABC0A854).
The cdrskin tarballs are source code identical with libburn releases
of the same version number.
They get produced via a different procedure, though.
cdrskin is part of libburn - full libburn is provided with cdrskin releases.
- README an introduction
- cdrskin --help non-cdrecord options
- cdrskin -help cdrecord compatible options
- man cdrskin the manual page
- Thomas Schmitt, firstname.lastname@example.org
- libburn development mailing list,
- GPL, an Open Source approved license
Enhancements towards previous stable version cdrskin-1.4.0:
Bug fixes towards cdrskin-1.4.0:
- New -toc line "Drive id" tells the drive's individual serial number
- Media summary session count of blank and closed media was short by 1
- Endless loop if transport error occured while waiting for drive ready
Development snapshot, version 1.4.3 :
- Enhancements towards current stable version 1.4.2:
- Bug fixes towards cdrskin-1.4.2:
- "failed to attach fifo" when burning from stdin. Regression of 1.4.2.
- README 1.4.3
- cdrskin-1.4.3 --help
- cdrskin-1.4.3 -help
- man cdrskin (as of 1.4.3)
- Maintainers of cdrskin unstable packages please use SVN of
- Download: svn co http://svn.libburnia-project.org/libburn/trunk libburn
- Build: cd libburn ; ./bootstrap ; ./configure --prefix /usr ; make ; cdrskin/compile_cdrskin.sh
- Build of SVN versions needs
autotools of at least version 1.7 installed.
But after the run of ./bootstrap, only
vanilla tools like make and gcc are needed.
- The following download is intended for adventurous end users or
admins with full system sovereignty.
- Source (./bootstrap is already applied, build tested, for more see
upcoming README ):
Many thanks to Joerg Schilling for cdrecord,
and to Derek Foreman and Ben Jansens for creating libburn.
Historic versions based on Derek's and Ben's
Very special thanks to Andy Polyakov whose
provide libburn with invaluable examples on how to deal with DVD and BD media.
- Example for a setup of device permissions.
Newer Linux distros enable rw-access for the desktop user automatically.
So try as normal user whether all your drives are found.
CD devices which offer no rw-permission will stay invisible.
- $ cdrskin --devices
- If not all desired drives show up, become superuser and do again:
- # cdrskin --devices
- 0 dev='/dev/sr0' rwr-r- : 'TEAC' 'CD-ROM CD-532S'
- 1 dev='/dev/hdc' rwrw-- : 'LITE-ON' 'LTR-48125S'
- Most simple and most insecure is this equivalent
of the usual cdrecord permissions u+s,a+x:
- # chmod a+rw /dev/sr0 /dev/hdc
More secure is to put the permitted users into a group like
"floppy", to assign /dev/sr0 /dev/hdc to this group,
and to allow rw-access only to group members.
- # vi /etc/group
- # chgrp floppy /dev/sr0 /dev/hdc
- # chmod g+rw /dev/sr0 /dev/hdc
Example how to setup K3b to use cdrskin for burning data CD projects.
is a GUI frontend which uses cdrecord for CD burning.)
About the relationship of cdrecord and cdrskin
First of all: this relationship is single sided, as cdrskin has to be aware of
cdrecord but not vice versa.
I was a long time user of cdrecord and it worked fine for me.
Especially i do appreciate its write mode -tao which can pipe arbitrary
data on CD and CD-RW via stdin. cdrecord is reliable, versatile and well
maintained. So for me - there would be no problem with using it for
But the author of cdrecord and the Linux kernel people foster a very hostile
relationship. Ok, that's their business, not mine (or ours if you are with me).
One has to be aware, though, that this relationship might lead to a situation
where cdrecord is no longer available for certain Linux kernels.
To have my own project prepared for such a time, i began to implement its
cdrecord gestures on top of libburn.
From now on i invite other interested users of cdrecord to teach cdrskin
the gestures necessary for their cdrecord applications.
Contact me. Let's see what we can achieve.
libburn and cdrskin are now mature enough to substitute cdrecord in its
major use cases of CD and DVD burning. It is possible to foist cdrskin on
various software packages if it gets falsely named "cdrecord".
I do not encourage this approach, but of course such a replacement
opportunity is the goal of a cdrecord compatibility wrapper.
It is very important to me that this project is not perceived as hostile
towards Joerg Schilling and his ongoing work.
I owe him much. For cdrecord, for mkisofs, for star. Chapeau.
Enjoying free Open Source hosting by www.webframe.org
and by sourceforge.net
- Links to my other published software projects :
xorriso, a standalone ISO 9660 multi-session CD/DVD/BD burn tool.
No mkisofs needed.
(a second source of above)
scdbackup, multi volume CD backup
(a second source of above)
- Some Tools for Image Collectors
pppoem, a DSL throughput monitor (mainly for Linux kernel 2.4)
Legal statement: This website does not serve any commercial purpose.