NOTE: This entry applies to Linux 2.4. For Linux 2.6, see this journal entry.
I purchased and fitted a new CD-RW drive for my Linux machine, gold. The following set of instructions are a distilled version of advice on how to get a CD-RW device working under linux, using cdrecord, found on the web. The main sources were two Linux Gazette articles, one by Chris Stoddard and the other by Daniel Feenberg.
cdrecord only talks to SCSI disks, so to you need to install the Linux
scsi emulator for ide drives. There are two steps for this: in
rc.local (or your favourite equivalent) add the command insmod
ide-scsi
. Then determine the device designation of the CD-RW
driver (in my case /dev/hdd) and ensure the following parameters are passed to
the kernel at boot time: hdd=ide-scsi
. For lilo this can
be performed via the append statement in the lilo.conf file. If you
are using grub, simply append the parameter to the kernel invocation
line.
Reboot the machine and issue the command cdrecord
-scanbus
. This will return a list of scsi devices; only one is
of interest, usually the first:
Cdrecord 1.10 (i686-pc-linux-gnu) Copyright (C) 1995-2001 Jorg Schilling Linux sg driver version: 3.1.24 Using libscg version 'schily-0.5' scsibus0: 0,0,0 0) 'HL-DT-ST' 'CD-RW GCE-8520B ' '1.00' Removable CD-ROM 0,1,0 1) * 0,2,0 2) * 0,3,0 3) * 0,4,0 4) * 0,5,0 5) * 0,6,0 6) * 0,7,0 7) *
To record to the device, first make an image of the files to be burnt using the mkisofs command, then burn it using cdrecord. The device passed to cdrecord must be the list of scsi numbers assigned to the CD-RW found by scanbus. In my example this is 0,0,0.
mkisofs -r -o dev.img dev cdrecord -v speed=24 dev=0,0,0 -data dev.img
Here, dev is the directory I wish to copy; dev.img is the image file created by mkisofs.
If you want to read CDs using the CD-RW device, try the following:
ln -s /dev/scd0 /dev/cdr
/dev/cdr /mnt/cdr iso9660 noauto,owner,root,ro 0 0
Now this can be mounted in exactly the same way as a CD-R device.