Firing Phasers


By Christopher R. Curzio

I wanted an easy to use front-end for CD burning in Linux, so I decided to write one. Phaser was written in Perl, and designed to make CD burning under Linux a lot easier when done from the console. The program itself asks a series of questions, and uses the answers to configure your devices and settings.

Phaser was my first large programming project, written from scratch in Perl. Please bear in mind that while the code itself does work, it is likely to be a somewhat inefficient. This is constantly being improved in newer releases.

Phaser uses the cdrecord package by Jörg Schilling to do the real work. Lots of thanks to Jörg for writing the cdrecord package, which is excellent by itself.

Visit the Phaser Project Page on Freshmeat.

System Requirements

• Pentium 166 or better (for reliable burning)
• 16MB RAM
• CD Burner (Must be supported by CDRecord! Check here.)
• Linux 2.2.x or greater

If you're going to be copying CDs, you'll need about 700MB of free hard disk space.


Current Version:
Phaser 2.5 (Changelog) (July 21, 2004)

Older Versions:
Phaser 2.2 (September 18, 2002)
Phaser 2.1a (September 12, 2002)
Phaser 2.0 (August 18, 2002)
Phaser 1.55 (January 16, 2002)
Phaser 1.51 (November 17, 2001)
Phaser 1.5 (March 22, 2001)
Phaser 1.01 (March 20, 2001)
Phaser 1.0 (March 18, 2001)


If you have an IDE system, there are some configuration changes you will need to make to your system if you want to burn CDs under Linux. First, you will need to enable SCSI emulation support. This allows your IDE devices to be addressed as SCSI devices. When recompiling your kernel, be sure to remove IDE CD-ROM support and add SCSI Emulation support, SCSI CD-ROM support, and SCSI generic support. Build your kernel per manufacturer's instructions, and reboot.

Phaser has still not been tested on true SCSI systems!! That being said, it should still work properly.

Once you have SCSI emulation working (or if you have a SCSI system), we're ready to go. Put a blank CD-R in your burner, a source CD in the CD-ROM, and start up Phaser.

Phaser will automatically look for a configuration file in multiple locations, or you can specify one to use. Upon starting Phaser, it will look for a configuration file in the following forms:

• /etc/phaser.conf
• ~/.phaser
• ./phaser.conf

If it cannot find any of the above configuration files (or if it cannot read them), Phaser will continue without predefined settings.

You may also specify a config file to use by running Phaser with the -c flag.

./phaser -c /path/to/configuration.file

NOTE: AutoBurn is no longer a feature of Phaser. I figured what AutoBurn can accomplish can be done pretty much identically with a simple shell script.

NOTE: The phaser.conf files from 1.x are not compatible with phaser.conf for 2.0 and up. Phaser 2.0 will notice this, and ask you if you wish to convert your 1.x phaser.conf to the new format.

Phaser 2.5 - Copyright (C) 2001-2002 Christopher R. Curzio

Configuration file found!
Checking version...1.x

This appears to be a configuration file from an earlier version of Phaser.

Would you like to convert this file? [Y/n]: 

If you select "y", Phaser will rewrite your configuration file to the new format, while keeping your existing settings. Once the conversion is complete, you can have Phaser import these settings for use in the session. When this process is finished, you will be at the main menu.

Phaser 2.5 - Copyright (C) 2001-2002 Christopher R. Curzio

Main Menu:

 1) Create an ISO image.
 2) Burn a CD from an ISO image.
 3) Copy a CD.
 4) Blank a CD-RW Disc.
 5) Exit.


The menu selections are fairly straightforward. Option 1 allows you to create an ISO image from a specified directory. Option 2 will burn a CD from a specified ISO image. Option 3 will let you copy a CD from the reader to the writer. Option 4 blanks a CD-RW disc. And finally, Option 5 cleans up any stray files created, and exits Phaser.

Creating an ISO image

When Phaser creates an ISO image, it will ask you several questions. First, it asks for the "Application ID", which is a brief description of what is being burned to the disc. The Application ID can be up to 128 characters. Next, it will ask for the Volume ID.

