Configuring an IDE/ATAPI CD-ROM burner in RedHat Linux 6.1

Overview

This document describes the steps I followed to configure my Linux system for CD-ROM burning. I have created this report for my benefit and yours, so that when I forget I can remember, and so that if you need to know you can learn.

Comments on this tutorial are welcome. Please send them to linuxcdburn@Xsharkysoft.com. (To prevent spam, this email address has been deliberately misprinted. To correct the error, please remove the X.)

motivation

I used to do all my burning in Windows. No more. Once you get your Linux system configured for burning, you will never again boot into Windows just to burn a CD-ROM. Linux simply rocks when it comes to reliable burning. I used to get bad burns (a.k.a. "coasters") all the time in Windows. To date, I have not had a single bad burn in Linux.

disclaimer

I am not a Linux expert. I am not a RedHat expert. I am not a CD-ROM expert. You should remember these facts as you read this guide. A more thorough discussion of Linux CD-ROM burning issues can be found in the Linux CD-ROM Burning HOWTO, by Winfried Trümper. Although Trümper' HOWTO contains a plethora of useful information, the document's size can be intimidating.

This "quick start" guide is for a very specific audience: for novice Linux users like me, who:

If you fit this profile, then this guide may be just what you need to get your burner cooking.

All of the procedures described below assume you are operating as root. If you don't have root access to your machine, you are in sad shape and might as well give up now.

Note that the procedures described in this document, if performed incorrectly -- or even if performed correctly -- can pose a considerable risk to your system. Use this guide at your own risk. I will not accept responsibility for consequences resulting from your use of this document (unless they are good consequences :-).

Step 1: Check kernel.

There's a good chance that your current kernel configuration is already set for CD burning. If you just installed RedHat 6.1 out of the box, you're good to go and can skip this step. However, if you are using another distribution, or if you've been tweaking your kernel lately and want to make sure it is still ready for CD-ROM burning, then you need to verify that the file

ide-scsi.o

exists in

/lib/modules/kernel_version/scsi,

and that it is loadable as a module.

If you find that this is no the case, then you may need to recompile your kernel to support the "ide-scsi" module. For help, consult Brian Ward's The Linux Kernel HOWTO and keep your fingers crossed.

Although I won't show you how to recompile your kernel, I'll at least share with you the necessary settings, and then wish you good luck:

Note: This chart uses the labels shown when make xconfig is run from the /usr/src/linux directory.

section

value

description

Block devices

Y

Enhanced IDE/MFM/RLL disk/cdrom/tape/floppy support

M

Include IDE/ATAPI CDROM support

M

SCSI emulation support

M

Loopback devices support

SCSI support

Y

SCSI support

Y

SCSI CD-ROM support

Y

SCSI generic support

Filesystems

Y

ISO 9600 CDROM filesystem support

Y

Microsoft Joliet CDROM extensions

Step 2: Configure boot block.

Open /etc/lilo.conf in your favorite editor. To the "image" section, add "hdx=ide-scsi", where x is the letter of the IDE controller attached to your burner. The table below shows some standard values:

hda

primary IDE controller, drive set as master (unlikely configuration)

hdb

primary IDE controller, drive set as slave

hdc

secondary IDE controller, burner set as master

hdd

secondary IDE controller, burner set as slave

(If your burner is connected to some other interface, chances are that none of these settings will work. Abort.)

Warning: The following action has the potential for making your system unbootable, so execute it at your own risk.

Save your changes to lilo.conf, and then run /sbin/lilo to rewrite your boot sector.

Step 3: Reboot system.

This is one of those extremely rare situations where rebooting Linux is necessary to complete a configuration change. In Step 2, you made kernel-level changes, and the only way to reload the kernel is to reboot your system. So go ahead -- reboot. And keep your fingers crossed.

Step 4: Install software.

Still with me? Great! You didn't fry your system! Give yourself a pat on the back.

Now you need to install the applications. The packages I am using are listed below, along with links you can follow to download them. You may already have this software or newer versions installed. Newer versions of each of these packages are available elsewhere, but these versions work for me, so I haven't bothered updating.

The last package, gcombust, is a GUI front end to the other packages. Although there are many other front end choices available, I have found gcombust to be sufficient for all my burning needs.

Step 5: Load SCSI-IDE emulation driver.

ATAPI is a feature that allows your IDE CD-ROM drive to respond to SCSI commands. Linux, which appears to give preference to SCSI systems, is compatible with your burner only because it uses ATAPI and a special SCSI emulation layer called "ide-scsi" to pretend your drive is a SCSI device. Load the emulation driver by running

/sbin/modprobe ide-scsi

There are many clever ways to make this driver load automatically on boot, or at least just before its needed. Ask your favorite Linux nerd.

Oh, one more thing here: In general, you will have better luck with CD-ROM burning if you disable all those "autorun" features that try to do things whenever you insert a CD-ROM into your drive.

Step 6: Update device link.

For convenience, you can install a link that helps all your other CD-ROM applications find your drive. Change into /dev and update your device listings to reflect the new identity of your CD-ROM drive:

ln -s scd0 cdrom

This will establish /dev/cdrom as an alias for /dev/scd0, a (pretend) SCSI device.

Step 7: Run gcombust.

You should be done now. The main application to run is gcombust. Run it with the command:

/usr/bin/gcombust

or just

gcombust

if /usr/bin is in your path.

The software interface is fairly self-explanatory to people who have experience burning CD-ROMs on other platforms, but there are also some features not available in most Windows programs that you'll have fun experimenting with.

Unfortunately, because of the way we just set things up, you'll probably have to run gcombust as root and do all your burning as root also. I'm not sure why, but if someone can figure out another way to do it, I'd sure like to hear about it.

If things aren't working out for you, please accept my apologies for getting your hopes up. I guess you'll have to do it the old fashioned way -- by reading gobs of man pages, HOWTOs, and USENET postings in foreign languages. Again, Trümper's HOWTO is a good place to start. May the force be with you.

Acknowledgements

The author wishes the thank Alen Peacock for teaching him the essence of what is in this tutorial, Winfried Trümper for providing the HOWTO from which Alen's knowledge probably originated, Jonas Munsin for gcombust, and scores of other programmers who made Linux and burning on Linux possible.