http://www-106.ibm.com/developerworks/linux/library/l-cdburn.html
Use either an IDE/ATAPI or SCSI CD writer if you can. Parallel port interface is a horrid kluge asking for trouble, and USB drives are slow. Neither is well-supported in Linux (although you might have better luck with the newer USB 2.0 drives).
IDE/ATAPI drives, which are the most common, need a bit of tweaking to work. So, what happens if cdrecord shows no drives configured? To check, type this: $ cdrecord -scanbus
If it displays your CD-RW drive (see Burning the disk, below), you can skip most of this section, although you might want to skim through anyway for your own information.
Linux uses a SCSI emulation subsystem, so IDE/ATAPI CD-writers need compatibility drivers. If there is a CD-ROM and a CD-R/RW on the same PC, both need to use the ide-scsi pseudo device driver to enable copying disks. There is no downside to using the SCSI emulation on a CD-ROM; it will work just the same; only the name will change. Depending on your particular flavor of Linux, the drive designation will change from something like /dev/cdrom0, or /dev/hdc, to /dev/scd0 (see Table 1 for a list of IDE/ATAPI device names).
Table 1. IDE/ATAPI device names
Name | Device |
---|---|
hda | IDE bus/connector 0 master device |
hdb | IDE bus/connector 0 slave device |
hdc | IDE bus/connector 1 master device |
hdd | IDE bus/connector 1 slave device |
To find drives on your system, type:
$ dmesg | grep '^hd.:'
hda: IBM-DTLA-305020, ATA DISK drive hdb: TOSHIBA DVD-ROM SD-M1202, ATAPI CD/DVD-ROM drive hdc: LITE-ON LTR-24102B, ATAPI CD/DVD-ROM drive hda: 40188960 sectors (20577 MB) w/380KiB Cache, CHS=2501/255/63, UDMA(66)
Most modern Linuxes come with the SCSI emulation already compiled into the kernel:
$ locate ide-scsi.o /lib/modules/2.4.19/kernel/drivers/scsi/ide-scsi.o
If your system does not have this, you'll have to compile it into your kernel. That is way too big a subject for this wee article, so please see Resources (it's not hard, when you know how).
You'll need to edit two text files to configure the system to use the ide-scsi driver. The first is /etc/modules.conf (in Debian, /etc/modules). My system has a CD-ROM and CD-R/RW drive, hdb and hdc. Add these lines to /etc/modules.conf (or /etc/modules) using values appropriate for your system:
ide-cd ignore=\"hdb hdc\" ide-scsi
By default, the IDE subsystem claims all ATA devices for its own, so the ignore line enables the SCSI subsystem to grab both the CD-R/RW and CD-ROM.
Next, edit the configuration file for your bootloader, GRUB or LILO. For LILO users, add the following to the end of lilo.conf:
append="hdb=ide-scsi" append="hdc=ide-scsi"
For GRUB users, add the following to /etc/grub.conf (or in Debian, /boot/grub/menu.lst) at the end of the kernel line:
hdb=scsi hdc=scsi
Now reboot and verify that it has loaded:
$ lsmod
This will return a long list; look for ide-scsi.