After you've defined the relevant IDs, Phaser will prompt you for the specific extensions you wish to use. Joliet records are used so that Microsoft Windows systems can properly read the CD. RockRidge extensions allow the resulting CD to be mounted as an ISO9660 filesystem. If you select RockRidge extensions, you are asked whether you want to include backward compatibility for non-RockRidge systems. This places a "TRANS.TBL" file in each directory. Phaser then asks for the path you want to copy to the ISO, and finally the filename you want to give it. If there are any problems with the path (i.e.: it doesn't exist, isn't a directory, or isn't readable), Phaser will let you know.

Phaser 2.5 - Copyright (C) 2001-2002 Christopher R. Curzio

Create an ISO image:

Enter your desired Application ID (128 Characters Max): Application ID
Enter your desired Volume ID: volume_id
Support long filenames? [Y/n]: Y
Create Joliet records? [Y/n]: Y
Do you want RockRidge Extensions? [Y/n]: Y
- You have enabled RockRidge Extensions.
- Backward compatibility is available for non-RockRidge systems.
Enable backward compatibility? [y/N]: Y
Enter the path to the files you wish to copy to the ISO: /home/
Enter the filename for the ISO image: backup.iso

Are the above settings correct? [Y/n]: 

If the settings are correct, Phaser will create the ISO image, and save it to the current directory.

Burning a CD from an ISO image

When you choose to burn an ISO image, Phaser will review the settings it found in the configuration file and automatically import those settings. If you don't have a config file, Phaser will simply prompt you for the information it needs. First it will ask for the CD writer device. If you enter "p", you will get a list of all devices available on the SCSI bus. Phaser will also review the available devices, and make its best guess as to which device it thinks might be a writer.

Please select your CD write device. ("p" shows a list): p

 0,0,0    0) 'GoldStar' 'CD-ROM CRD-8240B' '1.12' Removable CD-ROM
 0,1,0    1) 'SONY    ' 'CD-RW  CRX195E1 ' 'ZYS5' Removable CD-ROM
 0,2,0    2) *
 0,3,0    3) *
 0,4,0    4) *
 0,5,0    5) *
 0,6,0    6) *
 0,7,0    7) *

It looks like device 0,1,0 is a CD Writer of some sort.
Please select your CD write device. ("p" shows a list):

If you've created an ISO image within the same session, Phaser will ask you if you want to burn that particular image.

It looks like you've recently created an ISO image. (image.iso)

Would you like to burn this ISO image? [y/N]: 

Copying a CD

For maximum reliability, Phaser does not support direct disc-to-disc copying. Instead, it first creates an image of the source disc, and then burns that image to CD. This process, while slower, is much more stable than a direct copy. (Direct copying might be an option in a future release of Phaser. I don't know yet.)

Once you have selected the option to copy a CD, Phaser will again prompt you for your read and write devices. (Or it will import them from your config file.) It will also prompt you for the same extension options discussed earlier, as well as speed/ejection options.

While earlier versions of Phaser didn't support a single device for reading and writing, Phaser 2.0 and above will permit this. If the same device is used for the source and destination, there will simply be a point at which Phaser will ask you to swap discs and hit enter.

Blanking a CD-RW

Finally, Phaser can blank a CD-RW disc using two different modes: "Complete" and "Fast". "Complete" mode will blank the entire disc, and will probably take awhile. "Fast" mode will only blank out the PMA, the TOC, and the pregap, but is much faster. "Complete" mode is recommended.

Phaser will also ask if you want to override any errors that pop up. This will try some tricks on a CD-RW disc that might otherwise have problems blanking.

Please select your CD write device. ("p" shows a list): 1
Selected write device: 0,1,0 (SONY CRX195E1)

Enter desired write speed. [4]: 32
- Write speed set to 32.
Eject disc when operation complete? [Y/n]: 
Override all errors? [y/N]: 

- Complete blanking is more thorough, but takes longer.
Fast or Complete blanking? [F/c]: C

Ready to completely blank a CD-RW on device 0,1,0 at 32x.
Press ENTER to continue, "c" to cancel: 

Questions? Comments? Suggestions? Bug Reports? E-mail me.