home *** CD-ROM | disk | FTP | other *** search
/ PC World 1999 August / PCWorld_1999-08_cd.bin / doc / HOWTO / CDROM-HOWTO < prev    next >
Text File  |  1999-06-02  |  72KB  |  2,311 lines

  1.   The Linux CD-ROM HOWTO
  2.   Jeff Tranter, tranter@pobox.com
  3.   v1.14, 24 March 1999
  4.  
  5.   This document describes how to install, configure, and use CD-ROM
  6.   drives under Linux. It lists the supported hardware and answers a num¡
  7.   ber of frequently asked questions. The intent is to bring new users up
  8.   to speed quickly and reduce the amount of traffic in the Usenet news
  9.   groups and mailing lists.
  10.   ______________________________________________________________________
  11.  
  12.   Table of Contents
  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 Acknowledgments
  70.      1.2 New Versions Of This Document
  71.      1.3 Feedback
  72.      1.4 Distribution Policy
  73.  
  74.   2. CD-ROM Technology
  75.  
  76.   3. Supported Hardware
  77.  
  78.      3.1 ATAPI CD-ROM Drives
  79.      3.2 SCSI CD-ROM Drives
  80.      3.3 Proprietary CD-ROM Drives
  81.      3.4 Parallel Port Drives
  82.      3.5 Alternate Drivers
  83.  
  84.   4. Installation
  85.  
  86.      4.1 Installing the Hardware
  87.      4.2 Configuring and Building the Kernel
  88.      4.3 Creating Device Files and Setting Boot Time Parameters
  89.         4.3.1 Sbpcd Driver
  90.         4.3.2 Sonycdu535 Driver
  91.         4.3.3 Cdu31a Driver
  92.         4.3.4 Aztcd Driver
  93.         4.3.5 Gscd Driver
  94.         4.3.6 Mcd Driver
  95.         4.3.7 Mcdx Driver
  96.         4.3.8 Cm206 Driver
  97.         4.3.9 Optcd Driver
  98.         4.3.10 Sjcd Driver
  99.         4.3.11 Paride Driver
  100.         4.3.12 SCSI Driver
  101.         4.3.13 IDECD Driver
  102.      4.4 Booting the Linux Kernel
  103.      4.5 Mounting, Unmounting, and Ejecting Devices
  104.      4.6 Troubleshooting
  105.         4.6.1 Step 1: Make sure you are really running the kernel you compiled
  106.         4.6.2 Step 2: Make sure the proper kernel drivers are compiled in
  107.         4.6.3 Step 3: Did the kernel detect your drive during booting?
  108.         4.6.4 Step 4: Can you read data from the drive?
  109.         4.6.5 Step 5: Can you mount the drive?
  110.         4.6.6 Debugging Audio Problems
  111.         4.6.7 When All Else Fails
  112.  
  113.   5. Applications
  114.  
  115.      5.1 Audio CD Players
  116.      5.2 PhotoCD
  117.      5.3 Mkisofs
  118.      5.4 ISO-9660 Utilities
  119.  
  120.   6. Answers to Frequently Asked Questions
  121.  
  122.      6.1 How can a non-root user mount and unmount discs?
  123.      6.2 Why do I get device is busy when unmounting a CD-ROM?
  124.      6.3 How do I export a CD-ROM to other hosts over NFS?
  125.      6.4 Can I boot Linux from a CD-ROM?
  126.      6.5 How can I read digital data from audio CDs?
  127.      6.6 Why doesn't the find command work properly?
  128.      6.7 Does Linux support any recordable CD-ROM drives?
  129.      6.8 Why do I get mount: Read-only file system when mounting a CD-ROM?
  130.      6.9 Why does the disc tray open when I shut down the system?
  131.      6.10 I have a "special" CD that can't be mounted
  132.      6.11 Do multi-platter CD-ROM drives work with Linux?
  133.      6.12 I get "/cdrom: Permission denied" errors
  134.      6.13 How do I interpret IDE CD kernel error messages?
  135.      6.14 How can I tell what speed CD-ROM I have?
  136.      6.15 My CD-ROM stopped working after Linux was installed
  137.      6.16 There are "hidden" files on a CD which I can't read
  138.      6.17 Where is the CD-ROM API documented?
  139.      6.18 Why don't I see long filenames on this Windows CD-ROM?
  140.      6.19 Is Microsoft's Joliet filesystem supported?
  141.      6.20 Does Linux support "enhanced" CDs?
  142.      6.21 Does Linux support DVD-ROM?
  143.      6.22 Does Linux support CD-RW?
  144.  
  145.   7. References
  146.  
  147.  
  148.  
  149.   ______________________________________________________________________
  150.  
  151.   1.  Introduction
  152.  
  153.  
  154.   This is the Linux CD-ROM HOWTO. It is intended as a quick reference
  155.   covering everything you need to know to install and configure CD-ROM
  156.   hardware under Linux. Frequently asked questions related to CD-ROM are
  157.   answered, and references are given to other sources of information
  158.   related to CD-ROM applications and technology.
  159.  
  160.  
  161.   1.1.  Acknowledgments
  162.  
  163.  
  164.   Much of this information came from the documentation and source files
  165.   provided with the Linux kernel, the Internet alt.cdrom newsgroup FAQ,
  166.   and input from Linux users.
  167.  
  168.   Thanks to the SGML Tools package, this HOWTO is available in several
  169.   formats, all generated from a common source file.
  170.  
  171.  
  172.   1.2.  New Versions Of This Document
  173.  
  174.  
  175.   New versions of this document will be periodically posted to the
  176.   comp.os.linux.answers newsgroup. They will also be uploaded to various
  177.   anonymous ftp sites that archive such information including
  178.   <ftp://metalab.unc.edu/pub/Linux/docs/HOWTO/>.
  179.  
  180.   Hypertext versions of this and other Linux HOWTOs are available on
  181.   many world-wide web sites, including
  182.   <http://metalab.unc.edu/LDP/HOWTO/>. Most Linux CD-ROM distributions
  183.   include the HOWTOs, often under the /usr/doc directory, and you can
  184.   also buy printed copies from several vendors. Sometimes the HOWTOs
  185.   available from CD-ROM vendors, ftp sites, and printed format are out
  186.   of date. If the date on this HOWTO is more than six months in the
  187.   past, then a newer copy is probably available on the Internet.
  188.  
  189.   Please note that, due to the dynamic nature of the Internet, all web
  190.   and ftp links listed in this document are subject to change.
  191.  
  192.   Translations of this document are available in several languages:
  193.  
  194.   Chinese:  <http://www.linux.org.tw/CLDP/CDROM-HOWTO.html>
  195.  
  196.   French:  <http://www.freenix.org/unix/linux/HOWTO/>
  197.  
  198.  
  199.   Japanese:  <http://jf.linux.or.jp/JF/JF.html/>
  200.  
  201.   Polish:  <http://www.jtz.org.pl/Html/CDROM-HOWTO.pl.html>
  202.  
  203.   Spanish:  <ftp://ftp.insflug.org/es>
  204.  
  205.   Swedish:  <http://www.swe-doc.linux.nu/>
  206.  
  207.   Most translations of this and other Linux HOWTOs can also be found at
  208.   <http://metalab.unc.edu/pub/Linux/docs/HOWTO/translations/> and
  209.   <ftp://metalab.unc.edu/pub/Linux/docs/HOWTO/translations/>. If you
  210.   make a translation of this document into another language, let me know
  211.   and I'll include a reference to it here.
  212.  
  213.  
  214.   1.3.  Feedback
  215.  
  216.  
  217.   I rely on you, the reader, to make this HOWTO useful. If you have any
  218.   suggestions, corrections, or comments, please send them to me,
  219.   tranter@pobox.com, and I will try to incorporate them in the next
  220.   revision.
  221.  
  222.   I am also willing to answer general questions on CD-ROM under Linux,
  223.   as best I can. Before doing so, please read all of the information in
  224.   this HOWTO, and then send me detailed information about the problem.
  225.   Please do not ask me about using CD-ROM drives under operating systems
  226.   other than Linux.
  227.  
  228.   If you publish this document on a CD-ROM or in hardcopy form, a
  229.   complimentary copy would be appreciated; mail me for my postal
  230.   address. Also consider making a donation to the Linux Documentation
  231.   Project to help support free documentation for Linux. Contact the
  232.   Linux HOWTO coordinator, Tim Bynum (linux-howto@metalab.unc.edu), for
  233.   more information.
  234.  
  235.  
  236.   1.4.  Distribution Policy
  237.  
  238.  
  239.   Copyright (c) 1995-1999 by Jeff Tranter. This document may be
  240.   distributed under the terms set forth in the LDP license at
  241.   <http://metalab.unc.edu/LDP/COPYRIGHT.html>.
  242.  
  243.  
  244.   2.  CD-ROM Technology
  245.  
  246.  
  247.  
  248.   "CD-ROM is read-only memory, and audio compact disc system is
  249.   available as package-media of digital data for those purpose. For
  250.   playing audio CD, please insert Head-phone jack."
  251.   --- from a CD-ROM instruction manual
  252.  
  253.  
  254.  
  255.   Don't Panic! The world of CD-ROM technology is not as confusing as
  256.   your instruction manual.
  257.  
  258.   CD-ROM stands for Compact Disc Read-Only Memory, a mass storage medium
  259.   utilizing an optical laser to read microscopic pits on the aluminized
  260.   layer of a polycarbonate disc. The same format is used for audio
  261.   Compact Discs. Because of its high storage capacity, reliability, and
  262.   low cost, CD-ROM has become an increasingly popular storage media.
  263.  
  264.  
  265.   The storage capacity of a CD-ROM disc is approximately 650 megabytes,
  266.   equivalent to over 500 high density 3.5" floppy disks or roughly
  267.   250,000 typed pages.
  268.  
  269.   First generation drives (known as single speed), provided a transfer
  270.   rate of approximately 150 kilobytes per second. Hardware manufacturers
  271.   then introduced double speed (300 kB/sec), quad speed (600 kB/sec),
  272.   and higher. Current drives operate at up to 40 times speed, although
  273.   the maximum rate is only achievable over certain portions of the disc
  274.   surface.
  275.  
  276.   Most CD-ROM drives use either the Small Computer Systems Interface
  277.   (SCSI), ATAPI enhanced IDE interface, or a vendor proprietary
  278.   interface. They also typically support playing audio CDs via an
  279.   external headphone jack or line level output. Some CDs also allow
  280.   reading the frames of data from audio CDs in digital form.
  281.  
  282.   CD-ROMs are usually formatted with an ISO-9660 (formerly called High
  283.   Sierra) file system. This format restricts filenames to the MS-DOS
  284.   style (8+3 characters). The Rock Ridge Extensions use undefined fields
  285.   in the ISO-9660 standard to support longer filenames and additional
  286.   Unix style information (e.g. file ownership, symbolic links, etc.).
  287.   Microsoft has defined a proprietary ISO file system extension called
  288.   Joliet which supports long filenames using the 16-bit UNICODE
  289.   character encoding.
  290.  
  291.   PhotoCD is a standard developed by Kodak for storing photographic
  292.   images as digital data on a CD-ROM. With appropriate software, you can
  293.   view the images on a computer, manipulate them, or send them to a
  294.   printer. Information can be added to a PhotoCD at a later date; this
  295.   is known as multi-session capability.
  296.  
  297.   CD recorders (CD-R) allow writing onto a special "gold" CD which can
  298.   then be read by any CD-ROM drive. Data can only be written once,
  299.   although using multi-session new data can be appended to a disc. These
  300.   drives are now becoming increasingly affordable.
  301.  
  302.   CD-RW (read/write) drives support multiple writing of data to CDs.
  303.   They use special discs which cannot be read using standard CD-ROM
  304.   drives, although the CD-RW drives themselves can read standard discs.
  305.  
  306.   DVD-ROM expands the storage of a CD to as much as 17 gigabytes. They
  307.   are commonly used as a medium for distributing full length motion
  308.   pictures encoded using the MPEG-2 format. The MPEG video decoding is
  309.   usually performed using specialized decoder hardware.
  310.  
  311.  
  312.   3.  Supported Hardware
  313.  
  314.  
  315.   This section lists the CD-ROM drivers and interfaces that are
  316.   currently supported under Linux. The information here is based on the
  317.   latest stable Linux kernel, which at time of writing was version
  318.   2.2.4.
  319.  
  320.   This information is only valid for Linux on the Intel platform. Much
  321.   of it is applicable to Linux on other processor architectures as well.
  322.  
  323.  
  324.   3.1.  ATAPI CD-ROM Drives
  325.  
  326.  
  327.   ATAPI (ATA Packet Interface) is a protocol for controlling mass
  328.   storage devices. It builds on the ATA (AT Attachment) interface, the
  329.   official ANSI standard name for the IDE interface developed for hard
  330.   disk drives. ATAPI is commonly used for hard disks, CD-ROM drives,
  331.   tape drives, and other devices. Currently the most popular type of
  332.   interface, it offers most of the functionality of SCSI, without the
  333.   need for an expensive controller or cables.
  334.  
  335.   The Linux kernel has a device driver that should work with any ATAPI
  336.   compliant CD-ROM drive. Vendors shipping compatible drives include
  337.   Aztech, Mitsumi, NEC, Sony, Creative Labs, and Vertos. If you have
  338.   recently purchased a CD-ROM drive, especially if it is quad speed or
  339.   faster, it is almost guaranteed to be IDE/ATAPI.
  340.  
  341.   Linux also has an IDE SCSI emulation kernel driver that makes an
  342.   IDE/ATAPI device appear in software to be a SCSI device, allowing the
  343.   use of a SCSI device driver instead of the native ATAPI driver. This
  344.   is useful if you have an ATAPI device for which no native driver has
  345.   been written (for example, an ATAPI PD-CD or CDR drive); you can then
  346.   use this emulation together with an appropriate SCSI device driver.
  347.  
  348.  
  349.   3.2.  SCSI CD-ROM Drives
  350.  
  351.  
  352.   SCSI (Small Computer Systems Interface) is a popular format for CD-ROM
  353.   drives. Its chief advantages are a reasonably fast transfer rate,
  354.   multi-device capability, and support on a variety of computer
  355.   platforms. Some disadvantages of SCSI are the need for a relatively
  356.   expensive controller card and cables.
  357.  
  358.   Any SCSI CD-ROM drive with a block size of 512 or 2048 bytes should
  359.   work under Linux; this includes the vast majority of CD-ROM drives on
  360.   the market.
  361.  
  362.   You will also need a supported SCSI controller card; see the SCSI
  363.   HOWTO for more information on interface hardware.
  364.  
  365.  
  366.   Note that some CD-ROMs include a proprietary controller with a
  367.   modified interface that is not fully SCSI compatible (e.g. it may not
  368.   support adding other SCSI devices on the bus). These will most likely
  369.   not work under Linux.
  370.  
  371.  
  372.   3.3.  Proprietary CD-ROM Drives
  373.  
  374.  
  375.   Several CD-ROM drives using proprietary interfaces are available; the
  376.   interface is often provided on a sound card. Simple interface cards
  377.   equivalent to that provided on the sound card are also available.
  378.   These drives generally tend to be lower in cost and smaller than SCSI
  379.   drives. Their disadvantages are the lack of standardization and
  380.   expandability.
  381.  
  382.   Note that proprietary interfaces are sometimes erroneously referred to
  383.   as IDE interfaces, because like IDE hard disks, they use a simple
  384.   interface based on the PC/AT bus. To add to the confusion, some
  385.   vendors, most notably Creative Labs, have shipped many different types
  386.   of CD-ROM drives and have offered proprietary, SCSI, and ATAPI
  387.   interfaces on their sound cards.
  388.  
  389.   The table below lists the proprietary CD-ROM drives that are known to
  390.   be supported under Linux. Drivers for additional devices may be
  391.   available in the latest development kernels or as kernel patches. The
  392.   latter can most often be found at
  393.   <ftp://metalab.unc.edu/pub/Linux/kernel/patches/cdrom/>. Also check
  394.   the documentation files included with the kernel distribution, usually
  395.   installed in /usr/src/linux/Documentation/cdrom, for the latest
  396.   information.
  397.                   Proprietary CD-ROM Drives
  398.  
  399.   Vendor          Model           Kernel Driver   Notes
  400.   ------          -----           -------------   --------
  401.   Panasonic       CR-521          sbpcd           Note 1
  402.   Panasonic       CR-522          sbpcd           Note 1
  403.   Panasonic       CR-523          sbpcd           Note 1
  404.   Panasonic       CR-562          sbpcd           Note 1
  405.   Panasonic       CR-563          sbpcd           Note 1
  406.   Creative Labs   CD-200          sbpcd
  407.   IBM             External ISA    sbpcd           Note 2
  408.   Longshine       LCS-7260        sbpcd
  409.   Teac            CD-55A          sbpcd
  410.   Sony            CDU-31A         cdu31a
  411.   Sony            CDU-33A         cdu31a
  412.   Sony            CDU-535         sonycd535       Note 3
  413.   Sony            CDU-531         sonycd535
  414.   Aztech          CDA268-01A      aztcd           Note 4
  415.   Orchid          CDS-3110        aztcd
  416.   Okano/Wearnes   CDD110          aztcd
  417.   Conrad          TXC             aztcd
  418.   CyCDROM         CR520ie         aztcd
  419.   CyCDROM         CR940ie         aztcd
  420.   GoldStar        R420            gscd            Note 5
  421.   Philips/LMS     CM206           cm206           Note 6
  422.   Mitsumi         CRMC LU005S     mcd/mcdx        Note 7, 8
  423.   Mitsumi         FX001           mcd/mcdx        Note 7, 8
  424.   Optics Storage  Dolphin 8000AT  optcd
  425.   Lasermate       CR328A          optcd
  426.   Sanyo           H94A            sjcd
  427.   various         various         isp16           Note 9
  428.  
  429.  
  430.  
  431.   Notes:
  432.  
  433.  
  434.   1. These drives may be sold under the names Creative Labs, Panasonic,
  435.      Matsushita, or Kotobuki.
  436.  
  437.   2. This drive is the same as a Panasonic CR-562.
  438.  
  439.   3. May also be sold under the Procomm name.
  440.  
  441.   4. This driver is for the CDA268-01A only. Other models, including the
  442.      CDA268-03I and CDA269-031SE are not proprietary and should use the
  443.      IDECD (ATAPI) kernel driver.
  444.  
  445.   5. May also be sold as part of a Reveal Multimedia Kit.
  446.  
  447.   6. The Philips CM205 is not supported by this driver, but there is a
  448.      separate alpha release driver available from ftp://metalab.unc.edu
  449.      in /pub/Linux/kernel/patches/cdrom/lmscd0.4.tar.gz
  450.  
  451.   7. May also be sold under the Radio Shack name.
  452.  
  453.   8. There are two drivers available. "mcd" is the original one, and
  454.      "mcdx" is a newer driver with more features (but possibly less
  455.      stable).
  456.  
  457.   9. This driver works with CD-ROM drives that are attached to the
  458.      interface on an ISP16, MAD16 or Mozart sound card.
  459.  
  460.   If a drive listed here is not supported by your kernel, you probably
  461.   need to upgrade to a newer version.
  462.  
  463.   If your drive is not one of the models listed here, particularly if it
  464.   was bought recently and is quad speed or faster, it probably uses the
  465.   IDE/ATAPI interface listed in a previous section. The single most
  466.   common error among Linux CD-ROM users is to assume that any drive
  467.   connected to a SoundBlaster card should use the SBPCD driver. Creative
  468.   Labs and most other vendors are no longer selling proprietary
  469.   interface drives, they are following the standard ATAPI/IDE interface.
  470.  
  471.  
  472.   3.4.  Parallel Port Drives
  473.  
  474.  
  475.   There are external storage devices, including CD-ROM drives, that
  476.   attach to the parallel port of personal computers. In many cases the
  477.   devices internally use an IDE interface in conjunction with an adaptor
  478.   which interfaces the internal IDE bus to the PC parallel port.
  479.  
  480.   Linux has a parallel port IDE driver which supports most parallel port
  481.   devices. At the time of writing it supported devices from the
  482.   following vendors (as well as most no-name and clone drives compatible
  483.   with these): ATEN, Avatar, DataStor, Fidelity International
  484.   Technology, Freecom, Hewlett-Packard, Imation, KT Technology, KingByte
  485.   Information Corp., Maxell, MicroSolutions, OnSpec, Shuttle Technology,
  486.   SyQuest, and ValuStore.
  487.  
  488.   Additional information can be found at
  489.   <http://www.torque.net/parport/>.
  490.  
  491.  
  492.   3.5.  Alternate Drivers
  493.  
  494.  
  495.   There is an alternate kernel driver available for Panasonic/Matsushita
  496.   CR-56x drives written by Zoltan Vorosbaranyi. It can be found at
  497.   <ftp://ftp.honlap.net/pub/linux/pcd/pcd-0.30.tar.gz>.
  498.  
  499.  
  500.   4.  Installation
  501.  
  502.  
  503.   Installation of a CD-ROM under Linux consists of these steps:
  504.  
  505.  
  506.   1. Installing the hardware.
  507.  
  508.   2. Configuring and building the Linux kernel.
  509.  
  510.   3. Creating device files and setting boot time parameters
  511.  
  512.   4. Booting the Linux kernel.
  513.  
  514.   5. Mounting the media.
  515.  
  516.   The next sections will cover each of these steps in detail.
  517.  
  518.  
  519.   4.1.  Installing the Hardware
  520.  
  521.  
  522.   Follow the manufacturer's instructions for installing the hardware or
  523.   have your dealer perform the installation. The details will vary
  524.   depending on whether the drive is internal or external and on the type
  525.   of interface used. There are no special installation requirements for
  526.   Linux. You may need to set jumpers on the drive and/or interface card
  527.   for correct operation; some of the kernel drivers include
  528.   documentation files that include this information.
  529.   As explained in the file ide-cd, ATAPI CD-ROMS should be jumpered as
  530.   "single" or "master", and not "slave" when only one IDE device is
  531.   attached to an interface (although this restriction is no longer
  532.   enforced with recent kernels).
  533.  
  534.  
  535.   4.2.  Configuring and Building the Kernel
  536.  
  537.  
  538.   When initially installing Linux from CD-ROM you will likely be using a
  539.   boot and/or root disk provided as part of a Linux distribution. If
  540.   possible, you should choose a boot disk with the kernel driver for
  541.   your CD-ROM device type. If you cannot find a boot disk with the
  542.   necessary CD-ROM driver, you have several options:
  543.  
  544.  
  545.   1. Boot directly from CD-ROM (if supported by your computer and Linux
  546.      CD)
  547.  
  548.   2. Install over a network
  549.  
  550.   3. Boot DOS, and install the Linux files onto your hard disk
  551.  
  552.   4. Boot DOS, and create a set of floppies to install Linux
  553.  
  554.   5. Find someone who can build you a boot disk with the needed CD-ROM
  555.      driver
  556.  
  557.   The Linux Installation HOWTO
  558.   <http://metalab.unc.edu/LDP/HOWTO/Installation-HOWTO.html> has more
  559.   information on installing Linux. If you purchased Linux on CD-ROM, it
  560.   likely also came with some installation instructions (that little
  561.   booklet inside the jewel case, and/or files on the CD).
  562.  
  563.   Once Linux has initially been installed, most users will want to
  564.   compile their own kernel, usually for one of these reasons:
  565.  
  566.  
  567.   ╖  to support a CD-ROM drive or other hardware
  568.  
  569.   ╖  to upgrade to a newer kernel release
  570.  
  571.   ╖  to free up memory resources by minimizing the size of the kernel
  572.  
  573.   The Linux Kernel HOWTO <http://metalab.unc.edu/LDP/HOWTO/Kernel-
  574.   HOWTO.html> should be consulted for the details of building a kernel.
  575.   I will just mention here some issues that are specific to CD-ROM
  576.   drives.
  577.  
  578.   Obviously, you need to compile in support for your CD-ROM drive when
  579.   you do a "make config".
  580.  
  581.   If you have an ATAPI CD-ROM drive, you need to answer yes to the
  582.   questions:
  583.  
  584.  
  585.  
  586.        Enhanced IDE/MFM/RLL disk/cdrom/tape support (CONFIG_BLK_DEV_IDE) [Y/n/?]
  587.        Include IDE/ATAPI CDROM support (CONFIG_BLK_DEV_IDECD) [Y/n/?]
  588.  
  589.  
  590.  
  591.  
  592.   For SCSI CD-ROM drives, enable these options:
  593.  
  594.  
  595.        SCSI support (CONFIG_SCSI) [Y/n/m/?]
  596.        SCSI CDROM support (CONFIG_BLK_DEV_SR) [Y/n/m/?]
  597.  
  598.  
  599.  
  600.  
  601.   Also enable support for your SCSI host adapter when prompted, e.g.
  602.  
  603.  
  604.  
  605.        Adaptec AHA152X/2825 support (CONFIG_SCSI_AHA152X) [Y/n/m/?]
  606.  
  607.  
  608.  
  609.  
  610.   For proprietary interface CD-ROM drives, enable the appropriate
  611.   driver. You can use the table listed previously to determine the
  612.   driver to use for your model.
  613.  
  614.   Virtually all CD-ROMs use the ISO-9660 file system, so you must also
  615.   enable:
  616.  
  617.  
  618.  
  619.        ISO 9660 CDROM filesystem support (CONFIG_ISO9660_FS) [Y/n/m/?]
  620.  
  621.  
  622.  
  623.  
  624.   Although not needed for CD-ROM operation, if you have a sound card
  625.   that is supported under Linux you might want to enable and configure
  626.   the kernel sound driver at this time as well. The Sound HOWTO
  627.   <http://metalab.unc.edu/LDP/HOWTO/Sound-HOWTO.html> can be a useful
  628.   reference here.
  629.  
  630.   You should then follow the usual procedure for building the kernel and
  631.   installing it. Don't boot with the new kernel until you create the
  632.   device files and set up any boot time parameters as described in the
  633.   next section.
  634.  
  635.   The ISO-9660 filesystem and almost all of the CD-ROM drivers can be
  636.   built as loadable kernel modules. This scheme allows the kernel
  637.   drivers to be loaded and unloaded without rebooting the kernel,
  638.   freeing up memory. I recommend you get your CD-ROM installation
  639.   running using compiled-in drivers first. How to use modules is
  640.   described in the modules documentation and the Kernel HOWTO
  641.   <http://metalab.unc.edu/LDP/HOWTO/Kernel-HOWTO.html>.
  642.  
  643.   If a drive type listed here is not supported by your kernel, you
  644.   likely need to upgrade to a newer version.
  645.  
  646.   It is possible that you need to use a driver that is distributed
  647.   separately from the kernel source code. This usually involves patching
  648.   the kernel. Again, the Kernel HOWTO
  649.   <http://metalab.unc.edu/LDP/HOWTO/Kernel-HOWTO.html> explains how to
  650.   do this.
  651.  
  652.   Note that there is a menu-based kernel configuration program invoked
  653.   by "make menuconfig" and an X11-based graphical configuration invoked
  654.   as "make xconfig". All three configuration methods offer on-line help.
  655.  
  656.  
  657.   4.3.  Creating Device Files and Setting Boot Time Parameters
  658.  
  659.  
  660.  
  661.   The kernel uses device files to identify which device driver to use.
  662.   If you are running a standard Linux distribution you may have created
  663.   the necessary device files during installation. Under Slackware Linux,
  664.   for example, there is a menu-based setup tool that includes CD-ROM
  665.   setup, and most systems have a /dev/MAKEDEV script. If you don't use
  666.   these methods, you can use the more manual procedure listed in this
  667.   section. Even if you use either of these methods, it is recommended
  668.   that you at least verify the device files against the information in
  669.   this section.
  670.  
  671.   You create the device file by running the shell commands indicated for
  672.   your drive type. This should be done as user root. Note that some
  673.   Linux distributions may use slightly different CD-ROM device names
  674.   from those listed here.
  675.  
  676.   It is recommended that you also create a symbolic link to the CD-ROM
  677.   device to make it easier to remember. For example, for an IDE CD-ROM
  678.   drive that is the second device on the secondary interface, the link
  679.   would be created using
  680.  
  681.  
  682.  
  683.        # ln -s /dev/hdd /dev/cdrom
  684.  
  685.  
  686.  
  687.  
  688.   If you want to play audio CDs, you will need to set the protection on
  689.   the device file (the real file, not the symbolic link to it) to allow
  690.   all users to read, e.g.
  691.  
  692.  
  693.  
  694.        # chmod 664 /dev/hdd
  695.        # ls -l /dev/hdd
  696.        brw-rw-r--   1 root     disk      22,  64 Feb  4  1995 /dev/hdd
  697.  
  698.  
  699.  
  700.  
  701.   When booting Linux, the device drivers attempt to determine whether
  702.   the appropriate devices are present, typically by probing specific
  703.   addresses. Many of the drivers auto-probe at several addresses, but
  704.   because of differences in configuration, possible device conflicts,
  705.   and hardware limitations, the drivers sometimes need help identifying
  706.   the addresses and other parameters. Most drivers support an option on
  707.   the kernel command line to pass this information to the device driver.
  708.   This can be done interactively, or more commonly, configured into your
  709.   boot loader. With LILO, for example, you would add an append command
  710.   such as the following to your /etc/lilo.conf file:
  711.  
  712.  
  713.  
  714.        append = "sbpcd=0x230,SoundBlaster"
  715.  
  716.  
  717.  
  718.  
  719.   See the LILO documentation for more information.
  720.  
  721.   In the next section I discuss issues specific to individual device
  722.   drivers, including device files, boot parameters, and the capabilities
  723.   of the different drivers. You probably only need to read the section
  724.   relevant to your drive type. The documentation files are usually found
  725.   in the directory /usr/src/linux/Documentation/cdrom.
  726.  
  727.   4.3.1.  Sbpcd Driver
  728.  
  729.  
  730.  
  731.          Principal author: Eberhard Moenkeberg (emoenke@gwdg.de)
  732.     Multi-session support: yes (but not all drives)
  733.    Multiple drive support: yes
  734.   Loadable module support: yes
  735.      Reading audio frames: yes (CR-562, CR-563, CD-200 only)
  736.              Auto-probing: yes
  737.               Device file: /dev/sbpcd, major 25
  738.        Configuration file: sbpcd.h
  739.      Kernel config option: Matsushita/Panasonic CDROM support?
  740.        Documentation file: sbpcd
  741.  
  742.  
  743.  
  744.   This driver accepts a kernel command line of the form:
  745.  
  746.  
  747.  
  748.        sbpcd=<io-address>,<interface-type>
  749.  
  750.  
  751.  
  752.  
  753.   where the first parameter is the base address of the device (e.g.
  754.   0x230), and <interface-type> is one of "SoundBlaster", "LaserMate", or
  755.   "SPEA". See the file sbpcd.h for hints on what interface type to use.
  756.   Using sbpcd=0 disables auto-probing, disabling the driver.
  757.  
  758.   The device file can be created using:
  759.  
  760.  
  761.  
  762.        # mknod /dev/sbpcd b 25 0
  763.  
  764.  
  765.  
  766.  
  767.   Up to four drives per controller are supported. The next three drives
  768.   on the first controller would use minor device numbers 1 through 3.
  769.   If you have more than one controller, create devices with major
  770.   numbers 26, 27, and 28, up to a maximum of 4 controllers (this is 16
  771.   CD-ROM drives in total; hopefully enough for most users :-).
  772.  
  773.   See the file sbpcd for more information on this driver.
  774.  
  775.   If you recently bought a CD-ROM drive, don't assume that if it
  776.   connects to a SoundBlaster card it should use this kernel driver. Most
  777.   CD-ROM drives being sold by Creative Labs are now EIDE/ATAPI drives.
  778.  
  779.  
  780.   4.3.2.  Sonycdu535 Driver
  781.  
  782.  
  783.  
  784.  
  785.  
  786.  
  787.  
  788.  
  789.  
  790.  
  791.  
  792.  
  793.          Principal author: Ken Pizzini (ken@halcyon.com)
  794.     Multi-session support: no
  795.    Multiple drive support: no
  796.   Loadable module support: yes
  797.      Reading audio frames: no
  798.              Auto-probing: no
  799.               Device file: /dev/sonycd535, major 24
  800.        Configuration file: sonycd535.h
  801.      Kernel config option: Sony CDU535 CDROM support?
  802.        Documentation file: sonycd535
  803.  
  804.  
  805.  
  806.   This driver accepts a kernel command line of the form:
  807.  
  808.  
  809.  
  810.        sonycd535=<io-address>
  811.  
  812.  
  813.  
  814.  
  815.   where <io-address> is the base address of the controller (e.g. 0x320).
  816.   Alternatively you can set the address in the file sonycd535.h and
  817.   compile it in.
  818.  
  819.   The device file can be created using:
  820.  
  821.  
  822.  
  823.        # mknod /dev/sonycd535 b 24 0
  824.  
  825.  
  826.  
  827.  
  828.   Some Linux distributions use /dev/sonycd for this device.  Older
  829.   versions of the driver used major device number 21; make sure your
  830.   device file is correct.
  831.  
  832.   This driver was previously distributed as a patch but is now part of
  833.   the standard kernel. See the file sonycd535 for more information on
  834.   this driver.
  835.  
  836.  
  837.   4.3.3.  Cdu31a Driver
  838.  
  839.  
  840.  
  841.          Principal author: Corey Minyard (minyard@-rch.cirr.com)
  842.     Multi-session support: yes
  843.    Multiple drive support: no
  844.   Loadable module support: yes
  845.      Reading audio frames: yes
  846.              Auto-probing: no
  847.               Device file: /dev/cdu31a, major 15
  848.        Configuration file: cdu31a.h
  849.      Kernel config option: Sony CDU31A/CDU33A CDROM support?
  850.        Documentation file: cdu31a
  851.  
  852.  
  853.  
  854.   This driver accepts a kernel command line of the form:
  855.  
  856.  
  857.  
  858.  
  859.   cdu31a=<io-address>,<interrupt>,PAS
  860.  
  861.  
  862.  
  863.  
  864.   The first number is the I/O base address of the card (e.g. 0x340). The
  865.   second is the interrupt number to use (0 means to use polled i/o). The
  866.   optional third parameter should be "PAS" if the drive is connected to
  867.   a Pro-Audio Spectrum 16 sound card, otherwise left blank.
  868.  
  869.   If the driver is loaded as a module, it uses a slightly different
  870.   format. When loading the driver using the modprobe or insmod command,
  871.   the parameters take the form:
  872.  
  873.  
  874.  
  875.        cdu31a_port=<io-address> cdu31a_irq=<interrupt>
  876.  
  877.  
  878.  
  879.  
  880.   The base io-address is required while the interrupt number is
  881.   optional.
  882.  
  883.   The device file can be created using:
  884.  
  885.  
  886.  
  887.        # mknod /dev/cdu31a b 15 0
  888.  
  889.  
  890.  
  891.  
  892.   See the file cdu31a for more information on this driver.
  893.  
  894.   Also see the web page put together by Jeffrey Oxenreider
  895.   (zureal@infinet.com) that covers a lot of common problems with these
  896.   drives. It can be found at
  897.   <http://lemures.shinma.symix.com/~zureal/cdu31a.html>.
  898.  
  899.  
  900.   4.3.4.  Aztcd Driver
  901.  
  902.  
  903.  
  904.          Principal author: Werner Zimmermann (zimmerma@rz.fht-esslingen.de)
  905.     Multi-session support: yes
  906.    Multiple drive support: no
  907.   Loadable module support: yes
  908.      Reading audio frames: no
  909.              Auto-probing: no
  910.               Device file: /dev/aztcd0, major 29
  911.        Configuration file: aztcd.h
  912.      Kernel config option: Aztech/Orchid/Okano/Wearnes (non IDE) CDROM support?
  913.        Documentation file: aztcd
  914.  
  915.  
  916.  
  917.   This driver accepts a kernel command line of the form:
  918.  
  919.  
  920.  
  921.        aztcd=<io-address>
  922.  
  923.  
  924.  
  925.   where the parameter is the I/O base address of the card (e.g. 0x340).
  926.  
  927.   The device file can be created using:
  928.  
  929.  
  930.  
  931.        # mknod /dev/aztcd0 b 29 0
  932.  
  933.  
  934.  
  935.  
  936.   Note that this driver is for the CDA268-01A only. Other models,
  937.   including the CDA268-03I and CDA269-031SE are not proprietary and
  938.   should use the IDECD (ATAPI) kernel driver.
  939.  
  940.   See the file aztcd for more information on this driver.
  941.  
  942.  
  943.   4.3.5.  Gscd Driver
  944.  
  945.  
  946.  
  947.          Principal author: Oliver Raupach (raupach@nwfs1.rz.fh-hannover.de)
  948.     Multi-session support: no
  949.    Multiple drive support: no
  950.   Loadable module support: yes
  951.      Reading audio frames: no
  952.              Auto-probing: no
  953.               Device file: /dev/gscd0, major 16
  954.        Configuration file: gscd.h
  955.      Kernel config option: Goldstar R420 CDROM support?
  956.        Documentation file: gscd
  957.  
  958.  
  959.  
  960.   This driver accepts a kernel command line of the form:
  961.  
  962.  
  963.  
  964.        gscd=<io-address>
  965.  
  966.  
  967.  
  968.  
  969.   specifying the I/O base address of the card (e.g. 0x340).
  970.  
  971.   The device file can be created using:
  972.  
  973.  
  974.  
  975.        # mknod /dev/gscd0 b 16 0
  976.  
  977.  
  978.  
  979.  
  980.   See the file gscd and the world-wide web site <http://linux.rz.fh-
  981.   hannover.de/~raupach/> for more information on this driver.
  982.  
  983.  
  984.   4.3.6.  Mcd Driver
  985.  
  986.  
  987.  
  988.  
  989.  
  990.  
  991.          Principal author: Martin  (martin@bdsi.com)
  992.       Multi-session support: no
  993.    Multiple drive support: no
  994.   Loadable module support: yes
  995.      Reading audio frames: no
  996.              Auto-probing: no
  997.               Device file: /dev/mcd, major 23
  998.        Configuration file: mcd.h
  999.      Kernel config option: Standard Mitsumi CDROM support?
  1000.        Documentation file: mcd
  1001.  
  1002.  
  1003.  
  1004.   This is the older driver for Mitsumi drivers that has been available
  1005.   for some time. You might want to try the newer mcdx driver, which has
  1006.   some new features but is possibly less stable.
  1007.  
  1008.   This driver accepts a kernel command line of the form:
  1009.  
  1010.  
  1011.  
  1012.        mcd=<io-address>,<irq>
  1013.  
  1014.  
  1015.  
  1016.  
  1017.   specifying the I/O base address of the card (e.g. 0x340) and the IRQ
  1018.   request number used.
  1019.  
  1020.   The device file can be created using:
  1021.  
  1022.  
  1023.  
  1024.        # mknod /dev/mcd b 23 0
  1025.  
  1026.  
  1027.  
  1028.  
  1029.   See the file mcd for more information on this driver.
  1030.  
  1031.  
  1032.   4.3.7.  Mcdx Driver
  1033.  
  1034.  
  1035.  
  1036.          Principal author: Heiko Schlittermann
  1037.     Multi-session support: yes
  1038.    Multiple drive support: yes
  1039.   Loadable module support: yes
  1040.      Reading audio frames: no (not supported by hardware)
  1041.              Auto-probing: no
  1042.               Device file: /dev/mcdx0, major 20
  1043.        Configuration file: mcdx.h
  1044.      Kernel config option: Experimental Mitsumi support?
  1045.        Documentation file: mcdx
  1046.  
  1047.  
  1048.  
  1049.   This is a newer driver for Mitsumi drivers. The older and possibly
  1050.   more stable mcd driver is still available.
  1051.  
  1052.   This driver accepts a kernel command line of the form:
  1053.  
  1054.  
  1055.  
  1056.  
  1057.   mcdx=<io-address>,<irq>
  1058.  
  1059.  
  1060.  
  1061.  
  1062.   specifying the I/O base address of the card (e.g. 0x340) and the IRQ
  1063.   request number used.
  1064.  
  1065.   The device file can be created using:
  1066.  
  1067.  
  1068.  
  1069.        # mknod /dev/mcdx0 b 20 0
  1070.  
  1071.  
  1072.  
  1073.  
  1074.   If you recently bought a Mitsumi CD-ROM drive, don't assume that it
  1075.   should use this kernel driver. New Mitsumi drives are now EIDE/ATAPI
  1076.   compatible and should use the idecd kernel driver instead.
  1077.  
  1078.   See the file mcdx for more information on this driver.
  1079.  
  1080.  
  1081.   4.3.8.  Cm206 Driver
  1082.  
  1083.  
  1084.  
  1085.          Principal author: David A. van Leeuwen (david@tm.tno.)
  1086.     Multi-session support: yes
  1087.    Multiple drive support: no
  1088.   Loadable module support: yes
  1089.      Reading audio frames: no
  1090.              Auto-probing: yes
  1091.               Device file: /dev/cm206cd, major 32
  1092.        Configuration file: cm206.h
  1093.      Kernel config option: Philips/LMS CM206 CDROM support?
  1094.        Documentation file: cm206
  1095.  
  1096.  
  1097.  
  1098.   The driver accepts a kernel command line of the form:
  1099.  
  1100.  
  1101.  
  1102.        cm206=<io-address>,<interrupt>
  1103.  
  1104.  
  1105.  
  1106.  
  1107.   where the first number is the I/O base address of the card (e.g.
  1108.   0x340). The second is the interrupt channel.
  1109.  
  1110.   The device file can be created using:
  1111.  
  1112.  
  1113.  
  1114.        # mknod /dev/cm206cd b 32 0
  1115.  
  1116.  
  1117.  
  1118.  
  1119.   See the file cm206 for more information on this driver.
  1120.  
  1121.  
  1122.  
  1123.   4.3.9.  Optcd Driver
  1124.  
  1125.  
  1126.  
  1127.          Principal author: Leo Spiekman (spiekman@dutette.et.tudelft.nl)
  1128.     Multi-session support: yes
  1129.    Multiple drive support: no
  1130.   Loadable module support: yes
  1131.      Reading audio frames: no
  1132.              Auto-probing: no
  1133.               Device file: /dev/optcd0, major 17
  1134.        Configuration file: optcd.h
  1135.      Kernel config option: Experimental Optics Storage ... CDROM support?
  1136.        Documentation file: optcd
  1137.  
  1138.  
  1139.  
  1140.   The driver accepts a kernel command line of the form
  1141.  
  1142.  
  1143.  
  1144.        optcd=<io-address>
  1145.  
  1146.  
  1147.  
  1148.  
  1149.   to specify the I/O base address of the card (e.g. 0x340).
  1150.  
  1151.   The device file can be created using:
  1152.  
  1153.  
  1154.  
  1155.        # mknod /dev/optcd0 b 17 0
  1156.  
  1157.  
  1158.  
  1159.  
  1160.   See the file optcd for more information on this driver.
  1161.  
  1162.  
  1163.   4.3.10.  Sjcd Driver
  1164.  
  1165.  
  1166.  
  1167.          Principal author: Vadim V. Model (vadim@rbrf.msk.su)
  1168.     Multi-session support: no
  1169.    Multiple drive support: no
  1170.   Loadable module support: yes
  1171.      Reading audio frames: no
  1172.              Auto-probing: no
  1173.               Device file: /dev/sjcd, major 18
  1174.        Configuration file: sjcd.h
  1175.      Kernel config option: Experimental Sanyo H94A CDROM support?
  1176.        Documentation file: sjcd
  1177.  
  1178.  
  1179.  
  1180.   The driver accepts a kernel command line of the form:
  1181.  
  1182.  
  1183.  
  1184.        sjcd=<io-address>,<interrupt>,<dma>
  1185.  
  1186.  
  1187.  
  1188.  
  1189.   indicating the base address, interrupt, and DMA channel to be used
  1190.   (e.g. sjcd=0x340,10,5).
  1191.  
  1192.   The device file can be created using:
  1193.  
  1194.  
  1195.  
  1196.        # mknod /dev/sjcd b 18 0
  1197.  
  1198.  
  1199.  
  1200.  
  1201.   See the file sjcd for more information on this driver.
  1202.  
  1203.  
  1204.   4.3.11.  Paride Driver
  1205.  
  1206.  
  1207.  
  1208.          Principal author: Grant R. Guenther (grant@torque.net)
  1209.     Multi-session support: no
  1210.    Multiple drive support: yes
  1211.   Loadable module support: yes
  1212.      Reading audio frames: no
  1213.              Auto-probing: yes
  1214.               Device file: /dev/pcd0, major 46
  1215.        Configuration file: bpcd.h
  1216.      Kernel config option: Parallel port IDE device support?
  1217.        Documentation file: paride.txt
  1218.  
  1219.  
  1220.  
  1221.   This is the driver for various types of storage devices that attach to
  1222.   a parallel port. Normally the driver will auto-detect the parallel
  1223.   port device. The documentation describes parameters that can be used
  1224.   to specify the device parameters if auto-detection does not work.
  1225.  
  1226.   The device file for the first drive can be created using:
  1227.  
  1228.  
  1229.  
  1230.        # mknod /dev/pcd0 b 46 0
  1231.  
  1232.  
  1233.  
  1234.  
  1235.   See the file /usr/src/linux/Documentation/paride.xt for more
  1236.   information on this driver. Note that this replaces the bpcd driver
  1237.   that was present in older kernels.
  1238.  
  1239.  
  1240.   4.3.12.  SCSI Driver
  1241.  
  1242.  
  1243.  
  1244.          Principal author: David Giller
  1245.     Multi-session support: yes (depending on drive)
  1246.    Multiple drive support: yes
  1247.   Loadable module support: yes
  1248.      Reading audio frames: no
  1249.              Auto-probing: yes
  1250.               Device file: /dev/scd0, major 11
  1251.        Configuration file: cdrom.h
  1252.      Kernel config option: SCSI CDROM support?
  1253.        Documentation file: scsi.txt
  1254.  
  1255.   There are kernel command line option specific to each type of SCSI
  1256.   controller. See the SCSI HOWTO for more information.
  1257.  
  1258.   Multiple drives are supported (up to the limit of the maximum number
  1259.   of devices on the SCSI bus). Create device files with major number 11
  1260.   and minor numbers starting at zero:
  1261.  
  1262.  
  1263.  
  1264.        # mknod /dev/scd0 b 11 0
  1265.        # mknod /dev/scd1 b 11 1
  1266.  
  1267.  
  1268.  
  1269.  
  1270.   While the kernel driver itself does not support reading digital audio
  1271.   frames, some SCSI drives have the capability and will work with the
  1272.   cdda2wav program (which uses the generic SCSI kernel interface).
  1273.  
  1274.   Also see the discussion of the IDE SCSI emulation driver earlier in
  1275.   this document.
  1276.  
  1277.  
  1278.   4.3.13.  IDECD Driver
  1279.  
  1280.  
  1281.  
  1282.          Principal author: Scott Snyder (snyder@fnald0.fnal.gov)
  1283.     Multi-session support: yes
  1284.    Multiple drive support: yes
  1285.   Loadable module support: no
  1286.      Reading audio frames: yes (on supported drives)
  1287.              Auto-probing: yes
  1288.               Device file: /dev/hd{a,b,c,d},  major 22
  1289.        Configuration file: cdrom.h
  1290.      Kernel config option: Include support for IDE/ATAPI CDROMs?
  1291.        Documentation file: ide-cd
  1292.  
  1293.  
  1294.  
  1295.   This is the driver for ATAPI CD-ROMS. The driver accepts a kernel
  1296.   command line of the form
  1297.  
  1298.  
  1299.  
  1300.        hdx=cyls,heads,sects,wpcom,irq
  1301.          or
  1302.        hdx=cdrom
  1303.  
  1304.  
  1305.  
  1306.  
  1307.   where hdx can be any of {hda,hdb,hdc,hdd}, or simply hd, for the
  1308.   "next" drive in sequence. Only the first three parameters are required
  1309.   (cyls,heads,sects). For example hdc=1050,32,64 hdd=cdrom.
  1310.  
  1311.   Getting the IDE driver to recognize your CD-ROM drive can be tricky,
  1312.   especially if you have more than 2 devices or more than one IDE
  1313.   controller. Usually all that is required is to pass the right command
  1314.   line options from LILO. The file
  1315.   /usr/src/linux/Documentation/cdrom/ide-cd explains how to do this.
  1316.   Read it carefully.
  1317.  
  1318.   Recent Linux kernels have better support for multiple IDE devices. If
  1319.   you have problems with an older kernel, upgrading may help.
  1320.  
  1321.   Some IDE controllers have hardware problems which the kernel driver
  1322.   can work around. You may need to pass additional parameters to the
  1323.   driver to enable this. See the documentation for details.
  1324.  
  1325.  
  1326.   4.4.  Booting the Linux Kernel
  1327.  
  1328.  
  1329.   You can now reboot with the new kernel. Watch for a message such as
  1330.   the following indicating that the CD-ROM has been found by the device
  1331.   driver (the message will vary depending on the drive type):
  1332.  
  1333.  
  1334.  
  1335.        hdd: NEC CD-ROM DRIVE:282, ATAPI CDROM drive
  1336.  
  1337.  
  1338.  
  1339.  
  1340.   If the bootup messages scroll by too quickly to read, you should be
  1341.   able to retrieve them using dmesg or tail /var/log/messages.
  1342.  
  1343.   If the drive is not found, then a problem has occurred, See the
  1344.   section on troubleshooting.
  1345.  
  1346.  
  1347.   4.5.  Mounting, Unmounting, and Ejecting Devices
  1348.  
  1349.  
  1350.   To mount a CD-ROM, insert a disc in the drive, and run the mount
  1351.   command as root (this assumes you created a symbolic link to your
  1352.   device file as recommended above and that an empty directory
  1353.   /mnt/cdrom exists):
  1354.  
  1355.  
  1356.  
  1357.        # mount -t iso9660 -r /dev/cdrom /mnt/cdrom
  1358.  
  1359.  
  1360.  
  1361.  
  1362.   The CD can now be accessed under the directory /mnt/cdrom.
  1363.  
  1364.   There are other options to the mount command that you may wish to use;
  1365.   see the mount(8) man page for details.
  1366.  
  1367.   You can add an entry to /etc/fstab to automatically mount a CD-ROM
  1368.   when Linux boots or to specify parameters to use when it is mounted;
  1369.   see the fstab(5) man page.
  1370.  
  1371.   Note that to play audio CDs you should not try to mount them.
  1372.  
  1373.   To unmount a CD-ROM, use the umount command as root:
  1374.  
  1375.  
  1376.  
  1377.        # umount /mnt/cdrom
  1378.  
  1379.  
  1380.  
  1381.  
  1382.   The disc can only be unmounted if no processes are currently accessing
  1383.   the drive (including having their default directory set to the mounted
  1384.   drive). You can then eject the disc. Most drives have an eject button;
  1385.   there is also a standalone eject program that allows ejecting CD-ROMs
  1386.   under software control.
  1387.   Note that you should not eject a disc while it is mounted (this may or
  1388.   may not be possible depending on the type of drive). Some CD-ROM
  1389.   drivers can automatically eject a CD-ROM when it is unmounted and
  1390.   insert the CD tray when a disc is mounted (you can turn this feature
  1391.   off when compiling the kernel or by using a software command).
  1392.  
  1393.   Its possible that after playing an audio CD you may not be able to
  1394.   mount a CD-ROM. You need to send a CD audio "stop" command (using a CD
  1395.   player program) before trying the mount. This problem only appears to
  1396.   occur with the SBPCD driver.
  1397.  
  1398.   Recent kernels support a kernel-based automounter which provides
  1399.   transparent mounting of removable media including CD-ROM. You can find
  1400.   the tools needed to use it at
  1401.   <ftp://ftp.kernel.org/pub/linux/daemons/autofs/>.
  1402.  
  1403.  
  1404.   4.6.  Troubleshooting
  1405.  
  1406.  
  1407.   If you still encounter problems after following the instructions in
  1408.   the HOWTO, here are some things to check. The checks are listed in
  1409.   increasing order of complexity. If a check fails, solve the problem
  1410.   before moving to the next stage.
  1411.  
  1412.  
  1413.   4.6.1.  Step 1: Make sure you are really running the kernel you com¡
  1414.   piled
  1415.  
  1416.  
  1417.   You can check the date stamp on the kernel to see if you are running
  1418.   the one that you compiled with CD-ROM support. You can do this with
  1419.   the uname command:
  1420.  
  1421.  
  1422.  
  1423.        % uname -a
  1424.        Linux fizzbin 2.2.4 #1 Tue Mar 232 11:23:21 EST 1999 i586 unknown
  1425.  
  1426.  
  1427.  
  1428.  
  1429.   or by displaying the file /proc/version:
  1430.  
  1431.  
  1432.  
  1433.        % cat /proc/version
  1434.        Linux version 2.2.4 (root@fizzbin) (gcc version 2.7.2.3) #1 Tue Mar 23 11:23:21 EST 1999
  1435.  
  1436.  
  1437.  
  1438.  
  1439.   If the date stamp doesn't match when you compiled the kernel, then you
  1440.   are running an old kernel. Did you remember to reboot? If you use
  1441.   LILO, did you re-install it (typically by running /sbin/lilo)? If
  1442.   booting from floppy, did you create a new boot floppy and use it when
  1443.   booting?
  1444.  
  1445.  
  1446.   4.6.2.  Step 2: Make sure the proper kernel drivers are compiled in
  1447.  
  1448.  
  1449.   You can see what drivers are compiled in by looking at /proc/devices:
  1450.  
  1451.  
  1452.  
  1453.   % cat /proc/devices
  1454.   Character devices:
  1455.    1 mem
  1456.    2 pty
  1457.    3 ttyp
  1458.    4 ttyS
  1459.    5 cua
  1460.    7 vcs
  1461.  
  1462.   Block devices:
  1463.    3 ide0
  1464.   22 ide1
  1465.  
  1466.  
  1467.  
  1468.  
  1469.   First look for your CD-ROM device driver. These are all block devices,
  1470.   in this case we can see that the idecd driver with major number 22 was
  1471.   present.
  1472.  
  1473.   Also make sure that ISO-9660 filesystem support was compiled in, by
  1474.   looking at /proc/filesystems:
  1475.  
  1476.  
  1477.  
  1478.        % cat /proc/filesystems
  1479.                ext2
  1480.        nodev   proc
  1481.        nodev   devpts
  1482.                vfat
  1483.                iso9660
  1484.  
  1485.  
  1486.  
  1487.  
  1488.   You can also see what i/o port addresses are being used by a driver
  1489.   with the file /proc/ioports:
  1490.  
  1491.  
  1492.  
  1493.        howto % cat /proc/ioports
  1494.         ...
  1495.        0230-0233 : sbpcd
  1496.         ...
  1497.  
  1498.  
  1499.  
  1500.  
  1501.   If any of the drivers you thought you compiled in are not displayed,
  1502.   then something went wrong with the kernel configuration or build.
  1503.   Start the installation process again, beginning with configuration and
  1504.   building of the kernel.
  1505.  
  1506.  
  1507.   4.6.3.  Step 3: Did the kernel detect your drive during booting?
  1508.  
  1509.  
  1510.   Make sure that the CD-ROM device was detected when the kernel booted.
  1511.   You should have seen a message on bootup. If the messages scrolled off
  1512.   the screen, you can usually recall them using the dmesg command:
  1513.  
  1514.  
  1515.  
  1516.        % dmesg
  1517.  
  1518.  
  1519.   or
  1520.  
  1521.  
  1522.  
  1523.        % tail /var/log/messages
  1524.  
  1525.  
  1526.  
  1527.  
  1528.   If your drive was not found then something is wrong. Make sure it is
  1529.   powered on and all cables are connected. If your drive has hardware
  1530.   jumpers for addressing, check that they are set correctly (e.g. drive
  1531.   0 if you have only one drive). ATAPI CD-ROMS must be jumpered as
  1532.   "single" or "master", and not "slave" when only one IDE device is
  1533.   attached to an interface. If the drive works under DOS then you can be
  1534.   reasonably confident that the hardware is working.
  1535.  
  1536.   Many kernel drivers using auto-probing, but some do not, and in any
  1537.   case the probing is not always reliable. Use the kernel command line
  1538.   option listed for your kernel driver type. You may want to try several
  1539.   different values if you are not sure of the i/o address or other
  1540.   parameters. LILO can be (and usually is) configured to allow you to
  1541.   enter the parameters manually when booting.
  1542.  
  1543.   Another possibility is that you used the wrong kernel driver for your
  1544.   CD-ROM driver. Some documentation may refer to proprietary interfaces
  1545.   as IDE, leading some to mistakenly believe they are ATAPI drives.
  1546.  
  1547.   Another possibility is that your drive (or interface card) is one of
  1548.   the "compatible" type that requires initialization by the DOS driver.
  1549.   Try booting DOS and loading the vendor supplied DOS device driver.
  1550.   Then soft boot Linux using Control-Alt-Delete.
  1551.  
  1552.   If your drive is not listed in this document, it is possible that
  1553.   there are no drivers for it available under Linux. You can check with
  1554.   some of the references listed at the end of this document for
  1555.   assistance.
  1556.  
  1557.  
  1558.   4.6.4.  Step 4: Can you read data from the drive?
  1559.  
  1560.  
  1561.   Try reading from the CD-ROM drive. Typing the following command should
  1562.   cause the drive activity light (if present) to come on and no errors
  1563.   should be reported. Use whatever device file is appropriate for your
  1564.   drive and make sure a CD-ROM is inserted; use Control-C to exit.
  1565.  
  1566.  
  1567.  
  1568.        # dd if=/dev/cdrom of=/dev/null bs=2048
  1569.        ^C
  1570.        124+0 records in
  1571.        124+0 records out
  1572.  
  1573.  
  1574.  
  1575.  
  1576.   If this works, then the kernel is communicating with the drive and you
  1577.   can move on to step 5.
  1578.  
  1579.   If not, then a possible cause is the device file. Make sure than the
  1580.   device file in the /dev directory has the correct major and minor
  1581.   numbers as listed previously for your drive type. Check that the
  1582.   permissions on the device file allow reading and writing.
  1583.  
  1584.  
  1585.   A remote possibility is a hardware problem. Try testing the drive
  1586.   under another operating system, if possible, to determine if this
  1587.   could be the case.
  1588.  
  1589.  
  1590.   4.6.5.  Step 5: Can you mount the drive?
  1591.  
  1592.  
  1593.   If you can read from the drive but cannot mount it, first verify that
  1594.   you compiled in ISO-9660 file system support by reading
  1595.   /proc/filesystems, as described previously.
  1596.  
  1597.   Make sure you are mounting the drive with the "-t iso9660" and "-r"
  1598.   options and that a known good ISO-9660 CD-ROM (not Audio CD) is
  1599.   inserted in the drive. You normally must mount drives as user root.
  1600.  
  1601.   Make sure that the mount point exists and is an empty directory.
  1602.  
  1603.   If you are automatically mounting the CD-ROM on bootup, make sure that
  1604.   you have correct entries in the /etc/fstab file.
  1605.  
  1606.   If you are running the syslog daemon, there may be error messages from
  1607.   the kernel that you are not seeing. Try using the "dmesg" command:
  1608.  
  1609.  
  1610.  
  1611.        % dmesg
  1612.        SBPCD: sbpcd_open: no disk in drive
  1613.  
  1614.  
  1615.  
  1616.  
  1617.   There may also be errors logged to files in /var/log, depending on how
  1618.   your system is configured.
  1619.  
  1620.  
  1621.   4.6.6.  Debugging Audio Problems
  1622.  
  1623.  
  1624.   If the drive works with CD-ROMs, but not for playing audio CDs, here
  1625.   are some possible solutions.
  1626.  
  1627.   You need an application program to play audio CDs. Some applications
  1628.   may be broken or may not be compatible with your drive. Try other
  1629.   applications and/or try recompiling them yourself. A good place to
  1630.   look for software is
  1631.   <ftp://metalab.unc.edu/pub/Linux/apps/sound/cdrom/>.
  1632.  
  1633.   A few of the CD-ROM drivers do not support playing Audio CDs. Check
  1634.   the documentation file or source code to see if that is the case.
  1635.  
  1636.   Check if the audio can be played through the headphone jack. If so,
  1637.   then the problem is likely related to your sound card. Use a mixer
  1638.   program to set the input device and volume levels. Make sure you have
  1639.   installed an audio cable from the CD-ROM drive to the sound card. Make
  1640.   sure that the kernel sound card driver is installed and working (see
  1641.   the Sound HOWTO).
  1642.  
  1643.  
  1644.   4.6.7.  When All Else Fails
  1645.  
  1646.  
  1647.   If you still have problems, here are some final suggestions for things
  1648.   to try:
  1649.  
  1650.  
  1651.   ╖  carefully re-read this HOWTO document
  1652.  
  1653.   ╖  read the references listed at the end of this document, especially
  1654.      the relevant kernel source files
  1655.  
  1656.   ╖  post a question to one of the comp.os.linux or other usenet
  1657.      newsgroups
  1658.  
  1659.   ╖  send a question to the Linux mailing list
  1660.  
  1661.   ╖  try using the latest Linux kernel
  1662.  
  1663.   ╖  contact your computer dealer
  1664.  
  1665.   ╖  contact the CD-ROM manufacturer
  1666.  
  1667.   ╖  send mail to the maintainer of the relevant kernel driver (look in
  1668.      the file /usr/src/linux/MAINTAINERS)
  1669.  
  1670.   ╖  send mail to me
  1671.  
  1672.   ╖  fire up emacs and type Esc-x doctor :-)
  1673.  
  1674.  
  1675.   5.  Applications
  1676.  
  1677.  
  1678.   This section briefly lists a few of the many applications related to
  1679.   CD-ROM that are available under Linux. Check the Linux Software Map
  1680.   for the latest versions and archive sites.
  1681.  
  1682.  
  1683.   5.1.  Audio CD Players
  1684.  
  1685.  
  1686.   Several programs are available for playing audio CDs, either through a
  1687.   headphone jack or an attached sound card.
  1688.  
  1689.  
  1690.      Workman
  1691.         a graphical player running under X11 and supporting a CD
  1692.         database and many other features
  1693.  
  1694.      WorkBone
  1695.         an interactive text-mode player
  1696.  
  1697.      xcdplayer
  1698.         a simple X11 based player
  1699.  
  1700.      cdplayer
  1701.         a very simple command line based player
  1702.  
  1703.      Xmcd
  1704.         an X11/Motif based player
  1705.  
  1706.      xmitsumi
  1707.         another X11 based player for Mitsumi drives
  1708.  
  1709.      xplaycd
  1710.         another X11 based player, bundled with sound mixer and VU meter
  1711.         programs
  1712.  
  1713.      cdtool
  1714.         command line tools for playing audio CDs
  1715.  
  1716.  
  1717.   Some of these programs are coded to use a specific device file for the
  1718.   CD-ROM (e.g. /dev/cdrom). You may be able to pass the correct device
  1719.   name as a parameter, or you can create a symbolic link in the /dev
  1720.   directory. If sending the CD output to a sound card, you may wish to
  1721.   use a mixer program to set volume settings or select the CD-ROM input
  1722.   for recording.
  1723.  
  1724.  
  1725.   5.2.  PhotoCD
  1726.  
  1727.  
  1728.   PhotoCDs use an ISO-9660 file system containing image files in a
  1729.   proprietary format. Not all CD-ROM drives support reading PhotoCDs.
  1730.  
  1731.   The hpcdtoppm program by Hadmut Danisch converts PhotoCD files to the
  1732.   portable pixmap format. It can be obtained from
  1733.   <ftp://ftp.gwdg.de/pub/linux/hpcdtoppm> or as part of the PBM
  1734.   (portable bit map) utilities, available on many archive sites (look
  1735.   for "pbm" or "netpbm").
  1736.  
  1737.   The photocd program by Gerd Knorr (kraxel@cs.tu-berlin.de) can convert
  1738.   PhotoCD images into Targa or Windows and OS/2 bitmap files.
  1739.  
  1740.   The same author has written the program xpcd, an X11-based program for
  1741.   handling PhotoCD images. You can select the images with a mouse,
  1742.   preview the image in a small window, and load the image with any of
  1743.   the five possible resolutions. You can also mark a part of the Image
  1744.   and load only the selected part. Look for these packages at
  1745.   <ftp://ftp.cs.tu-berlin.de/pub/linux/Local/misc/>.
  1746.  
  1747.   The ImageMagick image file manipulation program also supports PhotoCD
  1748.   files. It is available from
  1749.   <ftp://ftp.x.org/contrib/applications/ImageMagick/>.
  1750.  
  1751.  
  1752.   5.3.  Mkisofs
  1753.  
  1754.  
  1755.   Eric Youngdale's mkisofs package allows creating an ISO-9660 file
  1756.   system on a hard disk partition. This can then be used to assist in
  1757.   creating and testing CD-ROM file systems before mastering discs.
  1758.  
  1759.   The tools for actually writing data to writable CD-ROM drives tend to
  1760.   be vendor specific. They also require writing the data with no
  1761.   interruptions, so a multitasking operating system like Linux is not
  1762.   particularly well suited.
  1763.  
  1764.  
  1765.   5.4.  ISO-9660 Utilities
  1766.  
  1767.  
  1768.   These are some utilities for verifying the format of ISO-9660
  1769.   formatted discs; you may find them useful for testing suspect CDs. The
  1770.   package can be found at
  1771.   <ftp://ftp.cdrom.com/pub/unixfreeware/archive/>. They were written by
  1772.   Bill Siegmund and Rich Morin.
  1773.  
  1774.  
  1775.   6.  Answers to Frequently Asked Questions
  1776.  
  1777.  
  1778.  
  1779.   6.1.  How can a non-root user mount and unmount discs?
  1780.  
  1781.  
  1782.  
  1783.   Most mount commands support the user option. If you make an entry such
  1784.   as the following in /etc/fstab:
  1785.  
  1786.  
  1787.  
  1788.        /dev/sbpcd  /mnt/cdrom   iso9660     user,noauto,ro
  1789.  
  1790.  
  1791.  
  1792.  
  1793.   then an ordinary user will be allowed to mount and unmount the drive
  1794.   using these commands:
  1795.  
  1796.  
  1797.  
  1798.        % mount /mnt/cdrom
  1799.        % umount /mnt/cdrom
  1800.  
  1801.  
  1802.  
  1803.  
  1804.   By default the disc will be mounted with some options that help
  1805.   enforce security (e.g. programs cannot executed, device files are
  1806.   ignored). If this is too restrictive you can use additional options
  1807.   (e.g. the "exec" option will enable execution or programs). See the
  1808.   mount(8) man page for details.
  1809.  
  1810.   Another method is to get the usermount package which allows non-root
  1811.   users to mount and unmount removable devices such as floppies and CD-
  1812.   ROMs, but restricts access to other devices (such as hard disk
  1813.   partitions). It is available on major archive sites.
  1814.  
  1815.   The archive site ftp.cdrom.com has the source file mount.c which
  1816.   allows mounting an unmounting of CD-ROMs (only) by normal users. It
  1817.   runs as a setuid executable.
  1818.  
  1819.  
  1820.   6.2.  Why do I get device is busy when unmounting a CD-ROM?
  1821.  
  1822.  
  1823.   The disc cannot be unmounted if any processes are accessing the drive,
  1824.   including having their default directory set to the mounted
  1825.   filesystem. If you cannot identify the processes using the disc, you
  1826.   can use the fuser command, as shown in the following example.
  1827.  
  1828.  
  1829.  
  1830.        % umount /cdrom
  1831.        umount: /dev/hdd: device is busy
  1832.        % fuser -v /cdrom
  1833.                             USER       PID ACCESS COMMAND
  1834.        /mnt/cdrom           tranter    133 ..c..  bash
  1835.  
  1836.  
  1837.  
  1838.  
  1839.   On some systems you may need to be root when running the fuser command
  1840.   in order to see the processes of other users.
  1841.  
  1842.  
  1843.   6.3.  How do I export a CD-ROM to other hosts over NFS?
  1844.  
  1845.  
  1846.   You need to add an entry to the /etc/exports file. Users on other
  1847.   machines will then be able to mount the device. See the exports(5) man
  1848.   page for details.
  1849.   6.4.  Can I boot Linux from a CD-ROM?
  1850.  
  1851.  
  1852.   When initially installing Linux the most common method is to use a
  1853.   boot floppy. Some distributions allow booting a Linux kernel on CD
  1854.   directly from DOS.
  1855.  
  1856.   With the right CD-ROM, ROM BIOS, and ATAPI CD-ROM drive it is possible
  1857.   to boot directly from CD. The latest version of mkisofs supports
  1858.   creating such disks using the El Torito standard for bootable CDs.
  1859.  
  1860.  
  1861.   6.5.  How can I read digital data from audio CDs?
  1862.  
  1863.  
  1864.   Heiko Eissfeldt (heiko@colossus.escape.de) and Olaf Kindel have
  1865.   written a utility that reads audio data and saves it as .wav format
  1866.   sound files. The package is called cdda2wav.tar.gz and can be found on
  1867.   metalab.unc.edu.
  1868.  
  1869.   Another utility to extract digital audio is cdparanoia available from
  1870.   <http://www.mit.edu/afs/sipb/user/xiphmont/cdparanoia>.
  1871.  
  1872.   Because CD-ROM drives are changing very quickly, it is difficult to
  1873.   list which models support reading digital data. You best bet is to get
  1874.   the latest cdda2wav or cdparanoia package and read the documentation.
  1875.  
  1876.   For more information on this subject, see the web site
  1877.   http://www.tardis.ed.ac.uk/~psyche/cdda/ and the alt.cd-rom FAQ listed
  1878.   in the references section.
  1879.  
  1880.  
  1881.   6.6.  Why doesn't the find command work properly?
  1882.  
  1883.  
  1884.   On ISO-9660 formatted discs without the Rock Ridge Extensions, you
  1885.   need to add the -noleaf option to the find command.  See the find(1)
  1886.   man page for details.
  1887.  
  1888.   (In my experience virtually all recent Linux CDs use the Rock Ridge
  1889.   extensions, so this problem should occur very rarely.)
  1890.  
  1891.  
  1892.   6.7.  Does Linux support any recordable CD-ROM drives?
  1893.  
  1894.  
  1895.   The X-CD-Roast package for Linux is a graphical front-end for using CD
  1896.   writers. The package can be found at metalab.unc.edu in
  1897.   /pub/Linux/utils/disk-management/xcdroast-0.95.tar.gz
  1898.  
  1899.   Also see the Linux CD-Writing HOWTO document, found at
  1900.   <ftp://metalab.unc.edu/pub/Linux/docs/HOWTO/CD-Writing-HOWTO> or
  1901.   <http://metalab.unc.edu/LDP/HOWTO/CD-Writing-HOWTO.html>.
  1902.  
  1903.  
  1904.   6.8.  Why do I get mount: Read-only file system when mounting a CD-
  1905.   ROM?
  1906.  
  1907.  
  1908.   CD-ROM is a read-only media. With some early kernels you could mount a
  1909.   CD-ROM for read/write; attempts to write data to the CD would simple
  1910.   be ignored. As of kernel version 1.1.33 this was corrected so that CD-
  1911.   ROMs must be mounted read only (e.g. using the -r option to mount).
  1912.  
  1913.  
  1914.  
  1915.   6.9.  Why does the disc tray open when I shut down the system?
  1916.  
  1917.  
  1918.   The sbpcd driver supports automatically ejecting the CD when it is
  1919.   unmounted. In some older kernel versions this was the default
  1920.   behaviour. If you shut down the system, a mounted CD will be
  1921.   unmounted, causing it to eject.
  1922.  
  1923.   This feature is for convenience when changing discs. If the tray is
  1924.   open when you mount or read a CD, it will also automatically be
  1925.   closed.
  1926.  
  1927.   I found that this caused problems with a few programs (e.g. cdplay and
  1928.   workbone). As of the 1.1.60 kernel you can control this feature under
  1929.   software control. A sample program is included in the sbpcd
  1930.   documentation file (or use the eject program).  You can also control
  1931.   the default behaviour by editing the kernel source file sbpcd.h.
  1932.  
  1933.  
  1934.   6.10.  I have a "special" CD that can't be mounted
  1935.  
  1936.  
  1937.   The "special" CD is likely an XA disc (like all Photo CDs or "one-
  1938.   offs" created using CD-R drives). Most of the Linux kernel CD-ROM
  1939.   drivers do not support XA discs, although you may be able to find a
  1940.   patch to add support on one of the archive sites.
  1941.  
  1942.   The sbpcd driver does support XA. If you are using this driver you can
  1943.   determine if the disc is XA using the following procedure: go into the
  1944.   file sbpcd.c and enable the display of the "Table of Contents"
  1945.   (DBG_TOC). Build and install the new kernel and boot from it. During
  1946.   each mount the TOC info will be written (either to the console or to a
  1947.   log file). If the first displayed value in the TOC header line is
  1948.   "20", then it is an XA disc. That byte is "00" with normal disks. If
  1949.   the TOC display shows different tracks, that is also a sign that it is
  1950.   an XA disc.
  1951.  
  1952.   (thanks to Eberhard Moenkeberg for the above information)
  1953.  
  1954.   Other possibilities for unreadable CDs are:
  1955.  
  1956.  
  1957.   1. The disc doesn't use an ISO-9660 file system (e.g. some use SunOS
  1958.      or HFS)
  1959.  
  1960.   2. It is an audio CD
  1961.  
  1962.   3. The CD is damaged or defective
  1963.  
  1964.   4. You put it in the drive upside down :-)
  1965.  
  1966.  
  1967.   6.11.  Do multi-platter CD-ROM drives work with Linux?
  1968.  
  1969.  
  1970.   Several users have reported success with SCSI multi-disc CD-ROM
  1971.   changers. You probably need to enable the "Probe all LUNs on each SCSI
  1972.   device" kernel configuration option (this is not necessary if your CD
  1973.   changer is already known to the SCSI-driver. Have a look at
  1974.   /usr/src/linux/drivers/scsi.c).
  1975.  
  1976.   At least one user also had to increase a SCSI timeout value in the
  1977.   kernel driver. A symptom of this is an error message like "wrong fs
  1978.   type, bad option, bad superblock on /dev/sr5, or too many mounted file
  1979.   systems" when trying to mount a CD for the first time, but a second
  1980.   mount immediately afterwards succeeds. To increase the timeout
  1981.   increase the value of IOCTL_TIMEOUT at the beginning of
  1982.   /usr/src/linux/drivers/scsi/sr_ioctl.c and recompile the kernel. A
  1983.   value of 10000 instead of the default 3000 is reported to work with a
  1984.   NEC Multispin 4Xc.
  1985.  
  1986.   It might be necessary to create additional block special files, so
  1987.   that all LUNs can be accessed. A device file is needed for every LUN.
  1988.   So for a 7 disc changer /dev/sr0 to /dev/sr6 are needed (more if you
  1989.   have additional SCSI CD-ROM drives). To create the block special file
  1990.   execute mknod /dev/sr? b 11 ? as root with ? being the required
  1991.   number.
  1992.  
  1993.   The Nakamichi MBR-7 7 disc changer, NEC Multispin 4Xc and Pioneer 12
  1994.   disc changer have been reported to work.
  1995.  
  1996.   EIDE/ATAPI multi-disc changers are also available. The kernel has
  1997.   support for some drives using the CDROM_SELECT_DISC ioctl function.
  1998.   The IDE-CD kernel driver documentation file includes source code for a
  1999.   program to select changer slots, or you can use various utilities such
  2000.   as the eject program described earlier.
  2001.  
  2002.  
  2003.   6.12.  I get "/cdrom: Permission denied" errors
  2004.  
  2005.  
  2006.   Some CDs have root directory file permissions that only allow user
  2007.   root to read them. This is an error on the part of the CD-ROM vendor
  2008.   and is a real inconvenience. A more common occurrence is for certain
  2009.   files or directories not to be world readable. Some people have
  2010.   patched their kernels to work around the problem.
  2011.  
  2012.   Also see the related question on hidden files later in this document.
  2013.  
  2014.  
  2015.   6.13.  How do I interpret IDE CD kernel error messages?
  2016.  
  2017.  
  2018.   What does it mean when I get a kernel message from the IDE CD-ROM
  2019.   driver like "hdxx: code: xx key: x asc: xx ascq: x"?
  2020.  
  2021.   This is an status/error message from the IDE CD-ROM drive. By default
  2022.   the IDECD driver prints out the raw information instead of wasting
  2023.   kernel space with error messages. You can change the default to
  2024.   display the actual error messages by going into
  2025.   /usr/src/linux/drivers/block/ide-cd.c, changing the value of
  2026.   VERBOSE_IDE_CD_ERRORS to 1, and recompiling the kernel.
  2027.  
  2028.  
  2029.   6.14.  How can I tell what speed CD-ROM I have?
  2030.  
  2031.  
  2032.   Here's one way. This command measures how long is takes to read 1500K
  2033.   of data from CD:
  2034.  
  2035.  
  2036.  
  2037.        % time -p dd if=/dev/cdrom of=/dev/null bs=1k count=1500
  2038.        1500+0 records in
  2039.        1500+0 records out
  2040.        real 5.24
  2041.        user 0.03
  2042.        sys 5.07
  2043.  
  2044.  
  2045.  
  2046.  
  2047.   The transfer rate of single speed drives is 150 kilobytes per second,
  2048.   which should take about 10 seconds. At double speed it would take five
  2049.   seconds, quad speed would take 2.5, etc.
  2050.  
  2051.   The "real" time above is probably the best number to look at -- in
  2052.   this case it indicates a double speed drive. You can increase the
  2053.   amount of data transferred to get a more accurate value (in case you
  2054.   were wondering, the data does not get cached). You should probably run
  2055.   the command a few times and take the average.
  2056.  
  2057.   I've also written a small C program that measures and reports CD-ROM
  2058.   data transfer rate; I can send it to you on request.
  2059.  
  2060.  
  2061.   6.15.  My CD-ROM stopped working after Linux was installed
  2062.  
  2063.  
  2064.   The usual symptom is that the boot disk used to initially install
  2065.   Linux recognized your CD-ROM drive, but after Linux was installed on
  2066.   the hard drive or floppy and rebooted it no longer recognizes the CD-
  2067.   ROM.
  2068.  
  2069.   The most common reason for this problem is that with some Linux
  2070.   distributions the kernel that is installed on your hard drive (or
  2071.   floppy) is not necessarily the same one that was on your boot disk.
  2072.   You selected a boot disk that matched your CD-ROM hardware, while the
  2073.   kernel you installed is a "generic" kernel that is lacking CD-ROM
  2074.   support. You can verify this by following the troubleshooting
  2075.   guidelines discussed previously in this document (e.g. start by
  2076.   checking /proc/devices).
  2077.  
  2078.   The solution is to recompile the kernel, ensuring that the drivers for
  2079.   your CD-ROM drive and any others that are needed (e.g. SCSI
  2080.   controller, ISO-9660 file system) are included. See the Kernel HOWTO
  2081.   <http://metalab.unc.edu/LDP/HOWTO/Kernel-HOWTO.html> if you don't know
  2082.   how to do this.
  2083.  
  2084.   If you passed any command line options to the boot disk (e.g.
  2085.   "hdc=cdrom") you need to add these to your boot program configuration
  2086.   file (typically /etc/lilo.conf).
  2087.  
  2088.  
  2089.   6.16.  There are "hidden" files on a CD which I can't read
  2090.  
  2091.  
  2092.   Some CDs have files with the "hidden" bit set on them. Normally these
  2093.   files are not visible. If you mount the CD with the "unhide" option
  2094.   then the files should be accessible (this doesn't seem to be
  2095.   documented anywhere).
  2096.  
  2097.  
  2098.   6.17.  Where is the CD-ROM API documented?
  2099.  
  2100.  
  2101.   If you want to write your own application, such as an audio CD player
  2102.   program, you will need to understand the application programming
  2103.   interface (API) provided by Linux.
  2104.  
  2105.   Originally the CD-ROM kernel drivers used their own ioctl() functions
  2106.   to support features specific to each drive. Header files such as
  2107.   /usr/include/linux/sbpcd.h describe these. Because many of the drivers
  2108.   were based on other drivers, the interfaces, while not identical, have
  2109.   a lot in common.
  2110.  
  2111.   More recently there has been an initiative headed by David van Leeuwen
  2112.   (david@tm.tno.nl) to standardize the API for CD-ROM drives, putting
  2113.   common code in one place and ensuring that all drivers exhibit the
  2114.   same behaviour.  This is documented in the file
  2115.   /usr/src/linux/Documentation/cdrom/cdrom-standard.tex.  Several kernel
  2116.   drivers support this. As of the 2.0 kernel all CD-ROM drivers conform
  2117.   to this API.
  2118.  
  2119.   My book, Linux Multimedia Guide, goes into quite a bit of detail on
  2120.   how to program CD-ROM drives, especially for audio functions. See the
  2121.   end of the References section.
  2122.  
  2123.  
  2124.   6.18.  Why don't I see long filenames on this Windows CD-ROM?
  2125.  
  2126.  
  2127.   If you have a CD-ROM which has long filenames under Windows but not
  2128.   under Linux, it may be formatted using Microsoft's proprietary Joliet
  2129.   filesystem. See the next question for a solution.
  2130.  
  2131.  
  2132.   6.19.  Is Microsoft's Joliet filesystem supported?
  2133.  
  2134.  
  2135.   Microsoft has created an extension to the ISO CD-ROM format called
  2136.   Joliet. It allows for long filenames encoded using the 16-bit UNICODE
  2137.   format.
  2138.  
  2139.   Starting with version 2.0.34 the Linux kernel has support for the
  2140.   Microsoft Joliet file system extensions. You need to enable support
  2141.   for it in the kernel.
  2142.  
  2143.   If you want to display filenames with native language characters from
  2144.   Joliet CD-ROMs correctly on the screen, you need to enable support in
  2145.   the kernel for the appropriate NLS ISO8859 character sets.
  2146.  
  2147.  
  2148.   6.20.  Does Linux support "enhanced" CDs?
  2149.  
  2150.  
  2151.   Some audio CDs are "enhanced" with additional data. Typically you will
  2152.   find that these CDs have the usual audio CD tracks as well as a data
  2153.   track which can be mounted as an ISO-9660 file system.
  2154.  
  2155.   An enhanced CD I examined had Microsoft Windows and Apple Macintosh
  2156.   applications on it (which won't run directly under Linux of course,
  2157.   although I had partial success running the Windows application under
  2158.   the WINE Windows emulator). There were some GIF images which could be
  2159.   viewed using a standard viewer such as xv and some animations in Apple
  2160.   QuickTime format which could be viewed using the xanim program. It was
  2161.   a multisession disk which some very old CD-ROM drives do not support
  2162.   reading. On the disc was a readme.txt file containing an Enhanced CD
  2163.   FAQ.
  2164.  
  2165.  
  2166.   6.21.  Does Linux support DVD-ROM?
  2167.  
  2168.  
  2169.   SCSI and ATAPI compliant DVD-ROM drives should work under Linux for
  2170.   reading discs formatted with an ISO-9660 file system. In other words
  2171.   they will work as a (possibly large) CD-ROM drive.
  2172.  
  2173.   Many DVD-ROM discs use the UDF file system. At the time of writing
  2174.   this was still in development. Kernel patches were available from
  2175.   <http://trylinux.com/projects/udf/>.
  2176.  
  2177.   However, I am not aware of any support for playing MPEG-2 encoded DVD
  2178.   videos either in software or in conjunction with DVD decoder hardware.
  2179.   Apparently the standard document for the encoding format can only be
  2180.   obtained at a high cost and under a non-disclosure agreement. Another
  2181.   issue is that MPEG decoding typically uses proprietary hardware for
  2182.   which the vendor may not be willing to release programming
  2183.   information. These factors may preclude any freely available DVD video
  2184.   software being developed for Linux.
  2185.  
  2186.  
  2187.   6.22.  Does Linux support CD-RW?
  2188.  
  2189.  
  2190.   SCSI and ATAPI compliant CD-RW drives should work under Linux for
  2191.   discs formatted with an ISO-9660 file system. This includes the
  2192.   ability to write to the disc.
  2193.  
  2194.   Many CD-RW discs use the UDF file system. At the time of writing this
  2195.   was still in development. Kernel patches were available from
  2196.   <http://trylinux.com/projects/udf/>.
  2197.  
  2198.  
  2199.   7.  References
  2200.  
  2201.  
  2202.   I have already mentioned the documentation files, typically installed
  2203.   in /usr/src/linux/Documentation/cdrom. These can be a gold mine of
  2204.   useful information.
  2205.  
  2206.   The following Usenet FAQs are posted periodically to news.answers and
  2207.   archived at Internet FTP sites such as  <ftp://rtfm.mit.edu/>:
  2208.  
  2209.  
  2210.   ╖  alt.cd-rom FAQ
  2211.  
  2212.   ╖  comp.periphs.scsi FAQ
  2213.  
  2214.   ╖  Enhanced IDE/Fast-ATA/ATA-2 FAQ
  2215.  
  2216.   Several other Linux HOWTOs have useful information relevant to CD-ROM:
  2217.  
  2218.  
  2219.   ╖  SCSI HOWTO <http://metalab.unc.edu/LDP/HOWTO/unmaintained/SCSI-
  2220.      HOWTO.html>
  2221.  
  2222.   ╖  Hardware Compatibility HOWTO
  2223.      <http://metalab.unc.edu/LDP/HOWTO/Hardware-HOWTO.html>
  2224.  
  2225.   ╖  Sound HOWTO <http://metalab.unc.edu/LDP/HOWTO/Sound-HOWTO.html>
  2226.  
  2227.   ╖  Kernel HOWTO <http://metalab.unc.edu/LDP/HOWTO/Kernel-HOWTO.html>
  2228.  
  2229.   ╖  Distribution HOWTO <http://metalab.unc.edu/LDP/HOWTO/Distribution-
  2230.      HOWTO.html>
  2231.  
  2232.   ╖  CD Writing HOWTO <http://metalab.unc.edu/LDP/HOWTO/CD-Writing.html>
  2233.  
  2234.   At least a dozen companies sell Linux distributions on CD-ROM; most of
  2235.   them are listed in the Distribution HOWTO.
  2236.  
  2237.   The following Usenet news groups cover CD-ROM related topics:
  2238.  
  2239.  
  2240.   ╖  comp.publish.cdrom.hardware
  2241.  
  2242.   ╖  comp.publish.cdrom.multimedia
  2243.  
  2244.  
  2245.   ╖  comp.publish.cdrom.software
  2246.  
  2247.   ╖  comp.sys.ibm.pc.hardware.cd-rom
  2248.  
  2249.   ╖  alt.cd-rom
  2250.  
  2251.   ╖  alt.cd-rom.reviews
  2252.  
  2253.   The comp.os.linux newsgroups are also good sources of Linux specific
  2254.   information.
  2255.  
  2256.   There is a large archive of CD-ROM information and software at
  2257.   <ftp://ftp.cdrom.com/pub/cdrom/>.
  2258.  
  2259.   A FAQ document on IDE and ATA devices can be found at
  2260.   <ftp://rtfm.mit.edu/pub/usenet/news.answers/pc-hardware-faq/enhanced-
  2261.   IDE/> and at  <http://www.seagate.com/techsuppt/faq/faqlist.html>.
  2262.  
  2263.   Western Digital, the company that started the IDE protocol, has
  2264.   information available on the IDE protocol available on their FTP site
  2265.   at  <ftp://fission.dt.wdc.com/pub/standards/atapi>.
  2266.  
  2267.   A web site dedicated to multimedia can be found at
  2268.   <http://viswiz.gmd.de/MultimediaInfo/>. Creative Labs has a web site
  2269.   at  <http://www.creaf.com/>.
  2270.  
  2271.   The Linux Software Map (LSM) is an invaluable reference for locating
  2272.   Linux software. The LSM can be found on various anonymous FTP sites,
  2273.   including  <ftp://metalab.unc.edu/pub/Linux/docs/LSM/> (formerly known
  2274.   as sunsite). There are also various web sites that maintain databases
  2275.   of Linux applications. One such site is  <http://www.freshmeat.net>.
  2276.  
  2277.   The Linux mailing list has a number of "channels" dedicated to
  2278.   different topics. To find out how to join, send a mail message with
  2279.   the word "help" as the message body to majordomo@vger.rutgers.edu
  2280.  
  2281.   The Linux Documentation Project has produced several books on Linux,
  2282.   including Linux Installation and Getting Started. These are freely
  2283.   available by anonymous FTP from major Linux archive sites or can be
  2284.   purchased in hardcopy format.
  2285.  
  2286.   Finally, a shameless plug: If you want to learn a lot more about
  2287.   multimedia under Linux (especially CD-ROM and sound card applications
  2288.   and programming), check out my book Linux Multimedia Guide, ISBN
  2289.   1-56592-219-0, published by O'Reilly and Associates. As well as the
  2290.   original English version, French and Japanese translations are now in
  2291.   print. For details, call 800-998-9938 in North America or check the
  2292.   web page  <http://www.ora.com/catalog/multilinux/noframes.html> or my
  2293.   home page  <http://www.pobox.com/~tranter/>.
  2294.  
  2295.  
  2296.  
  2297.  
  2298.  
  2299.  
  2300.  
  2301.  
  2302.  
  2303.  
  2304.  
  2305.  
  2306.  
  2307.  
  2308.  
  2309.  
  2310.  
  2311.