CD Mastering

Table of Contents

  1. Requirements and Setup
  2. Making an ISO-image from files on the harddisk
  3. Testing the contents of the ISO-image file on the harddisk
  4. Copying the ISO-image to the CD-R(W)
  5. Copying the CD to the harddisk as an ISO-image
  6. Checking Data and Source integrity
  7. Audio CD Mastering
  8. References

1. Requirements and Setup

1.1 Hardware Enabling

After having installed all your CD/DVD devices, first check that all of them are detected during the BIOS bootstrap process, if not, something is probably wrong with the IDE/SCSI cabling, power-supply, or the BIOS settings.

Then check if all of your CD/DVD devices are detected during the Linux kernel bootstrap process:

dmseg | grep CD-ROM

Uniform CD-ROM driver Revision: 3.12
  Vendor: PLEXTOR   Model: CD-ROM PX-32TS    Rev: 1.02
  Type:   CD-ROM                             ANSI SCSI revision: 02
  Type:   CD-ROM                             ANSI SCSI revision: 02
Attached scsi CD-ROM sr0 at scsi0, channel 0, id 1, lun 0
Attached scsi CD-ROM sr1 at scsi0, channel 0, id 2, lun 0

dmesg | grep DVD

hdc: Pioneer DVD-ROM ATAPIModel DVD-106S 012, ATAPI CD/DVD-ROM drive
hdc: ATAPI 40X DVD-ROM drive, 256kB Cache

If you don't see your ATAPI/IDE CD/DVD devices check that you have both the IDE/ATAPI block device and CD-ROM drivers (CONFIG_BLK_DEV_IDE=y and CONFIG_BLK_DEV_IDECD=y) in your Linux kernel configuration.

Or, if you (only) have SCSI CD/DVD devices check that you have the generic SCSI support driver (CONFIG_SCSI=y and CONFIG_CHR_DEV_SG=y) and make sure you've also selected the right low-level SCSI controller driver (which is CONFIG_SCSI_SYM53C8XX=y for _my_ situation)

If you have any SCSI CD/DVD devices you can also check if the generic SCSI driver in Linux sees them:

cdrecord -scanbus

Linux sg driver version: 3.1.17
Using libscg version 'schily-0.5'
scsibus0:
        0,0,0     0) *
        0,1,0     1) 'PLEXTOR ' 'CD-ROM PX-32TS  ' '1.02' Removable CD-ROM
        0,2,0     2) 'RICOH   ' 'MP6200S         ' '2.20' Removable CD-ROM
        0,3,0     3) *
        0,4,0     4) *
        0,5,0     5) *
        0,6,0     6) *
        0,7,0     7) *

1.2 File System Support

You should at least have Linux kernel support for the ISO 9660 CD-ROM file system (CONFIG_ISO9660_FS=y). If you're also planning on burning DVD's make sure you have both the read and the (experimental) write driver for the UDF file system (CONFIG_UDF_FS=y and CONFIG_UDF_RW=y).


2. Making an ISO-image from files on the harddisk

Creating a Rock-Ridge ISO-image (with long filename support ofcourse) from a directory:

mkisofs -o my_cdrom.iso -l -R cd_dir

See the manual page of mkisofs for many other interesting options.

note: for windows compatibility and other joliet systems use "-J" option as well.


3. Testing the contents of the ISO-image file on the harddisk

mount my_cdrom.iso /cdrom -o loop -t iso9660

4. Copying the ISO-image to the CD-R(W)

nice --18 cdrecord -eject -v speed=2 dev=0,2,0 -data -pad my_cdrom.iso

See the manual page of cdrecord for many other interesting options.

Here's an example of a CD-ROM burning session:

Cdrecord 1.10 (i686-pc-linux-gnu) Copyright (C) 1995-2001 Jörg Schilling
TOC Type: 1 = CD-ROM
scsidev: '1,0,0'
scsibus: 1 target: 0 lun: 0
Linux sg driver version: 3.1.24
Using libscg version 'schily-0.5'
atapi: 1
Device type    : Removable CD-ROM
Version        : 0
Response Format: 1
Vendor_info    : 'TDK     '
Identifikation : 'CDRW8432        '
Revision       : '1.07'
Device seems to be: Generic mmc CD-RW.
Using generic SCSI-3/mmc CD-R driver (mmc_cdr).
Driver flags   : SWABAUDIO
Drive buf size : 2394336 = 2338 KB
FIFO size      : 4194304 = 4096 KB
Track 01: data  674 MB        
Total size:     774 MB (76:41.41) = 345106 sectors
Lout start:     774 MB (76:43/31) = 345106 sectors
Current Secsize: 2048
ATIP info from disk:
  Indicated writing power: 5
  Is not unrestricted
  Is not erasable
  Disk sub type: Medium Type A, low Beta category (A-) (2)
  ATIP start of lead in:  -11634 (97:26/66)
  ATIP start of lead out: 359849 (79:59/74)
Disk type:    Short strategy type (Phthalocyanine or similar)
Manuf. index: 3
Manufacturer: CMC Magnetics Corporation
Blocks total: 359849 Blocks current: 359849 Blocks remaining: 14743
Starting to write CD/DVD at speed 8 in write mode for single session.
Last chance to quit, starting real write in 0 seconds. Operation starts.
Waiting for reader process to fill input buffer ... input buffer ready.
Performing OPC...
Starting new track at sector: 0
Track 01: 674 of 674 MB written (fifo 100%).
Track 01: Total bytes read/written: 706772992/706772992 (345104 sectors).
Writing  time:  587.488s
Fixating...
Fixating time:   33.978s
cdrecord: fifo had 11133 puts and 11133 gets.
cdrecord: fifo was 0 times empty and 11045 times full, min fill was 95%.

5. Copying the CD to the harddisk as an ISO-image

dd if=/dev/cdrom of=my_cdrom.iso

6. Checking Data and Source integrity of an ISO-image

Data checking using with the MD5 hash algorithm

Todo.

Source authenticity checking can be done using GnuPG/OpenPGP digital signatures

Todo.


7. Audio CD Mastering

First make .wav files using xmms disk writer plugin.

This allows you to convert .ogg and .mp3.

The files will have names like dir/track*.wav

then run command:

# cdrecord -v speed=8 dev=1,0,0 -pad -eject -audio dir/track*.wav

To find device reference run:

# cdrecord -scanbus


8. References


Last update: 2002/9/13 Alex