home *** CD-ROM | disk | FTP | other *** search
/ PC World 1999 August / PCWorld_1999-08_cd.bin / doc / HOWTO / CD-Writing-HOWTO < prev    next >
Text File  |  1999-04-27  |  50KB  |  1,651 lines

  1.   CD-Writing HOWTO
  2.   Winfried Trⁿmper <winni@xpilot.org>
  3.   v2.7, 11 April 1999
  4.  
  5.   This document explains how to write CD-ROMs under Linux.
  6.   ______________________________________________________________________
  7.  
  8.   Table of Contents
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.  
  22.  
  23.  
  24.  
  25.  
  26.  
  27.  
  28.  
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  
  35.  
  36.  
  37.  
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67.   1. Introduction
  68.  
  69.      1.1 Copyright, license and terms of usage
  70.      1.2 Suggested readings
  71.      1.3 Terminology ... lasers at maximum ... fire!
  72.      1.4 Supported CD-Writers
  73.      1.5 Supported "features"
  74.      1.6 Mailinglists
  75.      1.7 Availability
  76.  
  77.   2. Setup Linux-system for writing CD-ROMs
  78.  
  79.      2.1 Set up the Linux-kernel
  80.         2.1.1 Special hints for the 2.2-series
  81.         2.1.2 Special hints for the 2.0-series
  82.      2.2 Hardware and devicefiles
  83.         2.2.1 IDE/ATAPI CD-writers
  84.         2.2.2 SCSI CD-Writers
  85.            2.2.2.1 Generic SCSI devices
  86.         2.2.3 CD-Writers for the parallel port
  87.      2.3 Get the user-software for burning CD-Rs
  88.         2.3.1 Command line utilities
  89.         2.3.2 Graphical user interfaces (optional)
  90.  
  91.   3. Burning CD-Rs
  92.  
  93.      3.1 Writing CD-ROMs (pure data)
  94.         3.1.1 Creating an image of the later CD-ROM
  95.         3.1.2 Test the CD-image
  96.         3.1.3 Write the CD-image to a CD
  97.      3.2 Writing audio CDs
  98.      3.3 Mixed mode CD-ROMs
  99.  
  100.   4. Frequently asked questions with answers
  101.  
  102.      4.1 "How sensitive is the burning process?"
  103.      4.2 "Has fragmentation a bad impact on the throughput?"
  104.      4.3 "Is it possible to store the CD-image on an UMSDOS-filesystem?"
  105.      4.4 "Isn't there some way to get around the ISO-9660 limitations?"
  106.      4.5 "How to read the tracks from audio CDs?"
  107.      4.6 "How to probe for SCSI-devices after boot?"
  108.      4.7 "Is it possible to make a 1:1 copy of a data CD?"
  109.      4.8 "Can Linux read Joliet CD-ROMs?"
  110.      4.9 "How do I read/mount CD-ROMs with the CD-writer?"
  111.      4.10 "How to put even more data on the CD-R?"
  112.      4.11 "How to make bootable CD-ROMs?"
  113.      4.12 "How to make CD-ROMs writable somehow?"
  114.      4.13 "Is it possible to use several writers at once?"
  115.      4.14 "Which media is the best?"
  116.  
  117.   5. Troubleshooting
  118.  
  119.      5.1 It doesn't work: under Linux
  120.      5.2 Error-message: No read access for 'dev=2,0'.
  121.      5.3 It doesn't work: under DOS and friends
  122.      5.4 SCSI errors during the burning phase
  123.  
  124.   6. Credits
  125.  
  126.  
  127.  
  128.   ______________________________________________________________________
  129.  
  130.  
  131.  
  132.  
  133.   1.  Introduction
  134.  
  135.   Many people use Linux to burn CD-ROMs, because it is reliable and
  136.   easy. No bluescreens while burning and no headaches about getting the
  137.   right combination of hard- and software. It just works once properly
  138.   set up. The CD-writing HOWTO explains the setup,  how to put data on
  139.   the media and gives some interesting applications kindly submitted by
  140.   the readers.
  141.  
  142.  
  143.  
  144.   1.1.  Copyright, license and terms of usage
  145.  
  146.   Copyright Winfried Trⁿmper 1996,1997,1998,1999. All rights reserved.
  147.  
  148.   Redistribution and use, with or without modification, are permitted
  149.   provided that the name of the author may not be used to endorse or
  150.   promote products derived from this software without specific prior
  151.   written permission.
  152.  
  153.   The author disclaims all warranties with regard to this document,
  154.   including all implied warranties of merchantability and fitness for a
  155.   certain purpose; in no event shall the author be liable for any
  156.   special, indirect or consequential damages or any damages whatsoever
  157.   resulting from loss of use, data or profits, whether in an action of
  158.   contract, negligence or other tortious action, arising out of or in
  159.   connection with the use of this document.
  160.  
  161.   Short: read and use at your own risk.
  162.  
  163.  
  164.   1.2.  Suggested readings
  165.  
  166.  
  167.   The CD-R FAQ <http://www.fadden.com/cdrfaq/> is a general FAQ about
  168.   compact-disk recordables (CD-R), CD-writers and the required software.
  169.  
  170.   As most CD-writers can be used to read CD-ROMs, too, you may want to
  171.   read the Linux CD-ROM HOWTO, the Linux SCSI HOWTO and the Linux Kernel
  172.   HOWTO.
  173.  
  174.  
  175.  
  176.   1.3.  Terminology ... lasers at maximum ... fire!
  177.  
  178.  
  179.   CD-ROM stands for Compact Disc Read Only Memory, a storage medium
  180.   utilizing an optical laser to sense microscopic pits on a silver
  181.   shimmering disk. The silver shimmering comes from an aluminized layer
  182.   which is the carrier. The pits represent the bits of the information
  183.   (in some way) and are so petite that some billions of them fit on the
  184.   disc. Thus a CD is a mass-storage medium.
  185.  
  186.   The term CD-R is a short form of CD-ROM recordable and refers to a CD
  187.   that doesn't have those "microscopic pits" on it's surface.  Thus it's
  188.   empty. Instead of the silver aluminium layer a CD-R has a special film
  189.   (colored) into which "microscopic pits" can be burned in. This is done
  190.   by giving the laser which normally only senses the pits a little bit
  191.   more power so he burns the pits. This action can only be taken once on
  192.   a CD-R, although you can leave out some areas for later writing,
  193.   creating a so called multi-session CD.
  194.  
  195.   The CD-ROM rewritable (short: CD-RW) was developed to come around the
  196.   limitation of CD-R media. Here the laser can not even burn pits into
  197.   the media, but it can also melt the media back into it's original
  198.   state. This is possible, because the laser does not really burn holes
  199.   into the media - you do not see a puff of smoke while burning and no
  200.   voice from above tells you "target destroyed". What the laser really
  201.   does is to trigger a phase change, thus the name "phase change
  202.   devices" for CD-RW-writers. An example for a very similar technique
  203.   used in daily life is the cleaning car in an ice-hockey stadion:
  204.   during the pauses of the game, the car drives over the ice and fills
  205.   the scratches in the ice (-> bits containing some sort of information
  206.   about the game... hehehe) with melted splinter.
  207.  
  208.   This HOWTO deals with the task of writing CD-Rs and CD-RWs.  Welcome
  209.   on board, captain.
  210.  
  211.  
  212.  
  213.   1.4.  Supported CD-Writers
  214.  
  215.  
  216.   The detailed list of models which have been reported to work or not to
  217.   work under various Unix-like operating systems is available online
  218.   from <http://www.guug.de:8080/cgi-bin/winni/lsc.pl>.
  219.  
  220.  
  221.   Here is a comprehensive summary of drives known to work with cdrecord:
  222.  
  223.  
  224.  
  225.  
  226.  
  227.  
  228.  
  229.  
  230.  
  231.  
  232.  
  233.  
  234.  
  235.  
  236.  
  237.  
  238.  
  239.  
  240.  
  241.  
  242.  
  243.  
  244.  
  245.  
  246.  
  247.  
  248.  
  249.  
  250.  
  251.  
  252.  
  253.  
  254.  
  255.  
  256.  
  257.  
  258.  
  259.  
  260.  
  261.  
  262.  
  263.  
  264.  
  265.   Acer:           CDRW 6206A
  266.   BTC:            BCE 621E (IDE)
  267.   Compro:         CW-7502, CW-7502B
  268.   Dysan:          CRW-1622
  269.   Elite:          Elite b444.41
  270.   Grundig:        CDR 100 IPW
  271.   Guillemot:      Maxi CD-R 4X/8X
  272.   HP:             SureStore 4020i, SureStore 6020i,
  273.                   C4324, C4325
  274.                   CD-Writer+ 7100, CD-Writer+ 7200i,
  275.                   CD-Writer+ 8100i, CD-Writer+ 8110i,
  276.   Hi-Val:         CDD-3610
  277.   JVC:            XR-W2001, XR-W2010, XR-W2042, R-2626
  278.   Kodak:          PCD 200, PCD 225, PCD 260, PCD 600
  279.   Matsushita:     CW-7502
  280.   Memorex:        CRW-620, CRW-1622
  281.   Microboards:    PlayWrite 2000, PlayWrite 4000RW, PlayWrite 4001RW
  282.   MicroNet:       MasterCD Plus 4x4, MasterCD Plus 4x6
  283.   Mitsubishi:     CDRW-226
  284.   Mitsumi:        CR-2401-TS, CR-2600 TE,  CR-2801 TE, CR-4801 TE
  285.   Nomai:          680.RW
  286.   OTI:            CDRW 965
  287.   Olympus:        CDS 615E, CDS 620E
  288.   Optima:         DisKovery 650 CD-R
  289.   OTI:            CDRW 965
  290.   Panasonic:      CW-7502, CW-7582
  291.   Philips:        CDD-521/10, CDD-522
  292.                   CDD-2000, CDD-2600, CDD-3600, CDD-3610
  293.                   Omniwriter 26, Omniwriter 26A
  294.   Plasmon:        CDR 480, CDR 4220, RF-4100, RF-4102, CDR 4400
  295.   Plextor:        CDR PX-24 CS, PX-412 C, PX-R412 C
  296.                   PX-R810Ti, PleXwriter 412C
  297.   Procom:         PCDR 4
  298.   Ricoh:          RO-1420C+, MP 1420C, MP 6200S, MP 6201S
  299.   Sanyo:          CRD-R24S
  300.   Smart and
  301.   Friendly:       CD-RW226, CD-R1002, CD-R1002/PRO, CD-R1004,
  302.                   CD-R2004, CD-R2006 PLUS, CD-R2006 PRO,
  303.                   CD-R4000, CD-R4006, CD-R4012
  304.   Sony:           CDU 920S, CDU 924, CDU 926S, CDU-928E,
  305.                   CDU 948S, CDRX 100E
  306.   Taiyo Yuden:    EW-50
  307.   TEAC:           CD-R50S, CD-R55S, CDR-55S
  308.   Traxdata:       CRW 2260, CDR 4120, CDRW 4260,
  309.   Turtle Beach:   2040R
  310.   WPI (Wearnes):  CDRW-622, CDR-632P
  311.   YAMAHA:         CDR-100, CDR 102, CDR-200, CDR-200t, CDR-200tx
  312.                   CDR-400, CDR-400c, CDR-400t, CDR-400tx, CDR-400Atx
  313.                   CRW-2260, CRW-2260t,
  314.                   CRW-4250tx, CRW-4260 t, CRW-4260 tx, CRW-4261,
  315.                   CRW-4416 S
  316.  
  317.  
  318.  
  319.  
  320.   If your hardware isn't supported you can still use Linux to create an
  321.   image of the later CD. You may wish to do so because most DOS-software
  322.   cannot deal with RockRidge-Extensions. But then you have to use DOS-
  323.   Software to write the image to the CD-R.
  324.  
  325.  
  326.  
  327.   1.5.  Supported "features"
  328.  
  329.   There are two classes of utilities for writing CD-Rs: the hardware-
  330.   drivers and the data-formatters. The hardware drivers support the
  331.   following features:
  332.  
  333.  
  334.  
  335.        Supported Feature   cdwrite-2.1     cdrecord-1.6
  336.        ------------------------------------------------
  337.        IDE/ATAPI           no              yes
  338.        Parallel Port       no              yes
  339.        CD-RW               no              yes
  340.        Multisession        only partial    yes
  341.  
  342.  
  343.  
  344.   cdwrite is an old software only referenced for completeness. Please
  345.   use cdrecord instead, as it supports a wider range of hardware and has
  346.   significantly more features. The purpose of the data-formatters is to
  347.   organise the data on the media ("put a filesystem on it").
  348.  
  349.  
  350.  
  351.        Feature         mkisofs         mkhybrid
  352.        --------------------------------------------
  353.        ISO 9660        yes             yes
  354.        RockRidge       yes             yes
  355.        El Torito       yes             yes
  356.        HFS             no              yes
  357.        Joliet          no              yes
  358.  
  359.  
  360.  
  361.   The most obvious difference of the ISO 9660 filesystem compared to the
  362.   Extended-2 filesystem is, that you can't modify files once they are
  363.   written to the media. The limitations of the ISO-9660-filesystem are:
  364.  
  365.  
  366.   ╖  only 8 levels of sub-directories allowed (counted from the top-
  367.      level directory of the CD) (use RockRidge Extensions to enlarge
  368.      this number)
  369.  
  370.   ╖  maximum length for filenames: 32 characters
  371.  
  372.   ╖  650 MB capacity
  373.  
  374.   RockRidge is an extension to allow longer filenames and a deeper
  375.   directory hierarchy for the ISO-9660 filesystem. These extensions are
  376.   not available when reading the CD-ROM under DOS or the Windows-family
  377.   of operating systems.
  378.  
  379.   El Torito can be used to produce bootable CD-ROMs. The BIOS of your PC
  380.   must support this feature, too. Roughly speaking, the first 1.44 Mbyte
  381.   of the CD-ROM contain a floppy-disk image supplied by you. This image
  382.   is treated like a floppy by the BIOS and booted from.
  383.  
  384.   HFS lets a Macintosh read the CD-ROM as if it were an HFS volume (the
  385.   native filesystem for MacOS).
  386.  
  387.   Joliet brings long filenames (among other things) to newer variants of
  388.   Windows (95, 98, NT). The author knows of no tool to have long
  389.   filenames under plain DOS or Windows 3.11.
  390.  
  391.   Section 2.8 lists the availability of the mentioned software.
  392.  
  393.  
  394.  
  395.  
  396.  
  397.   1.6.  Mailinglists
  398.  
  399.   If you want to join the development team (with the intention to
  400.   actively help them), send e-mail to cdwrite-request@other.debian.org
  401.   and put the word subscribe in body of the message.
  402.  
  403.  
  404.   1.7.  Availability
  405.  
  406.   The newest version of this document is always available from
  407.   <http://www.guug.de/~winni/linux/>.
  408.  
  409.  
  410.  
  411.   2.  Setup Linux-system for writing CD-ROMs
  412.  
  413.  
  414.   If you succeed setting up your hardware and the rest of your Linux-
  415.   system, the command cdrecord -scanbus shows you a list of devices
  416.   available for writing. The goal of this chapter is to guide you in
  417.   setting up your Linux-system, so that you finally end up seeing
  418.   something like:
  419.  
  420.  
  421.  
  422.        shell> cdrecord -scanbus
  423.        Cdrecord release 1.7a1 Copyright (C) 1995-1998 J÷rg Schilling
  424.        scsibus0:
  425.                  0) 'Quantum ' 'XP34300         ' 'F76D' Disk
  426.                  1) 'SEAGATE ' 'ST11200N        ' '8334' Disk
  427.                  2) *
  428.                  3) 'TOSHIBA ' 'MK537FB/        ' '6258' Disk
  429.                  4) 'WANGTEK ' '5150ES SCSI-36  ' 'ESB6' Removable Tape
  430.                  5) 'EXABYTE ' 'EXB-8500-85QUE  ' '0428' Removable Tape
  431.                  6) 'TOSHIBA ' 'XM-3401TASUNSLCD' '3593' Removable CD-ROM
  432.                  7) *
  433.        scsibus1:
  434.                100) 'Quantum ' 'XP31070W        ' 'L912' Disk
  435.                101) *
  436.                102) *
  437.                103) 'TEAC    ' 'CD-R55S         ' '1.0H' Removable CD-ROM
  438.                104) 'MATSHITA' 'CD-R   CW-7502  ' '4.02' Removable CD-ROM
  439.                105) *
  440.                106) 'YAMAHA  ' 'CDR400t         ' '1.0d' Removable CD-ROM
  441.                107) *
  442.  
  443.  
  444.  
  445.   The example was provided by J÷rg Schilling and shows a total of four
  446.   cd-writers. You cannot distinguish ordinary CD-ROM drives from those
  447.   CD-ROM drives with burning capability. But the product identification
  448.   often has hints about the feature in form of a R, -R or -RW.
  449.  
  450.  
  451.  
  452.  
  453.   2.1.  Set up the Linux-kernel
  454.  
  455.   The Linux-kernel can be equipped with drivers for various features.
  456.   You can compile the drivers into the kernel-image statically or you
  457.   can compile them as a module for loading on-demand. The last method is
  458.   preferred for drivers not essential for bringing your Linux-system
  459.   into life. Example: if your system lives on a IDE-harddisk, you must
  460.   have the driver for IDE-harddisks in the kernel (and not as a module).
  461.  
  462.  
  463.   There are three different types of CD-writers: SCSI, IDE/ATAPI and
  464.   external writers for the parallel port. Table 4 shows how to configure
  465.   the Linux-kernel for those hardware types. The first column of the
  466.   table is the section of the configuration menu, where you can find the
  467.   setting. The second column is the description of the feature. The
  468.   third column gives the name of the resulting module.
  469.  
  470.   Y stands for yes and means you should put the beast into the kernel.
  471.   M stands for module and means you should compile this feature as a
  472.   module.  Y/M gives you the option to decide between both. Empty
  473.   settings don't need to be modified and not changing them increases the
  474.   chance that the resulting kernel will work for you (if it did
  475.   before...).
  476.  
  477.   To check which drivers are active (provided by both, statical and
  478.   dynamical drivers) in your running kernel, you can read the file
  479.   /proc/devices. To check which modules are loaded, issue the command
  480.   'lsmod'. To check which modules are available for loading, issue the
  481.   command 'modprobe -l'. If you need a module not available on your
  482.   system, you must recompile and reinstall the kernel. Please read the
  483.   Kernel-HOWTO for more information upon this. The most recent
  484.   information about handling of kernel-modules can be read in the
  485.   Module-HOWTO.
  486.  
  487.  
  488.  
  489.  
  490.        Sect.  Description                 Module   SCSI  IDE   PP
  491.        ------------------------------------------------------------
  492.        BLOCK  Enhanced IDE/MFM/RLL...                     Y
  493.        BLOCK  IDE/ATAPI CDROM             ide-cd        M/N/Y
  494.        BLOCK  SCSI hostadaptor emulation  ide-scsi        M
  495.        BLOCK  Loopback device             loop       M    M     M
  496.  
  497.        PARIDE Parallel port IDE device    paride               Y/M
  498.        PARIDE Parallel port ATAPI CD-ROMs                       M
  499.        PARIDE Parallel port generic ATAPI                       M
  500.        PARIDE (select a low-level driver)                       Y
  501.  
  502.        SCSI   SCSI support                scsi_mod  Y/M  Y/M
  503.        SCSI   SCSI CD-ROM support         sr_mod    Y/M  Y/M
  504.        SCSI     Enable vendor-specific               Y    Y
  505.        SCSI   SCSI generic support        sg        Y/M  Y/M
  506.        SCSI   (select a low-level driver)            Y
  507.  
  508.        FS     ISO 9660 CDROM filesystem   iso9660    Y    Y     Y
  509.        FS     Microsoft Joliet cdrom...   joliet     M    M     M
  510.  
  511.  
  512.  
  513.   If you have success in building or finding  the required modules,
  514.   either add their names to /etc/modules or let an automatic facility
  515.   (kmod, kerneld) load them. Consult the documentation of your Linux-
  516.   distribution if you are unsure.
  517.  
  518.   The feature "SCSI hostadaptor emulation" was named "SCSI emulation" in
  519.   earlier kernels (around 2.0.36). If your kernel allows it, compile the
  520.   driver for IDE/ATAPI CD-ROMs as a module. If not, disable it (N) and
  521.   use the driver for SCSI-CD-ROMs instead. For the 2.2 series of the
  522.   Linux kernel, it is no longer possible to run the drivers for IDE and
  523.   SCSI on the same physical device at the same time (if you still have
  524.   2.0.36, read below).
  525.  
  526.   The loopback device is an optional feature, which helps you to test
  527.   the image before writing it to the media.
  528.  
  529.   If you want to be able to read CD-ROMs, you need support for the ISO
  530.   9660 filesystem. This driver automatically includes RockRidge
  531.   Extensions. If you want to have MS Joliet cdrom extensions, compile
  532.   them as a module and load them.
  533.  
  534.   In any case, you need a low-level driver for your hardware. Low-level
  535.   refers to the driver, which interacts directly with the hardware.  For
  536.   SCSI and the parallel port, there are a lot of low-level drivers
  537.   available, which are described below.
  538.  
  539.  
  540.  
  541.   2.1.1.  Special hints for the 2.2-series
  542.  
  543.  
  544.   With kernel-version 2.2.1, don't enable CONFIG_SCSI_MULTI_LUN ('probe
  545.   for multiple luns')  and ide-scsi support at the same time, there is
  546.   an ide-scsi bug that prevents this. Anyway, it is recommended to
  547.   upgrade to 2.2.5.
  548.  
  549.   Some users reported conflicts with pre-compiled binaries and the
  550.   2.2-release. This is a problem of the Linux-kernel. Solutions:
  551.  
  552.   ╖  It may go away if you recompile cdrecord so that it adopts to the
  553.      actual values in linux/include/scsi/sg.h.  These values must be the
  554.      values of the runing kernel due to the dumb sg user interface.
  555.  
  556.   ╖  It may be caused by a loabdable sg driver which cannot get enough
  557.      memory that is suitable for DMA. Get the sg_buffer patch from J÷rg
  558.      Schillings FTP-site:
  559.      <ftp://ftp.fokus.gmd.de/pub/unix/cdrecord/alpha/>
  560.  
  561.  
  562.   2.1.2.  Special hints for the 2.0-series
  563.  
  564.  
  565.   Kernels prior to 2.0.31 have several bugs and can't read the last file
  566.   on a CD-ROM. Please upgrade to 2.0.36.
  567.  
  568.   With 2.0.36 and above, you can select which driver (IDE or SCSI) to
  569.   use for which ATAPI-device. To be more precise, you can add the
  570.   feature "SCSI emulation" to your kernel and activate the emulation for
  571.   specific devices on the kernel commandline (before/while booting). For
  572.   example, if your cd-writer has the devicefile /dev/hdb, then add the
  573.   statement hdb=ide-scsi.
  574.  
  575.  
  576.  
  577.  
  578.        image=/boot/zImage-2.0.36
  579.          label=Linux
  580.          read-only
  581.          append="hdb=ide-scsi"
  582.  
  583.  
  584.  
  585.  
  586.  
  587.        linux "Linux 2.0.36" {
  588.                image=/boot/zImage-2.0.36
  589.                cmdline= root=/dev/hda5 readonly hdb=ide-scsi
  590.        }
  591.  
  592.  
  593.  
  594.  
  595.   2.2.  Hardware and devicefiles
  596.  
  597.   After you have installed all necassary drivers, boot the new kernel.
  598.   It should have all the features you need for the following sections.
  599.  
  600.   [Users of devfs need not to care about the following steps of manually
  601.   setting up device files. If you use devfs, everything will
  602.   automacigally appear on the right place.]
  603.  
  604.   Goto the /dev-directory and check for loopback devices.  It's not
  605.   critical if you don't have those devices, but it's convenient if you
  606.   do (see 3.5).  If you already have them, the ls-command should show
  607.   loop0-loop7:
  608.  
  609.  
  610.  
  611.        shell> cd /dev
  612.        shell> ls loop*
  613.        loop0 loop1 loop2 loop3 loop4 loop5 loop6 loop7
  614.  
  615.  
  616.  
  617.   If you don't have those device-files, then create them by using the
  618.   /dev/MAKEDEV-script:
  619.  
  620.  
  621.  
  622.        shell> cd /dev/
  623.        shell> modprobe loop
  624.        shell> ./MAKEDEV loop
  625.  
  626.  
  627.  
  628.   The last command only succeeds if you have the loop-module in your
  629.   kernel. What you read so far about handling of loop-devicefiles can be
  630.   applied to all other devicefiles (sg*, pg*, hd*, ...) and is not
  631.   explicitely mentioned in the following.
  632.  
  633.  
  634.  
  635.   2.2.1.  IDE/ATAPI CD-writers
  636.  
  637.  
  638.   ATAPI means "SCSI-commands over the IDE-bus". In other words, your
  639.   IDE/ATAPI-drives speak the SCSI-protocol (with some limitations) and
  640.   thus can act as if they were SCSI-drives.
  641.  
  642.   Under Linux you can make your IDE-writer appear as a SCSI-devices
  643.   using the kernel-features "SCSI (hostadaptor) emulation". So activate
  644.   the associated kernel module ide-scsi like described above and proceed
  645.   as if you had a SCSI-writer.
  646.  
  647.  
  648.  
  649.   2.2.2.  SCSI CD-Writers
  650.  
  651.  
  652.   Please make sure that your writer is recognized by the BIOS of your
  653.   computer. It makes no sense to proceed if your computer does not
  654.   accept the hardware (the fact that it doesn't spit it out is no
  655.   confirmation; a message on the screen is required).
  656.  
  657.   If you plan to connect your SCSI-drive to your parallel port, you need
  658.   a special active cable and a special kernel-driver. Read read
  659.   <http://www.torque.net/parport/parscsi.html> to learn more about this
  660.   option.
  661.   2.2.2.1.  Generic SCSI devices
  662.  
  663.   The devicefiles /dev/sd* and /dev/sr* for accessing SCSI harddisks and
  664.   SCSI CD-ROM drives are limited to block-oriented data transfer. This
  665.   makes them so fast and idealy suited for data storage. Driving the
  666.   laser of a CD-writer is a more complicated task and requires more than
  667.   block-oriented data transfer. To keep the sd* and sr* devices clean
  668.   and fast, a new type of SCSI-devices was introduced, the so called
  669.   generic SCSI-devices.  As everthing can be done to SCSI-hardware
  670.   through the generic devices they are not fixed to a certain purpose -
  671.   therefore the name generic.
  672.  
  673.   As true for other devices, you should find them in the /dev directory
  674.   (by convention):
  675.  
  676.  
  677.  
  678.        shell> cd /dev
  679.        shell> ls sg*
  680.        sg0  sg1  sg2  sg3  sg4  sg5  sg6  sg7
  681.  
  682.  
  683.  
  684.  
  685.   If you don't have those device-files then create them by using the
  686.   /dev/MAKEDEV-script:
  687.  
  688.  
  689.  
  690.        shell> cd /dev/
  691.        shell> ./MAKEDEV sg
  692.  
  693.  
  694.  
  695.  
  696.  
  697.  
  698.   2.2.3.  CD-Writers for the parallel port
  699.  
  700.  
  701.   I have no clue about this, sorry. Please read
  702.   <http://www.torque.net/parport/paride.html> or your local file
  703.   /usr/src/linux/Documentation/paride.txt.
  704.  
  705.  
  706.  
  707.  
  708.   2.3.  Get the user-software for burning CD-Rs
  709.  
  710.   A survey of tools related to produce CD-ROMs is available from
  711.   <http://www.fokus.gmd.de/research/cc/glone/employees/joerg.schilling/private/cdb.html>.The
  712.   CD building project for UNIX
  713.  
  714.  
  715.   2.3.1.  Command line utilities
  716.  
  717.   One of the following packages are required to generate prototypes of
  718.   CD-Rs:
  719.  
  720.  
  721.        <ftp://tsx-11.mit.edu/pub/linux/packages/mkisofs/> (mkisofs)
  722.  
  723.        <ftp://ftp.ge.ucl.ac.uk/pub/mkhfs> (mkhybrid)
  724.  
  725.  
  726.  
  727.   Depending on the model of your CD-writer (see 1.3), one of the
  728.   following software for writing prototypes to CD-Rs is required:
  729.  
  730.  
  731.        <ftp://ftp.fokus.gmd.de/pub/unix/cdrecord/> (cdrecord)
  732.  
  733.  
  734.  
  735.   Don't trust the man-page of (old) mkisofs which states you need
  736.   version 1.5 of cdwrite. Just use cdrecord and you are fine.  Please
  737.   note that use the mkisofs shipped with cdrecord has a few extensions
  738.   (referenced in the documentation of cdrecord).
  739.  
  740.  
  741.  
  742.   2.3.2.  Graphical user interfaces (optional)
  743.  
  744.   Front-ends are really front-ends under Linux. That means, you still
  745.   have to install the command-line utilities, but you access them in a
  746.   better looking manner.
  747.  
  748.   X-CD-Roast is a program-package dedicated to easy CD creation under
  749.   Linux. It combines command line tools like cdrecord and mkisofs into a
  750.   nice graphical user interface.
  751.  
  752.  
  753.        <http://www.fh-muenchen.de/home/ze/rz/services/pro¡
  754.        jects/xcdroast/e_overview.html>
  755.  
  756.  
  757.   BurnIT is a JAVA front-end to cdrecord, mksiofs and cdda2wav-0.95
  758.   making it a complete package for burning CD's on the Unix platform.
  759.   It's available from
  760.  
  761.  
  762.        <http://sunsite.auc.dk/BurnIT/>
  763.  
  764.  
  765.  
  766.  
  767.  
  768.  
  769.   3.  Burning CD-Rs
  770.  
  771.  
  772.        "If to smoke you turn I shall not cease to fiddle while you
  773.        burn." (Roman emperor Nero about burning his own classic-
  774.        CDs, AD64. He misunderstood it completely.)
  775.  
  776.  
  777.  
  778.   Writing CD-ROMs consists of two steps under Linux:
  779.  
  780.  
  781.   ╖  packaging the desired data (files, music or both) into files with
  782.      special formats
  783.  
  784.   ╖  writing the data from the files to the CD-R with the utility
  785.      cdrecord
  786.  
  787.   This chapter describes the steps for data- and audio-CDs in greater
  788.   detail.
  789.  
  790.  
  791.  
  792.  
  793.   3.1.  Writing CD-ROMs (pure data)
  794.  
  795.   Note that collecting the software usually takes up longer than one
  796.   expects. Consider that missing files cannot be added once the CD is
  797.   written and fixated.
  798.  
  799.  
  800.   Also keep in mind that a certain amount of the free space of a CD is
  801.   used for storing the information of the ISO-9660-filesystem (usually a
  802.   few MB).  620 MB data will always fit on a 650 MB CD-R.
  803.  
  804.  
  805.   3.1.1.  Creating an image of the later CD-ROM
  806.  
  807.   Before any storage medium (e.g. floppy disk, harddisk or CD) can be
  808.   used, it must get a filesystem (DOS speak: get formatted).  The
  809.   filesystem is responsible for organising and incorporating the files
  810.   that should be stored on the medium.
  811.  
  812.   The usal utilities for creating filesystems on harddisk partitions
  813.   write an empty filesystem onto them, which is then mounted and filled
  814.   with files by the user as he needs it. A writable CD is only writable
  815.   once so if we would write an empty filesystem to it, it would get
  816.   formated - but remain completely empty forever. This is also true for
  817.   rewritable media, as you cannot change arbritary sectors, but you must
  818.   erase their whole content.
  819.  
  820.   So what we need is a tool that creates the filesystem while copying
  821.   the files to the CD. This tool is called mkisofs.  A sample usage
  822.   looks as follows:
  823.  
  824.  
  825.  
  826.        mkisofs  -r   -o cd_image   private_collection/
  827.                      `---------'   `-----------------'
  828.                           |               |
  829.                  write output to   take directory as input
  830.  
  831.  
  832.  
  833.  
  834.   The option '-r' sets the permissions of all files to be public
  835.   readable on the CD and enables Rock Ridge extensions. That is what one
  836.   usually wants and use of this option is recommended until you know
  837.   what you're doing (hint: without '-r' the mount-point gets the
  838.   permissions of private_collection!).
  839.  
  840.   mkisofs will try to map all filenames to the 8.3-format used by DOS to
  841.   ensure highest possible compatibility. In case of naming conflicts
  842.   (different files have the same 8.3-name), numbers are used in the
  843.   filenames and information about the chosen filename is printed via
  844.   STDERR (usually the screen). Don't panic: Under Linux you will never
  845.   see these 8.3 filenames because Linux makes use of the Rock Ridge
  846.   extensions which contain the original file-information (permissions,
  847.   filename, etc.).
  848.  
  849.   Now you may wonder why the output of mkisofs is not directly sent to
  850.   the writer-device. This has two reasons:
  851.  
  852.  
  853.   ╖  mkisofs knows nothing about driving CD-writers.
  854.  
  855.   ╖  You may want to test the image before burning it.
  856.  
  857.   ╖  On slow machines it would not be reliable (see section 4.).
  858.  
  859.   The method to write a CD-R in one go will be described below.
  860.  
  861.   One also could think of creating an extra partition and writing the
  862.   image to that partition instead to a file. I vote against such a
  863.   strategy because if you write to the wrong partition (due to a typo),
  864.   you can lose your complete Linux-system (read: that happened to
  865.   me...).  Furthermore, it's a waste of disk-space because the CD-image
  866.   is temporary data that can be deleted after writing the CD. However,
  867.   using raw partitions saves you the time for deleting files of 650 MB
  868.   size. (However, if you have enough disk-space, an extra partition may
  869.   save you the time of deleting the image.)
  870.  
  871.  
  872.  
  873.   3.1.2.  Test the CD-image
  874.  
  875.   Linux has the ability to mount files as if they were disk-partitions.
  876.   This feature is useful to check that the directory layout and file
  877.   access permissions of the CD-image matches your wishes. Although media
  878.   is very cheap today, the writing process is still time-consuming, and
  879.   you may at least want to save your time by doing a quick test.
  880.  
  881.   To mount the file cd_image created above on the directory /cdrom, give
  882.   the command
  883.  
  884.  
  885.  
  886.        mount -t iso9660 -o ro,loop=/dev/loop0 cd_image /cdrom
  887.  
  888.  
  889.  
  890.  
  891.   Now you can inspect the files under /cdrom - they appear exactly as
  892.   they were on a real CD. To umount the CD-image, just say umount
  893.   /cdrom. (Warning: On Linux-kernels prior to 2.0.31 the last file on
  894.   /cdrom may not be fully readable. Please use more recent kernels like
  895.   2.0.36. The option -pad for cdrecord applies to audio-CDs only and the
  896.   optional option -pad for mkisofs requires a patch, which is as much
  897.   work to apply than to upgrade to a bug-free Linux-kernel.)
  898.  
  899.   Note:
  900.  
  901.        some ancient versions of mount are not able to deal with
  902.        loopback-devices. If you have such an old version of mount
  903.        it is a hint to upgrade your Linux-system.
  904.  
  905.        Several people already suggested to put information about
  906.        how to get the newest mount-utilities into this HOWTO. I
  907.        always refuse this.  If your Linux-Distribution ships with
  908.        an ancient mount: report it as a bug.  If your Linux-
  909.        Distribution is not easily upgradable: report it as a bug.
  910.  
  911.        If I had included all the information that is necessary to
  912.        work around bugs in bad designed Linux-Distributions, this
  913.        HOWTO would be a lot bigger and harder to read.
  914.  
  915.  
  916.  
  917.  
  918.   3.1.3.  Write the CD-image to a CD
  919.  
  920.   Not much more left to do. If you didn't already tried, it's a good
  921.   time for the command
  922.  
  923.  
  924.  
  925.   cdrecord -scanbus
  926.  
  927.  
  928.  
  929.  
  930.   This will tell you to which SCSI-device your cd-writer is attached to.
  931.   All other methods of guessing the information printed so nicely by
  932.   cdrecord have been removed from the HOWTO (especially the somewhat
  933.   dangerous naming scheme for generic SCSI devices).
  934.  
  935.   Before showing you the last command, let me warn you that CD-writers
  936.   want to be fed with a constant stream of data because they have only
  937.   small data-buffers.  So the process of writing the CD-image to the CD
  938.   must not be interupted or a corrupt CD will be the result. It's easy
  939.   to interrupt the data-stream by deleting a very large file. Example:
  940.   if you delete a file of 650 Mbyte size, the kernel must update
  941.   information about 650.000 blocks on the harddisk (assumed you have a
  942.   blocksize of 1 Kbyte for your filesystem). That takes some time and is
  943.   very likely to slow down disk-activity long enough for the data stream
  944.   to pause a few seconds.  However, reading mail, browsing the web or
  945.   even compiling a kernel generally do not affect the writing process on
  946.   fast machines.
  947.  
  948.   Please note that no writer can re-position it's laser and can't
  949.   continue at the original spot on the CD when it gets disturbed.
  950.   Therefore any strong vibrations or other mechanical shocks will
  951.   probably destroy the CD you are writing.
  952.  
  953.   If you are mentally prepared, dress up in a black robe, multiply the
  954.   SCSI-id of the CD-writer with it's SCSI-revision and light as many
  955.   candles, speak two verses of the ASR-FAQ (newsgroup
  956.   alt.sysadmin.recovery) and finally type:
  957.  
  958.  
  959.  
  960.        shell> SCSI_BUS=0   # taken from listing 1 "scsibus0:"
  961.        shell> SCSI_ID=6    # taken from listing 1 "TOSHIBA XM-3401"
  962.        shell> SCSI_LUN=0
  963.        shell> cdrecord -v speed=2 dev=$SCSI_BUS,$SCSI_ID,$SCSI_LUN \
  964.                           -data  cd_image
  965.  
  966.        # same as above, but shorter:
  967.        shell> cdrecord -v speed=2 dev=0,6,0  -data  cd_image
  968.  
  969.  
  970.  
  971.  
  972.   For better readability, the coordinates of the writer are stored in
  973.   three environment variables with speaking names: SCSI_BUS, SCSI_ID,
  974.   SCSI_LUN.  The option -data is non-mandatory but is given to make the
  975.   commandline comparable to the one used for writing audio-CDs.
  976.  
  977.   If you use cdrecord to overwrite a CD-RW, you must add the option
  978.   "blank=..." to erase the old content.  Please read the man-page to
  979.   learn more about the various methods to blank the CD-RW.
  980.  
  981.   In times where everybody except me owns a 400 Mhz machine, people feed
  982.   the output of mkisofs directly into cdrecord:
  983.  
  984.  
  985.  
  986.  
  987.  
  988.  
  989.  
  990.  
  991.   shell> IMG_SIZE=`mkisofs -R -q -print-size private_collection/`
  992.   shell> mkisofs -r  private_collection/  \
  993.   |cdrecord  speed=2  dev=0,6,0
  994.               tsize=${IMG_SIZE}s  -data  -
  995.   #       don't forget the s --^         ^-- read data from STDIN
  996.  
  997.  
  998.  
  999.  
  1000.   The first command is an empty run to determine the size of the image
  1001.   (you need the mkisofs from the cdrecord-distribution for this to
  1002.   work). Maybe your writer does not need to know the size of the image
  1003.   to be written, so you can leave this out. The printed sized must be
  1004.   passed as a tsize-parameter to cdrecord (it's stored in the enviroment
  1005.   variable IMG_SIZE). The last command is a sequence of mkisofs and
  1006.   cdrecord, coupled via a pipe.
  1007.  
  1008.  
  1009.  
  1010.   3.2.  Writing audio CDs
  1011.  
  1012.  
  1013.   To write audio-CDs is very similar compared to the steps described
  1014.   above. The two main differences are, that the audio-CD consists of
  1015.   audio-tracks, which are organized in separate images. So if you want
  1016.   to have ten tracks on your CD, you have to make ten images. The other
  1017.   differnce is, that the format of the images is not ISO-9660 (or
  1018.   whatever filesystem you prefer), but it is "16 bit stereo samples in
  1019.   PCM coding at 44100 samples/second (44,1 kHz)".
  1020.  
  1021.   One utility to convert your soundfiles into the required format is
  1022.   sox.  It's usage is straightforward:
  1023.  
  1024.  
  1025.  
  1026.        shell> sox  killing-my-software.wav  killing-my-software.cdr
  1027.  
  1028.  
  1029.  
  1030.  
  1031.   This command would convert the song killing-my-software from the WAV-
  1032.   format into the CDR-format. See the man-page for sox for more details
  1033.   about formats and filename-extensions sox recognizes. Because the
  1034.   conversion takes up much diskspace, it was made a built-in feature of
  1035.   cdrecord for the formats WAV and AU. So as long as your soundfiles
  1036.   have the extensions .wav or .au (and the samplerate "stereo, 16 bit,
  1037.   44,1 kHz"), you can use them as images without manual conversion.
  1038.  
  1039.   Cdrecord writes the images as audio-tracks, if the option -audio is
  1040.   specified. The other options are identical to those used for writing
  1041.   data-CDs (unless you have very special requirements). Three examples
  1042.   all doing the same, but reading the tracks from different soundfile-
  1043.   formats:
  1044.  
  1045.  
  1046.  
  1047.        shell> cdrecord -v speed=2 dev=0,6,0  -audio  track1.cdr track2.cdr...
  1048.        shell> cdrecord -v speed=2 dev=0,6,0  -audio  track1.wav track2.wav...
  1049.        shell> cdrecord -v speed=2 dev=0,6,0  -audio  track1.au  track2.au...
  1050.  
  1051.  
  1052.  
  1053.  
  1054.   A special case are the MPEG3-files, which can be converted to the
  1055.   required format with the command "mpg123 -s track1.mp3 > track1.cdr".
  1056.   The other direction can be done with "8hz-mp3" for WAV-files.
  1057.   Currently you will produce an audio-CD, which has a 2 seconds pause
  1058.   between two audio tracks. If your burner supports to write the mode
  1059.   "disc at once" (DAO), you can try the newest version of cdrecord to
  1060.   get rid of the pauses.
  1061.  
  1062.  
  1063.  
  1064.   3.3.  Mixed mode CD-ROMs
  1065.  
  1066.  
  1067.   Not much left to say. Just indicate the type of the (subsequent)
  1068.   images with the options -data and -audio. Example:
  1069.  
  1070.  
  1071.  
  1072.        cdrecord  -v dev=0,6,0  -data  cd_image  -audio  track*.cdr
  1073.  
  1074.  
  1075.  
  1076.  
  1077.  
  1078.  
  1079.  
  1080.   4.  Frequently asked questions with answers
  1081.  
  1082.  
  1083.   4.1.  "How sensitive is the burning process?"
  1084.  
  1085.   Answer: that depends on your writer. Modern ones should have a data-
  1086.   buffer of 1MB or larger and can live 1-2 seconds without data.  See
  1087.   the manuals or ask your manufacturer if you want to know the details.
  1088.   Regardless of the size of those data-buffers you must guarantee a
  1089.   constant  throughput of 300kb/s or 600kb/s in the long time run.
  1090.  
  1091.   Disk intensive processes such as updating the locate-database lower
  1092.   the maximum flow-rate may corrupt the CD; you better check such
  1093.   processes are not started via cron, at or anacron while you burn CD-
  1094.   Rs.
  1095.  
  1096.   On the other hand, people reported that they compiled a kernel while
  1097.   burning a CD without a glitch. Of course you need a fast machine for
  1098.   such experiments.
  1099.  
  1100.  
  1101.  
  1102.   4.2.  "Has fragmentation a bad impact on the throughput?"
  1103.  
  1104.   Fragmentation is usually so low that it's impact isn't noticed.
  1105.   However, you can easily construct pathological cases of fragmentation,
  1106.   which lower the throughput of your harddisks under 100 kbyte/second.
  1107.   So don't do that. :-)
  1108.  
  1109.   Yes, files on a harddisk get fragmented over the years. The faster,
  1110.   the fuller the filesystem is. Always leave 10% or 20% free space, and
  1111.   you should run fine with respect to writing CD-Rs.
  1112.  
  1113.   If you're uncertain then look at the messages printed while booting,
  1114.   the percentage of fragmentation is reported while checking the
  1115.   filesystems. You can check for this value with the very dangerous
  1116.   command
  1117.  
  1118.  
  1119.  
  1120.  
  1121.  
  1122.  
  1123.   shell> e2fsck -n  /dev/sda5        # '-n' is important!
  1124.   [stuff deleted - ignore any errors]
  1125.   /dev/sda5: 73/12288 files (12.3% non-contiguous)
  1126.  
  1127.  
  1128.  
  1129.  
  1130.   In this example the fragmentation seems to be very high - but there
  1131.   are only 73 very small files on this filesystem (used as /tmp) so the
  1132.   value is _not_ alarming.
  1133.  
  1134.   There is an experimental utility called e2defrag to defragment
  1135.   extended-2 filesystems. The current version does not work reliable
  1136.   enough yet, to use it even for private environments. If you really
  1137.   want to defragment your filesystem, make a backup copy (better: two
  1138.   copies), practise restoring the data, then create a new filesystem
  1139.   (will destroy the old) and restore the data. In a few words, this is
  1140.   currently the safest technique.
  1141.  
  1142.  
  1143.  
  1144.   4.3.  "Is it possible to store the CD-image on an UMSDOS-filesystem?"
  1145.  
  1146.   Yes. The only filesystem that isn't reliable and fast enough for
  1147.   writing CD-ROMs from is the network filesystem (NFS).
  1148.  
  1149.   I'm using UMSDOS myself to share the disk-space between Linux and
  1150.   DOS/Win on a PC (486/66) dedicated for writing CD-ROMs.
  1151.  
  1152.  
  1153.  
  1154.   4.4.  "Isn't there some way to get around the ISO-9660 limitations?"
  1155.  
  1156.   Yes. You can put any filesystem you like on the CD. But other
  1157.   operating systems than Linux won't be able to deal with this CD.
  1158.  
  1159.   Here goes the recipe:
  1160.  
  1161.  
  1162.   ╖  Create an empty file of 650MB size.
  1163.  
  1164.  
  1165.        dd if=/dev/zero of="empty_file" bs=1024k count=650
  1166.  
  1167.  
  1168.  
  1169.  
  1170.  
  1171.   ╖  Create an extended-2 filesystem on this file
  1172.  
  1173.  
  1174.        shell> /sbin/mke2fs  -b 2048  empty_file
  1175.        empty_file is not a block special device.
  1176.        Proceed anyway? (y,n) y
  1177.  
  1178.  
  1179.  
  1180.  
  1181.  
  1182.   ╖  Mount this empty file through the loopback-devices
  1183.  
  1184.  
  1185.        mount -t ext2 -o loop=/dev/loop1 empty_file /mnt
  1186.  
  1187.  
  1188.  
  1189.   ╖  Copy files to /mnt and umount it afterwards.
  1190.  
  1191.   ╖  Use cdrecord on empty_file (which is no longer empty) as if it were
  1192.      an ISO-9660-image.
  1193.  
  1194.   If you want to make an entry in /etc/fstab for such a CD, disable the
  1195.   checking of it, e.g.:
  1196.  
  1197.  
  1198.  
  1199.        /dev/cdrom  /cdrom  ext2  defaults,ro  0 0
  1200.  
  1201.  
  1202.  
  1203.  
  1204.   The first 0 means "don't include in dumps", the second (=important)
  1205.   one means "don't check for errors on startup" (fsck will fail to check
  1206.   the CD for errors).
  1207.  
  1208.  
  1209.  
  1210.   4.5.  "How to read the tracks from audio CDs?"
  1211.  
  1212.   There are several software packages available. The newest one is
  1213.   "cdpranoia" and can be downloaded from
  1214.  
  1215.  
  1216.        <http://www.mit.edu/afs/sipb/user/xiphmont/cdpara¡
  1217.        noia/index.html>
  1218.  
  1219.  
  1220.  
  1221.   Or you want to try the combination of "cdda2wav" and "sox", available
  1222.   from sunsite and it's mirrors:
  1223.  
  1224.  
  1225.        <ftp://sun¡
  1226.        site.unc.edu/pub/Linux/apps/sound/cdrom/cdda2wav0.71.src.tar.gz>
  1227.  
  1228.        <ftp://sunsite.unc.edu/pub/Linux/apps/sound/convert/sox-11gamma-
  1229.        cb3.tar.gz>
  1230.  
  1231.  
  1232.   cdda2wav enables you to get a specific interval (or a whole track)
  1233.   from your audio CD and converts it into a .wav-file.  sox converts the
  1234.   wav-files back into the (audio-CD) cdda-format so it can be written to
  1235.   the CD-R using cdrecord. You don't necassarily need sox if you use a
  1236.   recent version of cdrecord, because it has built-in support for .au
  1237.   and .wav files.
  1238.  
  1239.  
  1240.  
  1241.   4.6.  "How to probe for SCSI-devices after boot?"
  1242.  
  1243.   The file drivers/scsi/scsi.c contains the information
  1244.  
  1245.  
  1246.  
  1247.  
  1248.  
  1249.  
  1250.  
  1251.  
  1252.  
  1253.  
  1254.  
  1255.   /*
  1256.    * Usage: echo "scsi add-single-device 0 1 2 3" >/proc/scsi/scsi
  1257.    * with  "0 1 2 3" replaced by your "Host Channel Id Lun".
  1258.    * Consider this feature BETA.
  1259.    *     CAUTION: This is not for hotplugging your peripherals. As
  1260.    *     SCSI was not designed for this you could damage your
  1261.    *     hardware !
  1262.    * However perhaps it is legal to switch on an
  1263.    * already connected device. It is perhaps not
  1264.    * guaranteed this device doesn't corrupt an ongoing data transfer.
  1265.    */
  1266.  
  1267.  
  1268.  
  1269.  
  1270.   Please note that this should only be used if your add SCSI-devices at
  1271.   the end of the chain. Inserting new SCSI-devices into an existing
  1272.   chain disturbs the naming of devices (directory /dev) and may destroy
  1273.   the complete content of your harddisk.
  1274.  
  1275.  
  1276.  
  1277.   4.7.  "Is it possible to make a 1:1 copy of a data CD?"
  1278.  
  1279.   Yes. But you should be aware of the fact that any errors while reading
  1280.   the original (due to dust or scratches) will result in a defective
  1281.   copy.
  1282.  
  1283.   First case: you have a CD-writer and a separate CD-ROM drive. By
  1284.   issuing the command
  1285.  
  1286.  
  1287.  
  1288.        cdrecord -v dev=3,0 speed=2 -isosize /dev/scd0
  1289.  
  1290.  
  1291.  
  1292.  
  1293.   you read the data stream from the CD-ROM drive attached as /dev/scd0
  1294.   and write it directly through the SCSI-device with ID 3 to the CD-R.
  1295.  
  1296.   Second case: you don't have a separate CD-ROM drive. You have to use
  1297.   the writer to read out the CD-ROM in this case:
  1298.  
  1299.  
  1300.  
  1301.        dd if=/dev/scd0 of=cdimage
  1302.  
  1303.  
  1304.  
  1305.  
  1306.   This command is equivalent to the result of mkisofs, so you should
  1307.   procede as described in chapter 3. Please note that this method will
  1308.   fail on audio CDs!
  1309.  
  1310.  
  1311.  
  1312.   4.8.  "Can Linux read Joliet CD-ROMs?"
  1313.  
  1314.   Yes. Newer Kernels (2.0.36 and the upcoming 2.2) have built-in support
  1315.   for the joliet format. Remember you have to use both options in your
  1316.   /etc/fstab: the keywords iso9660 and joliet (later is really an
  1317.   extension).  For more details, see  <http://www-
  1318.   plateau.cs.berkeley.edu/people/chaffee/joliet.html>.
  1319.  
  1320.  
  1321.   4.9.  "How do I read/mount CD-ROMs with the CD-writer?"
  1322.  
  1323.   Just as you do with regular CD-ROM drives. No tricks at all. Note that
  1324.   you have to use the scd-devices (SCSI CD-ROM) to mount CD-ROMs for
  1325.   reading. Example-entry for /etc/fstab:
  1326.  
  1327.  
  1328.  
  1329.        /dev/scd0  /cdrom  iso9660  ro,user,noauto  0  0
  1330.  
  1331.  
  1332.  
  1333.  
  1334.  
  1335.  
  1336.   4.10.  "How to put even more data on the CD-R?"
  1337.  
  1338.   Use bzip2 instead of any other compressor like gzip or pkzip. It will
  1339.   save you up to 30% of disk-space for larger (>100kb) files. You can
  1340.   download it from
  1341.  
  1342.  
  1343.        <http://www.muraroa.demon.co.uk/>
  1344.  
  1345.  
  1346.  
  1347.   Instead of writing a true audio-CD, you can optionally convert your
  1348.   wav-audio-files into mp3-audio-files and store them on a ISO-9660
  1349.   filesystem as regular files. Usually MPEG III gives you a compression
  1350.   of 1:10.
  1351.  
  1352.   Of course, most CD-players are not able to read files... this is the
  1353.   drawback. On the other hand, why not running the music for your next
  1354.   party from harddisk? 18 Gbyte are enough for 3000-4000 titles. :-)
  1355.  
  1356.   A software MPEG III-encoder is available from
  1357.  
  1358.        <http://www.stud.ifi.uio.no/~larsi/other/8hz-
  1359.        mp3-cheng.tar.gz>
  1360.  
  1361.  
  1362.  
  1363.   A MPEG III-player is available from
  1364.  
  1365.        <http://homepages.uni-tuebingen.de/stu¡
  1366.        dent/michael.hipp/mpg123/>
  1367.  
  1368.  
  1369.  
  1370.   For recorded speech, you may want to try to reduce its size using
  1371.   shorten or "GSM lossy speech compression":
  1372.  
  1373.  
  1374.        <ftp://svr-ftp.eng.cam.ac.uk/pub/comp.speech/>
  1375.  
  1376.        <http://kbs.cs.tu-berlin.de/~jutta/toast.html>
  1377.  
  1378.  
  1379.  
  1380.  
  1381.  
  1382.   4.11.  "How to make bootable CD-ROMs?"
  1383.  
  1384.   You must have an 1.44 MB bootable floppy-disk. Create an exact image
  1385.   of this floppy-disk by issuing the command
  1386.  
  1387.        dd if=/dev/fd0 of=boot.img bs=18k
  1388.  
  1389.  
  1390.  
  1391.  
  1392.   Place this floppy-image into the directory holding the collection of
  1393.   your files (or into a subdirectory of it, just as you like). Tell
  1394.   mkisofs about this file with the option '-b' and also use '-c'. For
  1395.   details read the file README.eltorito in the mkisofs-distribution.
  1396.  
  1397.   An interesting application for a custom bootable CD is as a virus-safe
  1398.   DOS- or Windows-system. It saves you the money for the harddisks (if
  1399.   you have a network and use samba to put the user-data on a
  1400.   fileserver). However, this is purely theoretical as nobody reported an
  1401.   actual recipe to me.
  1402.  
  1403.   Some details about the bootable RedHat CD-ROM is available from
  1404.   <http://www.channel1.com/users/rodsmith/rhjol-technical.html>.
  1405.  
  1406.  
  1407.  
  1408.   4.12.  "How to make CD-ROMs writable somehow?"
  1409.  
  1410.   There is an overlay-filesystem available for Linux, which is mounted
  1411.   over the CD-ROM and intercepts all writing operations. New and
  1412.   modified files are stored elsewhere, but for the user it looks like
  1413.   the CD-ROM is modified. For more information, see
  1414.   <http://home.att.net/~artnaseef/ovlfs/ovlfs.html>.
  1415.  
  1416.   If that is not enough for your needs: wait for the UDF-filesystem to
  1417.   be supported by Linux or help developing it (see
  1418.   <http://trylinux.com/projects/udf/>.
  1419.  
  1420.  
  1421.   4.13.  "Is it possible to use several writers at once?"
  1422.  
  1423.   Yes. However, it has been only tested with two writers yet. And you
  1424.   need a kernel patch for more buffers in the SCSI-generic driver (
  1425.   <ftp://ftp.fokus.gmd.de/pub/unix/cdrecord/alpha>).
  1426.  
  1427.  
  1428.  
  1429.   4.14.  "Which media is the best?"
  1430.  
  1431.   The german computer magazine "c't" had a list of tips regarding the
  1432.   blank CD-Rs in their november 1996 issue:
  1433.  
  1434.  
  1435.   ╖  "No-name" discs are generally not of highest quality and should
  1436.      better not be used.
  1437.  
  1438.   ╖  If a recordable CD is defective, this is likely to apply to the
  1439.      whole batch (if you bought more than one at a time); maybe you are
  1440.      lucky and can at least use the first 500MB of such CD-Rs ...
  1441.  
  1442.   ╖  Don't touch the CD-Rs at their shimmering side before writing.
  1443.  
  1444.  
  1445.  
  1446.   5.  Troubleshooting
  1447.  
  1448.   Always remember, that you can still use corrupt CD-ROMs as coasters.
  1449.   :-)
  1450.  
  1451.  
  1452.  
  1453.   5.1.  It doesn't work: under Linux
  1454.  
  1455.   Please check first if the writer works under other operating systems.
  1456.   Concretely:
  1457.  
  1458.  
  1459.   ╖  Does the controller recognize the writer as a SCSI device?
  1460.  
  1461.   ╖  Does the driver software recognize the writer?
  1462.  
  1463.   ╖  Is it possible to make a CD using the accompanied software?
  1464.  
  1465.   If "it doesn't work" even under other operating systems you have a
  1466.   hardware conflict or defective hardware.
  1467.  
  1468.   If it works under the other operating system and you use loadlin to
  1469.   boot Linux, then that is your problem. Loadlin makes a warm-boot with
  1470.   most of the hardware already initialized and that confuses the Linux-
  1471.   kernel.
  1472.  
  1473.  
  1474.   5.2.  Error-message: No read access for 'dev=2,0'.
  1475.  
  1476.   Under Linux, some versions of the C-library are incompatible (buggy),
  1477.   so that an application linked against one version will not work with
  1478.   another. An example for an error triggered by pre-compiled binaries is
  1479.   the following:
  1480.  
  1481.  
  1482.  
  1483.        [root@Blue /dev]# cdrecord -eject dev=2,0
  1484.        cdrecord: No such file or directory. No read access for 'dev=2,0'.
  1485.  
  1486.  
  1487.  
  1488.  
  1489.  
  1490.   5.3.  It doesn't work: under DOS and friends
  1491.  
  1492.   Try to use Linux. Installation and configuration of SCSI-drivers for
  1493.   DOS is the hell. Linux is too complicated? Ha!
  1494.  
  1495.  
  1496.  
  1497.   5.4.  SCSI errors during the burning phase
  1498.  
  1499.   Most likely those errors are caused by
  1500.  
  1501.  
  1502.   ╖  missing dis-/reconnect feature on the SCSI bus
  1503.  
  1504.   ╖  unsufficiently cooled hardware
  1505.  
  1506.   ╖  defective hardware (should be detected by 5.1.)
  1507.  
  1508.   Under various circumstances SCSI devices dis- and reconnect themselves
  1509.   (electronically) from the SCSI bus. If this feature is not available
  1510.   (check controller and kernel parameters) some writers run into trouble
  1511.   during burning or fixating the CD-R.
  1512.  
  1513.   Especially the NCR 53c7,8xx SCSI driver has the feature disabled by
  1514.   default, so you might want to check it first:
  1515.  
  1516.  
  1517.  
  1518.  
  1519.   NCR53c7,8xx SCSI support                  [N/y/m/?] y
  1520.      always negotiate synchronous transfers [N/y/?] (NEW) n
  1521.      allow FAST-SCSI [10MHz]                [N/y/?] (NEW) y
  1522.      allow DISCONNECT                       [N/y/?] (NEW) y
  1523.  
  1524.  
  1525.  
  1526.  
  1527.  
  1528.  
  1529.   6.  Credits
  1530.  
  1531.  
  1532.  
  1533.      Alan Brown <alan@manawatu.net.nz>
  1534.  
  1535.      Art Stone <stone@math.ubc.ca>
  1536.         had the idea to put non-ISO-9660 filesystems on a CD
  1537.  
  1538.  
  1539.      Bartosz Maruszewski <B.Maruszewski@zsmeie.torun.pl>
  1540.         reported spelling mistakes
  1541.  
  1542.  
  1543.      Bernhard Gubanka <beg@ipp-garching.mpg.de>
  1544.         noticed the need of a recent version of mount to utilize the
  1545.         loopback device
  1546.  
  1547.  
  1548.      Robert Doolittle <bob.doolittle@sun.com>
  1549.         good arguments for dropping cdwrite from the HOWTO
  1550.  
  1551.  
  1552.      Brian H. Toby
  1553.         polished the wording.
  1554.  
  1555.  
  1556.      Martin Schulze <joey@Infodrom.North.DE>
  1557.         gave information about the cdwrite-mailinglist
  1558.  
  1559.  
  1560.      Dale Scheetz <dwarf@polaris.net>
  1561.         helped improving the section about creating the cdimage.
  1562.  
  1563.  
  1564.      Don H. Olive <don@andromeda.campbellsvil.edu>
  1565.         URL of the mkhybrid tool
  1566.  
  1567.  
  1568.      Erwin Zoer <ezoer@wxs.nl>
  1569.  
  1570.      Gerald C Snyder <gcsnyd@loop.com>
  1571.         tested writing of an ext2 CD-ROM (see 4.4)
  1572.  
  1573.  
  1574.      Janne Himanka <shem@oyt.oulu.fi>
  1575.         pointer to kernel patch to read Joliet CD-ROMs
  1576.  
  1577.  
  1578.      Joerg Schilling <schilling@fokus.gmd.de>
  1579.         information about cdrecord
  1580.  
  1581.  
  1582.      Jos van Geffen <jos@tnj.phys.tue.nl>
  1583.         noted the problem in 4.9.
  1584.  
  1585.      Markus Dickebohm <m.dickebohm@uni-koeln.de>
  1586.  
  1587.      Jesper Pedersen <jews@imada.ou.dk>
  1588.  
  1589.      Pierre Pfister <pp@uplift.fr>
  1590.         helped to develop the recipe on 1:1 copies.
  1591.  
  1592.  
  1593.      Rick Cochran <rick@msc.cornell.edu>
  1594.         hint about dis-/reconnect disabled by default in the ncr driver
  1595.  
  1596.  
  1597.      Stephan Noy <stnoy@mi.uni-koeln.de>
  1598.         information and experience about writing audio-CDs
  1599.  
  1600.  
  1601.      Stephen Harris <sweh@mpn.com>
  1602.         contributed hint about writing audio-CDs
  1603.  
  1604.  
  1605.      The Sheepy One <kero@escape.com>
  1606.         suggested using defective CD-ROMs as coasters for drinks
  1607.  
  1608.  
  1609.      Martti.Rahkila@hut.fi
  1610.         Reported problem with pre-initialized writers when booting via
  1611.         loadlin.
  1612.  
  1613.  
  1614.   End of the Linux CD-Writing HOWTO
  1615.  
  1616.  
  1617.  
  1618.  
  1619.  
  1620.  
  1621.  
  1622.  
  1623.  
  1624.  
  1625.  
  1626.  
  1627.  
  1628.  
  1629.  
  1630.  
  1631.  
  1632.  
  1633.  
  1634.  
  1635.  
  1636.  
  1637.  
  1638.  
  1639.  
  1640.  
  1641.  
  1642.  
  1643.  
  1644.  
  1645.  
  1646.  
  1647.  
  1648.  
  1649.  
  1650.  
  1651.