Penguin
Note: You are viewing an old revision of this page. View the current version.

Graphical CD writing software

Note that these are all merely graphical front-ends that call cdrecord to do the actualy writing, so you will need to make sure that cdrecord works (see the following sections for help with this).

  • K3B is the KDE project's GUI burning tool
  • xcdroast has a fairly awful GTK based GUI.
  • eroaster looks much better designed for ease-of-use... written in Python and GTK.
  • GNOME2? has nautilus-cd-burner, a gnome-vfs thing that means you can drag'n'drop files into the burn:/// virtual directory, and then click the Burn button. Nice and easy.

cdrecord(1)

At least in Debian Woody, the file /etc/default/cdrecord stores settings about your CD writer(s). The last section which maps the device settings to the drive name must be Tab separated. Blanks won't work.

Make sure that your user has permission to any required device files and executable programs. In Debian, the files have the appropriate permissions for people in the cdrom group. If you add yourself to the group you will have to log out and back in for that to take effect.

How to get your CDR working - IDE SCSI emulation

Note: Recent versions of cdrecord(1) combined with a recent LinuxKernel can use native IDE drivers for IDE CD writers, so this whole mumbo jumbo is not necessary. See the notes further down the page.

See our SCSI-IDENotes page for notes on setting up ide-scsi emulation.

Finding the CDR

Now find your CDR with cdrecord -scanbus, which returns something like

Cdrecord 2.01a16 (i686-pc-linux-gnu) (C) 1995-2003 Jörg Schilling Linux sg driver version: 3.5.28 Using libscg version 'schily-0.7'

scsibus0

0,0,0 0) 'HP ' 'CD-Writer+ 9100 ' '1.0c' Removable CDR 0,1,0 1) * 0,2,0 2) * ....

This means your CDR is at 0,0,0 just like on most single-drive machines with IDE CD writers.

How to get your CDR working - ATAPI Styles

Recent 2.4 kernels, and all 2.6 kernels, have support for cdwriting via ATAPI. There is however a whole heap of crap going on at the moment over this, with Linus slagging off the cdrecord author for sticking to an outdated and hideous interface, and the cdrecord author slagging off linux in general because of its shite compatability with the standards he wants. (See http://lkml.org/lkml/2003/11/6/151 for Linus's take on this, and see README.ATAPI for the author's take.)

That said, I have managed to write CDs under 2.6.0 using ATAPI commands only.

Why would you want to do this?

The main reason might be that you dont have to piss round with ide-scsi emulation and so on. However, the bigger reason is that it appears that ide-scsi has a major bug in it which wont be fixed any time in a hurry, and so if you want cdwriting to work under 2.6 you'll want to use the ATAPI interface. Another reason is that its such a pain in the ass to change between using ide-scsi and ide-cd if you want to go from, say, writing a cd to playing a dvd, and you have one of those nifty combo cdr/dvd drives.

What to do:

Make sure you have the ATAPI Cdrom driver compiled in or as a module in your system. Probably best if you disable ide-scsi emulation while you're at it.

Upgrade cdrecord to the latest versions (2.0.x and above all appear to support this).

Get the latest version of whatever graphical frontend you prefer, and make sure they grok the ATAPI interface. If they don't, email the author requesting the feature and explain why you're now using a different program instead of theirs :)

Finding the CDR

Now find your CDR with cdrecord dev=ATAPI -scanbus. Note the dev=ATAPI bit. I'm led to believe that without that, cdrecord might well lock solid and need a reboot, although it seems ok in practice.

The above command will return something like

Cdrecord-Clone 2.01a19 (i686-pc-linux-gnu) Copyright (C) 1995-2003 Jörg Schilling scsidev: 'ATAPI:' devname: 'ATAPI' scsibus: -1 target: -1 lun: -1 Warning: Using ATA Packet interface. Warning: The related libscg interface code is in pre alpha. Warning: There may be fatal problems. Using libscg version 'schily-0.7'

scsibus0

0,0,0 0) *

cdrecord: Warning: controller returns wrong size for CD capabilities page.

0,1,0 1) ' ' 'ATAPI CDROM 52X ' '120N' Removable CD-ROM 0,2,0 2) * ....

scsibus1

1,0,0 100) 'CDWRITER' 'IDE4012 ' '409E' Removable CD-ROM 1,1,0 101) * 1,2,0 102) * ...

So, this says that I have an ATAPI cdrom on dev=ATAPI:0,1,0 and an atapi cdwriter on dev=ATAPI:1,0,0.

Devices on /dev/hdd (ie Secondary Slave) show as 0,1,0.

You can now burn CD's just as you could before, except use the device names as detailed above (ie, dev=ATAPI:1,0,0 )

Any issues with this ?

  • Under earlier 2.6.0 test kernels, I couldn't write audio cds using the ATAPI interface. Not tried it lately, nor investigated why.
  • DMA only works in some situations. If you dont have DMA enabled, you can't write faster than 16x.

However, I successfully wrote an audio cd using ATAPI under kernel 2.4.24 and cdrecord version 2.0.something under Debian Testing (although my graphical front-end didn't know about passing the dev=ATAPI option to cdrecord, so I had to use the command line with

$ cdrecord -v -dao dev=ATAPI:0,1,0 driveropts=burnfree -audio -pad *.wav

The average write speed was 25x :p (JohnMcPherson)

-- If you read my SoundProcessingNotes page, you'll note I continued to have problems, regardless of whether I used a command line approach or an ATAPI-aware GUI. However, my command differed from yours above, which could well have been the problem. I will investigate :) -- DanielLawson

Debian Woody

If you're brave and run linux 2.6 under Debian Woody, all you need to do is include backports for cdrdao and cdrtools, and you can use ATAPI CDWriting just fine. You should already have backports for module-init-tools and other assorted packages like hdparm that need updating for the new kernel, so add these ones as well
deb http://www.backports.org/debian woody cdrdao deb http://www.backports.org/debian woody cdrtools
I've successfully burnt an .iso image to disk using an LG 52x ATAPI Cdwriter. The output from cdrecord dev=ATAPI -scanbus looked like this
0,0,0 0) 'HL-DT-ST' 'CD-RW GCE-8525B ' '1.01' Removable CD-ROM

Not tried an audio cd yet.

Writing bootable CDs

The CD standard supports 'floppy emulation', great for getting those old discs backed up and loading at 10 times the speed. If you have a floppy image you've downloaded, call it boot.img (or change the command line). If you have a 1.44Mb floppy, run

  1. dd if=/dev/fd0 of=boot.img bs=10k count=144

Put boot.img in an otherwise empty directory, and from that directory run

  1. mkisofs -b boot.img -c boot.catalog . | cdrecord -v .

mkisofs will generate the boot.catalog file for you. Add '-dummy' to cdrecord if you want a test run first. If cdrecord doesn't know about your cdr then you'll need to add 'dev=x,y,z' and possibly 'speed=n'. If you just want to create the .iso file then you can use '-o boot.iso' with mkisofs instead of piping it to cdrecord. The '.' at the end of mkisofs is still required though.

There's a file 'README.eltorrito' in /usr/share/doc/mkisofs that explains how to do boot CDs.

See also

  • HowToCDWritingHOWTO?
  • HowToSCSIGenericHOWTO?

CategoryDiskNotes