home *** CD-ROM | disk | FTP | other *** search
Text File | 1999-06-02 | 70.1 KB | 2,311 lines |
- The Linux CD-ROM HOWTO
- Jeff Tranter, tranter@pobox.com
- v1.14, 24 March 1999
-
- This document describes how to install, configure, and use CD-ROM
- drives under Linux. It lists the supported hardware and answers a num¡
- ber of frequently asked questions. The intent is to bring new users up
- to speed quickly and reduce the amount of traffic in the Usenet news
- groups and mailing lists.
- ______________________________________________________________________
-
- Table of Contents
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 1. Introduction
-
- 1.1 Acknowledgments
- 1.2 New Versions Of This Document
- 1.3 Feedback
- 1.4 Distribution Policy
-
- 2. CD-ROM Technology
-
- 3. Supported Hardware
-
- 3.1 ATAPI CD-ROM Drives
- 3.2 SCSI CD-ROM Drives
- 3.3 Proprietary CD-ROM Drives
- 3.4 Parallel Port Drives
- 3.5 Alternate Drivers
-
- 4. Installation
-
- 4.1 Installing the Hardware
- 4.2 Configuring and Building the Kernel
- 4.3 Creating Device Files and Setting Boot Time Parameters
- 4.3.1 Sbpcd Driver
- 4.3.2 Sonycdu535 Driver
- 4.3.3 Cdu31a Driver
- 4.3.4 Aztcd Driver
- 4.3.5 Gscd Driver
- 4.3.6 Mcd Driver
- 4.3.7 Mcdx Driver
- 4.3.8 Cm206 Driver
- 4.3.9 Optcd Driver
- 4.3.10 Sjcd Driver
- 4.3.11 Paride Driver
- 4.3.12 SCSI Driver
- 4.3.13 IDECD Driver
- 4.4 Booting the Linux Kernel
- 4.5 Mounting, Unmounting, and Ejecting Devices
- 4.6 Troubleshooting
- 4.6.1 Step 1: Make sure you are really running the kernel you compiled
- 4.6.2 Step 2: Make sure the proper kernel drivers are compiled in
- 4.6.3 Step 3: Did the kernel detect your drive during booting?
- 4.6.4 Step 4: Can you read data from the drive?
- 4.6.5 Step 5: Can you mount the drive?
- 4.6.6 Debugging Audio Problems
- 4.6.7 When All Else Fails
-
- 5. Applications
-
- 5.1 Audio CD Players
- 5.2 PhotoCD
- 5.3 Mkisofs
- 5.4 ISO-9660 Utilities
-
- 6. Answers to Frequently Asked Questions
-
- 6.1 How can a non-root user mount and unmount discs?
- 6.2 Why do I get device is busy when unmounting a CD-ROM?
- 6.3 How do I export a CD-ROM to other hosts over NFS?
- 6.4 Can I boot Linux from a CD-ROM?
- 6.5 How can I read digital data from audio CDs?
- 6.6 Why doesn't the find command work properly?
- 6.7 Does Linux support any recordable CD-ROM drives?
- 6.8 Why do I get mount: Read-only file system when mounting a CD-ROM?
- 6.9 Why does the disc tray open when I shut down the system?
- 6.10 I have a "special" CD that can't be mounted
- 6.11 Do multi-platter CD-ROM drives work with Linux?
- 6.12 I get "/cdrom: Permission denied" errors
- 6.13 How do I interpret IDE CD kernel error messages?
- 6.14 How can I tell what speed CD-ROM I have?
- 6.15 My CD-ROM stopped working after Linux was installed
- 6.16 There are "hidden" files on a CD which I can't read
- 6.17 Where is the CD-ROM API documented?
- 6.18 Why don't I see long filenames on this Windows CD-ROM?
- 6.19 Is Microsoft's Joliet filesystem supported?
- 6.20 Does Linux support "enhanced" CDs?
- 6.21 Does Linux support DVD-ROM?
- 6.22 Does Linux support CD-RW?
-
- 7. References
-
-
-
- ______________________________________________________________________
-
- 1. Introduction
-
-
- This is the Linux CD-ROM HOWTO. It is intended as a quick reference
- covering everything you need to know to install and configure CD-ROM
- hardware under Linux. Frequently asked questions related to CD-ROM are
- answered, and references are given to other sources of information
- related to CD-ROM applications and technology.
-
-
- 1.1. Acknowledgments
-
-
- Much of this information came from the documentation and source files
- provided with the Linux kernel, the Internet alt.cdrom newsgroup FAQ,
- and input from Linux users.
-
- Thanks to the SGML Tools package, this HOWTO is available in several
- formats, all generated from a common source file.
-
-
- 1.2. New Versions Of This Document
-
-
- New versions of this document will be periodically posted to the
- comp.os.linux.answers newsgroup. They will also be uploaded to various
- anonymous ftp sites that archive such information including
- <ftp://metalab.unc.edu/pub/Linux/docs/HOWTO/>.
-
- Hypertext versions of this and other Linux HOWTOs are available on
- many world-wide web sites, including
- <http://metalab.unc.edu/LDP/HOWTO/>. Most Linux CD-ROM distributions
- include the HOWTOs, often under the /usr/doc directory, and you can
- also buy printed copies from several vendors. Sometimes the HOWTOs
- available from CD-ROM vendors, ftp sites, and printed format are out
- of date. If the date on this HOWTO is more than six months in the
- past, then a newer copy is probably available on the Internet.
-
- Please note that, due to the dynamic nature of the Internet, all web
- and ftp links listed in this document are subject to change.
-
- Translations of this document are available in several languages:
-
- Chinese: <http://www.linux.org.tw/CLDP/CDROM-HOWTO.html>
-
- French: <http://www.freenix.org/unix/linux/HOWTO/>
-
-
- Japanese: <http://jf.linux.or.jp/JF/JF.html/>
-
- Polish: <http://www.jtz.org.pl/Html/CDROM-HOWTO.pl.html>
-
- Spanish: <ftp://ftp.insflug.org/es>
-
- Swedish: <http://www.swe-doc.linux.nu/>
-
- Most translations of this and other Linux HOWTOs can also be found at
- <http://metalab.unc.edu/pub/Linux/docs/HOWTO/translations/> and
- <ftp://metalab.unc.edu/pub/Linux/docs/HOWTO/translations/>. If you
- make a translation of this document into another language, let me know
- and I'll include a reference to it here.
-
-
- 1.3. Feedback
-
-
- I rely on you, the reader, to make this HOWTO useful. If you have any
- suggestions, corrections, or comments, please send them to me,
- tranter@pobox.com, and I will try to incorporate them in the next
- revision.
-
- I am also willing to answer general questions on CD-ROM under Linux,
- as best I can. Before doing so, please read all of the information in
- this HOWTO, and then send me detailed information about the problem.
- Please do not ask me about using CD-ROM drives under operating systems
- other than Linux.
-
- If you publish this document on a CD-ROM or in hardcopy form, a
- complimentary copy would be appreciated; mail me for my postal
- address. Also consider making a donation to the Linux Documentation
- Project to help support free documentation for Linux. Contact the
- Linux HOWTO coordinator, Tim Bynum (linux-howto@metalab.unc.edu), for
- more information.
-
-
- 1.4. Distribution Policy
-
-
- Copyright (c) 1995-1999 by Jeff Tranter. This document may be
- distributed under the terms set forth in the LDP license at
- <http://metalab.unc.edu/LDP/COPYRIGHT.html>.
-
-
- 2. CD-ROM Technology
-
-
-
- "CD-ROM is read-only memory, and audio compact disc system is
- available as package-media of digital data for those purpose. For
- playing audio CD, please insert Head-phone jack."
- --- from a CD-ROM instruction manual
-
-
-
- Don't Panic! The world of CD-ROM technology is not as confusing as
- your instruction manual.
-
- CD-ROM stands for Compact Disc Read-Only Memory, a mass storage medium
- utilizing an optical laser to read microscopic pits on the aluminized
- layer of a polycarbonate disc. The same format is used for audio
- Compact Discs. Because of its high storage capacity, reliability, and
- low cost, CD-ROM has become an increasingly popular storage media.
-
-
- The storage capacity of a CD-ROM disc is approximately 650 megabytes,
- equivalent to over 500 high density 3.5" floppy disks or roughly
- 250,000 typed pages.
-
- First generation drives (known as single speed), provided a transfer
- rate of approximately 150 kilobytes per second. Hardware manufacturers
- then introduced double speed (300 kB/sec), quad speed (600 kB/sec),
- and higher. Current drives operate at up to 40 times speed, although
- the maximum rate is only achievable over certain portions of the disc
- surface.
-
- Most CD-ROM drives use either the Small Computer Systems Interface
- (SCSI), ATAPI enhanced IDE interface, or a vendor proprietary
- interface. They also typically support playing audio CDs via an
- external headphone jack or line level output. Some CDs also allow
- reading the frames of data from audio CDs in digital form.
-
- CD-ROMs are usually formatted with an ISO-9660 (formerly called High
- Sierra) file system. This format restricts filenames to the MS-DOS
- style (8+3 characters). The Rock Ridge Extensions use undefined fields
- in the ISO-9660 standard to support longer filenames and additional
- Unix style information (e.g. file ownership, symbolic links, etc.).
- Microsoft has defined a proprietary ISO file system extension called
- Joliet which supports long filenames using the 16-bit UNICODE
- character encoding.
-
- PhotoCD is a standard developed by Kodak for storing photographic
- images as digital data on a CD-ROM. With appropriate software, you can
- view the images on a computer, manipulate them, or send them to a
- printer. Information can be added to a PhotoCD at a later date; this
- is known as multi-session capability.
-
- CD recorders (CD-R) allow writing onto a special "gold" CD which can
- then be read by any CD-ROM drive. Data can only be written once,
- although using multi-session new data can be appended to a disc. These
- drives are now becoming increasingly affordable.
-
- CD-RW (read/write) drives support multiple writing of data to CDs.
- They use special discs which cannot be read using standard CD-ROM
- drives, although the CD-RW drives themselves can read standard discs.
-
- DVD-ROM expands the storage of a CD to as much as 17 gigabytes. They
- are commonly used as a medium for distributing full length motion
- pictures encoded using the MPEG-2 format. The MPEG video decoding is
- usually performed using specialized decoder hardware.
-
-
- 3. Supported Hardware
-
-
- This section lists the CD-ROM drivers and interfaces that are
- currently supported under Linux. The information here is based on the
- latest stable Linux kernel, which at time of writing was version
- 2.2.4.
-
- This information is only valid for Linux on the Intel platform. Much
- of it is applicable to Linux on other processor architectures as well.
-
-
- 3.1. ATAPI CD-ROM Drives
-
-
- ATAPI (ATA Packet Interface) is a protocol for controlling mass
- storage devices. It builds on the ATA (AT Attachment) interface, the
- official ANSI standard name for the IDE interface developed for hard
- disk drives. ATAPI is commonly used for hard disks, CD-ROM drives,
- tape drives, and other devices. Currently the most popular type of
- interface, it offers most of the functionality of SCSI, without the
- need for an expensive controller or cables.
-
- The Linux kernel has a device driver that should work with any ATAPI
- compliant CD-ROM drive. Vendors shipping compatible drives include
- Aztech, Mitsumi, NEC, Sony, Creative Labs, and Vertos. If you have
- recently purchased a CD-ROM drive, especially if it is quad speed or
- faster, it is almost guaranteed to be IDE/ATAPI.
-
- Linux also has an IDE SCSI emulation kernel driver that makes an
- IDE/ATAPI device appear in software to be a SCSI device, allowing the
- use of a SCSI device driver instead of the native ATAPI driver. This
- is useful if you have an ATAPI device for which no native driver has
- been written (for example, an ATAPI PD-CD or CDR drive); you can then
- use this emulation together with an appropriate SCSI device driver.
-
-
- 3.2. SCSI CD-ROM Drives
-
-
- SCSI (Small Computer Systems Interface) is a popular format for CD-ROM
- drives. Its chief advantages are a reasonably fast transfer rate,
- multi-device capability, and support on a variety of computer
- platforms. Some disadvantages of SCSI are the need for a relatively
- expensive controller card and cables.
-
- Any SCSI CD-ROM drive with a block size of 512 or 2048 bytes should
- work under Linux; this includes the vast majority of CD-ROM drives on
- the market.
-
- You will also need a supported SCSI controller card; see the SCSI
- HOWTO for more information on interface hardware.
-
-
- Note that some CD-ROMs include a proprietary controller with a
- modified interface that is not fully SCSI compatible (e.g. it may not
- support adding other SCSI devices on the bus). These will most likely
- not work under Linux.
-
-
- 3.3. Proprietary CD-ROM Drives
-
-
- Several CD-ROM drives using proprietary interfaces are available; the
- interface is often provided on a sound card. Simple interface cards
- equivalent to that provided on the sound card are also available.
- These drives generally tend to be lower in cost and smaller than SCSI
- drives. Their disadvantages are the lack of standardization and
- expandability.
-
- Note that proprietary interfaces are sometimes erroneously referred to
- as IDE interfaces, because like IDE hard disks, they use a simple
- interface based on the PC/AT bus. To add to the confusion, some
- vendors, most notably Creative Labs, have shipped many different types
- of CD-ROM drives and have offered proprietary, SCSI, and ATAPI
- interfaces on their sound cards.
-
- The table below lists the proprietary CD-ROM drives that are known to
- be supported under Linux. Drivers for additional devices may be
- available in the latest development kernels or as kernel patches. The
- latter can most often be found at
- <ftp://metalab.unc.edu/pub/Linux/kernel/patches/cdrom/>. Also check
- the documentation files included with the kernel distribution, usually
- installed in /usr/src/linux/Documentation/cdrom, for the latest
- information.
- Proprietary CD-ROM Drives
-
- Vendor Model Kernel Driver Notes
- ------ ----- ------------- --------
- Panasonic CR-521 sbpcd Note 1
- Panasonic CR-522 sbpcd Note 1
- Panasonic CR-523 sbpcd Note 1
- Panasonic CR-562 sbpcd Note 1
- Panasonic CR-563 sbpcd Note 1
- Creative Labs CD-200 sbpcd
- IBM External ISA sbpcd Note 2
- Longshine LCS-7260 sbpcd
- Teac CD-55A sbpcd
- Sony CDU-31A cdu31a
- Sony CDU-33A cdu31a
- Sony CDU-535 sonycd535 Note 3
- Sony CDU-531 sonycd535
- Aztech CDA268-01A aztcd Note 4
- Orchid CDS-3110 aztcd
- Okano/Wearnes CDD110 aztcd
- Conrad TXC aztcd
- CyCDROM CR520ie aztcd
- CyCDROM CR940ie aztcd
- GoldStar R420 gscd Note 5
- Philips/LMS CM206 cm206 Note 6
- Mitsumi CRMC LU005S mcd/mcdx Note 7, 8
- Mitsumi FX001 mcd/mcdx Note 7, 8
- Optics Storage Dolphin 8000AT optcd
- Lasermate CR328A optcd
- Sanyo H94A sjcd
- various various isp16 Note 9
-
-
-
- Notes:
-
-
- 1. These drives may be sold under the names Creative Labs, Panasonic,
- Matsushita, or Kotobuki.
-
- 2. This drive is the same as a Panasonic CR-562.
-
- 3. May also be sold under the Procomm name.
-
- 4. This driver is for the CDA268-01A only. Other models, including the
- CDA268-03I and CDA269-031SE are not proprietary and should use the
- IDECD (ATAPI) kernel driver.
-
- 5. May also be sold as part of a Reveal Multimedia Kit.
-
- 6. The Philips CM205 is not supported by this driver, but there is a
- separate alpha release driver available from ftp://metalab.unc.edu
- in /pub/Linux/kernel/patches/cdrom/lmscd0.4.tar.gz
-
- 7. May also be sold under the Radio Shack name.
-
- 8. There are two drivers available. "mcd" is the original one, and
- "mcdx" is a newer driver with more features (but possibly less
- stable).
-
- 9. This driver works with CD-ROM drives that are attached to the
- interface on an ISP16, MAD16 or Mozart sound card.
-
- If a drive listed here is not supported by your kernel, you probably
- need to upgrade to a newer version.
-
- If your drive is not one of the models listed here, particularly if it
- was bought recently and is quad speed or faster, it probably uses the
- IDE/ATAPI interface listed in a previous section. The single most
- common error among Linux CD-ROM users is to assume that any drive
- connected to a SoundBlaster card should use the SBPCD driver. Creative
- Labs and most other vendors are no longer selling proprietary
- interface drives, they are following the standard ATAPI/IDE interface.
-
-
- 3.4. Parallel Port Drives
-
-
- There are external storage devices, including CD-ROM drives, that
- attach to the parallel port of personal computers. In many cases the
- devices internally use an IDE interface in conjunction with an adaptor
- which interfaces the internal IDE bus to the PC parallel port.
-
- Linux has a parallel port IDE driver which supports most parallel port
- devices. At the time of writing it supported devices from the
- following vendors (as well as most no-name and clone drives compatible
- with these): ATEN, Avatar, DataStor, Fidelity International
- Technology, Freecom, Hewlett-Packard, Imation, KT Technology, KingByte
- Information Corp., Maxell, MicroSolutions, OnSpec, Shuttle Technology,
- SyQuest, and ValuStore.
-
- Additional information can be found at
- <http://www.torque.net/parport/>.
-
-
- 3.5. Alternate Drivers
-
-
- There is an alternate kernel driver available for Panasonic/Matsushita
- CR-56x drives written by Zoltan Vorosbaranyi. It can be found at
- <ftp://ftp.honlap.net/pub/linux/pcd/pcd-0.30.tar.gz>.
-
-
- 4. Installation
-
-
- Installation of a CD-ROM under Linux consists of these steps:
-
-
- 1. Installing the hardware.
-
- 2. Configuring and building the Linux kernel.
-
- 3. Creating device files and setting boot time parameters
-
- 4. Booting the Linux kernel.
-
- 5. Mounting the media.
-
- The next sections will cover each of these steps in detail.
-
-
- 4.1. Installing the Hardware
-
-
- Follow the manufacturer's instructions for installing the hardware or
- have your dealer perform the installation. The details will vary
- depending on whether the drive is internal or external and on the type
- of interface used. There are no special installation requirements for
- Linux. You may need to set jumpers on the drive and/or interface card
- for correct operation; some of the kernel drivers include
- documentation files that include this information.
- As explained in the file ide-cd, ATAPI CD-ROMS should be jumpered as
- "single" or "master", and not "slave" when only one IDE device is
- attached to an interface (although this restriction is no longer
- enforced with recent kernels).
-
-
- 4.2. Configuring and Building the Kernel
-
-
- When initially installing Linux from CD-ROM you will likely be using a
- boot and/or root disk provided as part of a Linux distribution. If
- possible, you should choose a boot disk with the kernel driver for
- your CD-ROM device type. If you cannot find a boot disk with the
- necessary CD-ROM driver, you have several options:
-
-
- 1. Boot directly from CD-ROM (if supported by your computer and Linux
- CD)
-
- 2. Install over a network
-
- 3. Boot DOS, and install the Linux files onto your hard disk
-
- 4. Boot DOS, and create a set of floppies to install Linux
-
- 5. Find someone who can build you a boot disk with the needed CD-ROM
- driver
-
- The Linux Installation HOWTO
- <http://metalab.unc.edu/LDP/HOWTO/Installation-HOWTO.html> has more
- information on installing Linux. If you purchased Linux on CD-ROM, it
- likely also came with some installation instructions (that little
- booklet inside the jewel case, and/or files on the CD).
-
- Once Linux has initially been installed, most users will want to
- compile their own kernel, usually for one of these reasons:
-
-
- ╖ to support a CD-ROM drive or other hardware
-
- ╖ to upgrade to a newer kernel release
-
- ╖ to free up memory resources by minimizing the size of the kernel
-
- The Linux Kernel HOWTO <http://metalab.unc.edu/LDP/HOWTO/Kernel-
- HOWTO.html> should be consulted for the details of building a kernel.
- I will just mention here some issues that are specific to CD-ROM
- drives.
-
- Obviously, you need to compile in support for your CD-ROM drive when
- you do a "make config".
-
- If you have an ATAPI CD-ROM drive, you need to answer yes to the
- questions:
-
-
-
- Enhanced IDE/MFM/RLL disk/cdrom/tape support (CONFIG_BLK_DEV_IDE) [Y/n/?]
- Include IDE/ATAPI CDROM support (CONFIG_BLK_DEV_IDECD) [Y/n/?]
-
-
-
-
- For SCSI CD-ROM drives, enable these options:
-
-
- SCSI support (CONFIG_SCSI) [Y/n/m/?]
- SCSI CDROM support (CONFIG_BLK_DEV_SR) [Y/n/m/?]
-
-
-
-
- Also enable support for your SCSI host adapter when prompted, e.g.
-
-
-
- Adaptec AHA152X/2825 support (CONFIG_SCSI_AHA152X) [Y/n/m/?]
-
-
-
-
- For proprietary interface CD-ROM drives, enable the appropriate
- driver. You can use the table listed previously to determine the
- driver to use for your model.
-
- Virtually all CD-ROMs use the ISO-9660 file system, so you must also
- enable:
-
-
-
- ISO 9660 CDROM filesystem support (CONFIG_ISO9660_FS) [Y/n/m/?]
-
-
-
-
- Although not needed for CD-ROM operation, if you have a sound card
- that is supported under Linux you might want to enable and configure
- the kernel sound driver at this time as well. The Sound HOWTO
- <http://metalab.unc.edu/LDP/HOWTO/Sound-HOWTO.html> can be a useful
- reference here.
-
- You should then follow the usual procedure for building the kernel and
- installing it. Don't boot with the new kernel until you create the
- device files and set up any boot time parameters as described in the
- next section.
-
- The ISO-9660 filesystem and almost all of the CD-ROM drivers can be
- built as loadable kernel modules. This scheme allows the kernel
- drivers to be loaded and unloaded without rebooting the kernel,
- freeing up memory. I recommend you get your CD-ROM installation
- running using compiled-in drivers first. How to use modules is
- described in the modules documentation and the Kernel HOWTO
- <http://metalab.unc.edu/LDP/HOWTO/Kernel-HOWTO.html>.
-
- If a drive type listed here is not supported by your kernel, you
- likely need to upgrade to a newer version.
-
- It is possible that you need to use a driver that is distributed
- separately from the kernel source code. This usually involves patching
- the kernel. Again, the Kernel HOWTO
- <http://metalab.unc.edu/LDP/HOWTO/Kernel-HOWTO.html> explains how to
- do this.
-
- Note that there is a menu-based kernel configuration program invoked
- by "make menuconfig" and an X11-based graphical configuration invoked
- as "make xconfig". All three configuration methods offer on-line help.
-
-
- 4.3. Creating Device Files and Setting Boot Time Parameters
-
-
-
- The kernel uses device files to identify which device driver to use.
- If you are running a standard Linux distribution you may have created
- the necessary device files during installation. Under Slackware Linux,
- for example, there is a menu-based setup tool that includes CD-ROM
- setup, and most systems have a /dev/MAKEDEV script. If you don't use
- these methods, you can use the more manual procedure listed in this
- section. Even if you use either of these methods, it is recommended
- that you at least verify the device files against the information in
- this section.
-
- You create the device file by running the shell commands indicated for
- your drive type. This should be done as user root. Note that some
- Linux distributions may use slightly different CD-ROM device names
- from those listed here.
-
- It is recommended that you also create a symbolic link to the CD-ROM
- device to make it easier to remember. For example, for an IDE CD-ROM
- drive that is the second device on the secondary interface, the link
- would be created using
-
-
-
- # ln -s /dev/hdd /dev/cdrom
-
-
-
-
- If you want to play audio CDs, you will need to set the protection on
- the device file (the real file, not the symbolic link to it) to allow
- all users to read, e.g.
-
-
-
- # chmod 664 /dev/hdd
- # ls -l /dev/hdd
- brw-rw-r-- 1 root disk 22, 64 Feb 4 1995 /dev/hdd
-
-
-
-
- When booting Linux, the device drivers attempt to determine whether
- the appropriate devices are present, typically by probing specific
- addresses. Many of the drivers auto-probe at several addresses, but
- because of differences in configuration, possible device conflicts,
- and hardware limitations, the drivers sometimes need help identifying
- the addresses and other parameters. Most drivers support an option on
- the kernel command line to pass this information to the device driver.
- This can be done interactively, or more commonly, configured into your
- boot loader. With LILO, for example, you would add an append command
- such as the following to your /etc/lilo.conf file:
-
-
-
- append = "sbpcd=0x230,SoundBlaster"
-
-
-
-
- See the LILO documentation for more information.
-
- In the next section I discuss issues specific to individual device
- drivers, including device files, boot parameters, and the capabilities
- of the different drivers. You probably only need to read the section
- relevant to your drive type. The documentation files are usually found
- in the directory /usr/src/linux/Documentation/cdrom.
-
- 4.3.1. Sbpcd Driver
-
-
-
- Principal author: Eberhard Moenkeberg (emoenke@gwdg.de)
- Multi-session support: yes (but not all drives)
- Multiple drive support: yes
- Loadable module support: yes
- Reading audio frames: yes (CR-562, CR-563, CD-200 only)
- Auto-probing: yes
- Device file: /dev/sbpcd, major 25
- Configuration file: sbpcd.h
- Kernel config option: Matsushita/Panasonic CDROM support?
- Documentation file: sbpcd
-
-
-
- This driver accepts a kernel command line of the form:
-
-
-
- sbpcd=<io-address>,<interface-type>
-
-
-
-
- where the first parameter is the base address of the device (e.g.
- 0x230), and <interface-type> is one of "SoundBlaster", "LaserMate", or
- "SPEA". See the file sbpcd.h for hints on what interface type to use.
- Using sbpcd=0 disables auto-probing, disabling the driver.
-
- The device file can be created using:
-
-
-
- # mknod /dev/sbpcd b 25 0
-
-
-
-
- Up to four drives per controller are supported. The next three drives
- on the first controller would use minor device numbers 1 through 3.
- If you have more than one controller, create devices with major
- numbers 26, 27, and 28, up to a maximum of 4 controllers (this is 16
- CD-ROM drives in total; hopefully enough for most users :-).
-
- See the file sbpcd for more information on this driver.
-
- If you recently bought a CD-ROM drive, don't assume that if it
- connects to a SoundBlaster card it should use this kernel driver. Most
- CD-ROM drives being sold by Creative Labs are now EIDE/ATAPI drives.
-
-
- 4.3.2. Sonycdu535 Driver
-
-
-
-
-
-
-
-
-
-
-
-
- Principal author: Ken Pizzini (ken@halcyon.com)
- Multi-session support: no
- Multiple drive support: no
- Loadable module support: yes
- Reading audio frames: no
- Auto-probing: no
- Device file: /dev/sonycd535, major 24
- Configuration file: sonycd535.h
- Kernel config option: Sony CDU535 CDROM support?
- Documentation file: sonycd535
-
-
-
- This driver accepts a kernel command line of the form:
-
-
-
- sonycd535=<io-address>
-
-
-
-
- where <io-address> is the base address of the controller (e.g. 0x320).
- Alternatively you can set the address in the file sonycd535.h and
- compile it in.
-
- The device file can be created using:
-
-
-
- # mknod /dev/sonycd535 b 24 0
-
-
-
-
- Some Linux distributions use /dev/sonycd for this device. Older
- versions of the driver used major device number 21; make sure your
- device file is correct.
-
- This driver was previously distributed as a patch but is now part of
- the standard kernel. See the file sonycd535 for more information on
- this driver.
-
-
- 4.3.3. Cdu31a Driver
-
-
-
- Principal author: Corey Minyard (minyard@-rch.cirr.com)
- Multi-session support: yes
- Multiple drive support: no
- Loadable module support: yes
- Reading audio frames: yes
- Auto-probing: no
- Device file: /dev/cdu31a, major 15
- Configuration file: cdu31a.h
- Kernel config option: Sony CDU31A/CDU33A CDROM support?
- Documentation file: cdu31a
-
-
-
- This driver accepts a kernel command line of the form:
-
-
-
-
- cdu31a=<io-address>,<interrupt>,PAS
-
-
-
-
- The first number is the I/O base address of the card (e.g. 0x340). The
- second is the interrupt number to use (0 means to use polled i/o). The
- optional third parameter should be "PAS" if the drive is connected to
- a Pro-Audio Spectrum 16 sound card, otherwise left blank.
-
- If the driver is loaded as a module, it uses a slightly different
- format. When loading the driver using the modprobe or insmod command,
- the parameters take the form:
-
-
-
- cdu31a_port=<io-address> cdu31a_irq=<interrupt>
-
-
-
-
- The base io-address is required while the interrupt number is
- optional.
-
- The device file can be created using:
-
-
-
- # mknod /dev/cdu31a b 15 0
-
-
-
-
- See the file cdu31a for more information on this driver.
-
- Also see the web page put together by Jeffrey Oxenreider
- (zureal@infinet.com) that covers a lot of common problems with these
- drives. It can be found at
- <http://lemures.shinma.symix.com/~zureal/cdu31a.html>.
-
-
- 4.3.4. Aztcd Driver
-
-
-
- Principal author: Werner Zimmermann (zimmerma@rz.fht-esslingen.de)
- Multi-session support: yes
- Multiple drive support: no
- Loadable module support: yes
- Reading audio frames: no
- Auto-probing: no
- Device file: /dev/aztcd0, major 29
- Configuration file: aztcd.h
- Kernel config option: Aztech/Orchid/Okano/Wearnes (non IDE) CDROM support?
- Documentation file: aztcd
-
-
-
- This driver accepts a kernel command line of the form:
-
-
-
- aztcd=<io-address>
-
-
-
- where the parameter is the I/O base address of the card (e.g. 0x340).
-
- The device file can be created using:
-
-
-
- # mknod /dev/aztcd0 b 29 0
-
-
-
-
- Note that this driver is for the CDA268-01A only. Other models,
- including the CDA268-03I and CDA269-031SE are not proprietary and
- should use the IDECD (ATAPI) kernel driver.
-
- See the file aztcd for more information on this driver.
-
-
- 4.3.5. Gscd Driver
-
-
-
- Principal author: Oliver Raupach (raupach@nwfs1.rz.fh-hannover.de)
- Multi-session support: no
- Multiple drive support: no
- Loadable module support: yes
- Reading audio frames: no
- Auto-probing: no
- Device file: /dev/gscd0, major 16
- Configuration file: gscd.h
- Kernel config option: Goldstar R420 CDROM support?
- Documentation file: gscd
-
-
-
- This driver accepts a kernel command line of the form:
-
-
-
- gscd=<io-address>
-
-
-
-
- specifying the I/O base address of the card (e.g. 0x340).
-
- The device file can be created using:
-
-
-
- # mknod /dev/gscd0 b 16 0
-
-
-
-
- See the file gscd and the world-wide web site <http://linux.rz.fh-
- hannover.de/~raupach/> for more information on this driver.
-
-
- 4.3.6. Mcd Driver
-
-
-
-
-
-
- Principal author: Martin (martin@bdsi.com)
- Multi-session support: no
- Multiple drive support: no
- Loadable module support: yes
- Reading audio frames: no
- Auto-probing: no
- Device file: /dev/mcd, major 23
- Configuration file: mcd.h
- Kernel config option: Standard Mitsumi CDROM support?
- Documentation file: mcd
-
-
-
- This is the older driver for Mitsumi drivers that has been available
- for some time. You might want to try the newer mcdx driver, which has
- some new features but is possibly less stable.
-
- This driver accepts a kernel command line of the form:
-
-
-
- mcd=<io-address>,<irq>
-
-
-
-
- specifying the I/O base address of the card (e.g. 0x340) and the IRQ
- request number used.
-
- The device file can be created using:
-
-
-
- # mknod /dev/mcd b 23 0
-
-
-
-
- See the file mcd for more information on this driver.
-
-
- 4.3.7. Mcdx Driver
-
-
-
- Principal author: Heiko Schlittermann
- Multi-session support: yes
- Multiple drive support: yes
- Loadable module support: yes
- Reading audio frames: no (not supported by hardware)
- Auto-probing: no
- Device file: /dev/mcdx0, major 20
- Configuration file: mcdx.h
- Kernel config option: Experimental Mitsumi support?
- Documentation file: mcdx
-
-
-
- This is a newer driver for Mitsumi drivers. The older and possibly
- more stable mcd driver is still available.
-
- This driver accepts a kernel command line of the form:
-
-
-
-
- mcdx=<io-address>,<irq>
-
-
-
-
- specifying the I/O base address of the card (e.g. 0x340) and the IRQ
- request number used.
-
- The device file can be created using:
-
-
-
- # mknod /dev/mcdx0 b 20 0
-
-
-
-
- If you recently bought a Mitsumi CD-ROM drive, don't assume that it
- should use this kernel driver. New Mitsumi drives are now EIDE/ATAPI
- compatible and should use the idecd kernel driver instead.
-
- See the file mcdx for more information on this driver.
-
-
- 4.3.8. Cm206 Driver
-
-
-
- Principal author: David A. van Leeuwen (david@tm.tno.)
- Multi-session support: yes
- Multiple drive support: no
- Loadable module support: yes
- Reading audio frames: no
- Auto-probing: yes
- Device file: /dev/cm206cd, major 32
- Configuration file: cm206.h
- Kernel config option: Philips/LMS CM206 CDROM support?
- Documentation file: cm206
-
-
-
- The driver accepts a kernel command line of the form:
-
-
-
- cm206=<io-address>,<interrupt>
-
-
-
-
- where the first number is the I/O base address of the card (e.g.
- 0x340). The second is the interrupt channel.
-
- The device file can be created using:
-
-
-
- # mknod /dev/cm206cd b 32 0
-
-
-
-
- See the file cm206 for more information on this driver.
-
-
-
- 4.3.9. Optcd Driver
-
-
-
- Principal author: Leo Spiekman (spiekman@dutette.et.tudelft.nl)
- Multi-session support: yes
- Multiple drive support: no
- Loadable module support: yes
- Reading audio frames: no
- Auto-probing: no
- Device file: /dev/optcd0, major 17
- Configuration file: optcd.h
- Kernel config option: Experimental Optics Storage ... CDROM support?
- Documentation file: optcd
-
-
-
- The driver accepts a kernel command line of the form
-
-
-
- optcd=<io-address>
-
-
-
-
- to specify the I/O base address of the card (e.g. 0x340).
-
- The device file can be created using:
-
-
-
- # mknod /dev/optcd0 b 17 0
-
-
-
-
- See the file optcd for more information on this driver.
-
-
- 4.3.10. Sjcd Driver
-
-
-
- Principal author: Vadim V. Model (vadim@rbrf.msk.su)
- Multi-session support: no
- Multiple drive support: no
- Loadable module support: yes
- Reading audio frames: no
- Auto-probing: no
- Device file: /dev/sjcd, major 18
- Configuration file: sjcd.h
- Kernel config option: Experimental Sanyo H94A CDROM support?
- Documentation file: sjcd
-
-
-
- The driver accepts a kernel command line of the form:
-
-
-
- sjcd=<io-address>,<interrupt>,<dma>
-
-
-
-
- indicating the base address, interrupt, and DMA channel to be used
- (e.g. sjcd=0x340,10,5).
-
- The device file can be created using:
-
-
-
- # mknod /dev/sjcd b 18 0
-
-
-
-
- See the file sjcd for more information on this driver.
-
-
- 4.3.11. Paride Driver
-
-
-
- Principal author: Grant R. Guenther (grant@torque.net)
- Multi-session support: no
- Multiple drive support: yes
- Loadable module support: yes
- Reading audio frames: no
- Auto-probing: yes
- Device file: /dev/pcd0, major 46
- Configuration file: bpcd.h
- Kernel config option: Parallel port IDE device support?
- Documentation file: paride.txt
-
-
-
- This is the driver for various types of storage devices that attach to
- a parallel port. Normally the driver will auto-detect the parallel
- port device. The documentation describes parameters that can be used
- to specify the device parameters if auto-detection does not work.
-
- The device file for the first drive can be created using:
-
-
-
- # mknod /dev/pcd0 b 46 0
-
-
-
-
- See the file /usr/src/linux/Documentation/paride.xt for more
- information on this driver. Note that this replaces the bpcd driver
- that was present in older kernels.
-
-
- 4.3.12. SCSI Driver
-
-
-
- Principal author: David Giller
- Multi-session support: yes (depending on drive)
- Multiple drive support: yes
- Loadable module support: yes
- Reading audio frames: no
- Auto-probing: yes
- Device file: /dev/scd0, major 11
- Configuration file: cdrom.h
- Kernel config option: SCSI CDROM support?
- Documentation file: scsi.txt
-
- There are kernel command line option specific to each type of SCSI
- controller. See the SCSI HOWTO for more information.
-
- Multiple drives are supported (up to the limit of the maximum number
- of devices on the SCSI bus). Create device files with major number 11
- and minor numbers starting at zero:
-
-
-
- # mknod /dev/scd0 b 11 0
- # mknod /dev/scd1 b 11 1
-
-
-
-
- While the kernel driver itself does not support reading digital audio
- frames, some SCSI drives have the capability and will work with the
- cdda2wav program (which uses the generic SCSI kernel interface).
-
- Also see the discussion of the IDE SCSI emulation driver earlier in
- this document.
-
-
- 4.3.13. IDECD Driver
-
-
-
- Principal author: Scott Snyder (snyder@fnald0.fnal.gov)
- Multi-session support: yes
- Multiple drive support: yes
- Loadable module support: no
- Reading audio frames: yes (on supported drives)
- Auto-probing: yes
- Device file: /dev/hd{a,b,c,d}, major 22
- Configuration file: cdrom.h
- Kernel config option: Include support for IDE/ATAPI CDROMs?
- Documentation file: ide-cd
-
-
-
- This is the driver for ATAPI CD-ROMS. The driver accepts a kernel
- command line of the form
-
-
-
- hdx=cyls,heads,sects,wpcom,irq
- or
- hdx=cdrom
-
-
-
-
- where hdx can be any of {hda,hdb,hdc,hdd}, or simply hd, for the
- "next" drive in sequence. Only the first three parameters are required
- (cyls,heads,sects). For example hdc=1050,32,64 hdd=cdrom.
-
- Getting the IDE driver to recognize your CD-ROM drive can be tricky,
- especially if you have more than 2 devices or more than one IDE
- controller. Usually all that is required is to pass the right command
- line options from LILO. The file
- /usr/src/linux/Documentation/cdrom/ide-cd explains how to do this.
- Read it carefully.
-
- Recent Linux kernels have better support for multiple IDE devices. If
- you have problems with an older kernel, upgrading may help.
-
- Some IDE controllers have hardware problems which the kernel driver
- can work around. You may need to pass additional parameters to the
- driver to enable this. See the documentation for details.
-
-
- 4.4. Booting the Linux Kernel
-
-
- You can now reboot with the new kernel. Watch for a message such as
- the following indicating that the CD-ROM has been found by the device
- driver (the message will vary depending on the drive type):
-
-
-
- hdd: NEC CD-ROM DRIVE:282, ATAPI CDROM drive
-
-
-
-
- If the bootup messages scroll by too quickly to read, you should be
- able to retrieve them using dmesg or tail /var/log/messages.
-
- If the drive is not found, then a problem has occurred, See the
- section on troubleshooting.
-
-
- 4.5. Mounting, Unmounting, and Ejecting Devices
-
-
- To mount a CD-ROM, insert a disc in the drive, and run the mount
- command as root (this assumes you created a symbolic link to your
- device file as recommended above and that an empty directory
- /mnt/cdrom exists):
-
-
-
- # mount -t iso9660 -r /dev/cdrom /mnt/cdrom
-
-
-
-
- The CD can now be accessed under the directory /mnt/cdrom.
-
- There are other options to the mount command that you may wish to use;
- see the mount(8) man page for details.
-
- You can add an entry to /etc/fstab to automatically mount a CD-ROM
- when Linux boots or to specify parameters to use when it is mounted;
- see the fstab(5) man page.
-
- Note that to play audio CDs you should not try to mount them.
-
- To unmount a CD-ROM, use the umount command as root:
-
-
-
- # umount /mnt/cdrom
-
-
-
-
- The disc can only be unmounted if no processes are currently accessing
- the drive (including having their default directory set to the mounted
- drive). You can then eject the disc. Most drives have an eject button;
- there is also a standalone eject program that allows ejecting CD-ROMs
- under software control.
- Note that you should not eject a disc while it is mounted (this may or
- may not be possible depending on the type of drive). Some CD-ROM
- drivers can automatically eject a CD-ROM when it is unmounted and
- insert the CD tray when a disc is mounted (you can turn this feature
- off when compiling the kernel or by using a software command).
-
- Its possible that after playing an audio CD you may not be able to
- mount a CD-ROM. You need to send a CD audio "stop" command (using a CD
- player program) before trying the mount. This problem only appears to
- occur with the SBPCD driver.
-
- Recent kernels support a kernel-based automounter which provides
- transparent mounting of removable media including CD-ROM. You can find
- the tools needed to use it at
- <ftp://ftp.kernel.org/pub/linux/daemons/autofs/>.
-
-
- 4.6. Troubleshooting
-
-
- If you still encounter problems after following the instructions in
- the HOWTO, here are some things to check. The checks are listed in
- increasing order of complexity. If a check fails, solve the problem
- before moving to the next stage.
-
-
- 4.6.1. Step 1: Make sure you are really running the kernel you com¡
- piled
-
-
- You can check the date stamp on the kernel to see if you are running
- the one that you compiled with CD-ROM support. You can do this with
- the uname command:
-
-
-
- % uname -a
- Linux fizzbin 2.2.4 #1 Tue Mar 232 11:23:21 EST 1999 i586 unknown
-
-
-
-
- or by displaying the file /proc/version:
-
-
-
- % cat /proc/version
- Linux version 2.2.4 (root@fizzbin) (gcc version 2.7.2.3) #1 Tue Mar 23 11:23:21 EST 1999
-
-
-
-
- If the date stamp doesn't match when you compiled the kernel, then you
- are running an old kernel. Did you remember to reboot? If you use
- LILO, did you re-install it (typically by running /sbin/lilo)? If
- booting from floppy, did you create a new boot floppy and use it when
- booting?
-
-
- 4.6.2. Step 2: Make sure the proper kernel drivers are compiled in
-
-
- You can see what drivers are compiled in by looking at /proc/devices:
-
-
-
- % cat /proc/devices
- Character devices:
- 1 mem
- 2 pty
- 3 ttyp
- 4 ttyS
- 5 cua
- 7 vcs
-
- Block devices:
- 3 ide0
- 22 ide1
-
-
-
-
- First look for your CD-ROM device driver. These are all block devices,
- in this case we can see that the idecd driver with major number 22 was
- present.
-
- Also make sure that ISO-9660 filesystem support was compiled in, by
- looking at /proc/filesystems:
-
-
-
- % cat /proc/filesystems
- ext2
- nodev proc
- nodev devpts
- vfat
- iso9660
-
-
-
-
- You can also see what i/o port addresses are being used by a driver
- with the file /proc/ioports:
-
-
-
- howto % cat /proc/ioports
- ...
- 0230-0233 : sbpcd
- ...
-
-
-
-
- If any of the drivers you thought you compiled in are not displayed,
- then something went wrong with the kernel configuration or build.
- Start the installation process again, beginning with configuration and
- building of the kernel.
-
-
- 4.6.3. Step 3: Did the kernel detect your drive during booting?
-
-
- Make sure that the CD-ROM device was detected when the kernel booted.
- You should have seen a message on bootup. If the messages scrolled off
- the screen, you can usually recall them using the dmesg command:
-
-
-
- % dmesg
-
-
- or
-
-
-
- % tail /var/log/messages
-
-
-
-
- If your drive was not found then something is wrong. Make sure it is
- powered on and all cables are connected. If your drive has hardware
- jumpers for addressing, check that they are set correctly (e.g. drive
- 0 if you have only one drive). ATAPI CD-ROMS must be jumpered as
- "single" or "master", and not "slave" when only one IDE device is
- attached to an interface. If the drive works under DOS then you can be
- reasonably confident that the hardware is working.
-
- Many kernel drivers using auto-probing, but some do not, and in any
- case the probing is not always reliable. Use the kernel command line
- option listed for your kernel driver type. You may want to try several
- different values if you are not sure of the i/o address or other
- parameters. LILO can be (and usually is) configured to allow you to
- enter the parameters manually when booting.
-
- Another possibility is that you used the wrong kernel driver for your
- CD-ROM driver. Some documentation may refer to proprietary interfaces
- as IDE, leading some to mistakenly believe they are ATAPI drives.
-
- Another possibility is that your drive (or interface card) is one of
- the "compatible" type that requires initialization by the DOS driver.
- Try booting DOS and loading the vendor supplied DOS device driver.
- Then soft boot Linux using Control-Alt-Delete.
-
- If your drive is not listed in this document, it is possible that
- there are no drivers for it available under Linux. You can check with
- some of the references listed at the end of this document for
- assistance.
-
-
- 4.6.4. Step 4: Can you read data from the drive?
-
-
- Try reading from the CD-ROM drive. Typing the following command should
- cause the drive activity light (if present) to come on and no errors
- should be reported. Use whatever device file is appropriate for your
- drive and make sure a CD-ROM is inserted; use Control-C to exit.
-
-
-
- # dd if=/dev/cdrom of=/dev/null bs=2048
- ^C
- 124+0 records in
- 124+0 records out
-
-
-
-
- If this works, then the kernel is communicating with the drive and you
- can move on to step 5.
-
- If not, then a possible cause is the device file. Make sure than the
- device file in the /dev directory has the correct major and minor
- numbers as listed previously for your drive type. Check that the
- permissions on the device file allow reading and writing.
-
-
- A remote possibility is a hardware problem. Try testing the drive
- under another operating system, if possible, to determine if this
- could be the case.
-
-
- 4.6.5. Step 5: Can you mount the drive?
-
-
- If you can read from the drive but cannot mount it, first verify that
- you compiled in ISO-9660 file system support by reading
- /proc/filesystems, as described previously.
-
- Make sure you are mounting the drive with the "-t iso9660" and "-r"
- options and that a known good ISO-9660 CD-ROM (not Audio CD) is
- inserted in the drive. You normally must mount drives as user root.
-
- Make sure that the mount point exists and is an empty directory.
-
- If you are automatically mounting the CD-ROM on bootup, make sure that
- you have correct entries in the /etc/fstab file.
-
- If you are running the syslog daemon, there may be error messages from
- the kernel that you are not seeing. Try using the "dmesg" command:
-
-
-
- % dmesg
- SBPCD: sbpcd_open: no disk in drive
-
-
-
-
- There may also be errors logged to files in /var/log, depending on how
- your system is configured.
-
-
- 4.6.6. Debugging Audio Problems
-
-
- If the drive works with CD-ROMs, but not for playing audio CDs, here
- are some possible solutions.
-
- You need an application program to play audio CDs. Some applications
- may be broken or may not be compatible with your drive. Try other
- applications and/or try recompiling them yourself. A good place to
- look for software is
- <ftp://metalab.unc.edu/pub/Linux/apps/sound/cdrom/>.
-
- A few of the CD-ROM drivers do not support playing Audio CDs. Check
- the documentation file or source code to see if that is the case.
-
- Check if the audio can be played through the headphone jack. If so,
- then the problem is likely related to your sound card. Use a mixer
- program to set the input device and volume levels. Make sure you have
- installed an audio cable from the CD-ROM drive to the sound card. Make
- sure that the kernel sound card driver is installed and working (see
- the Sound HOWTO).
-
-
- 4.6.7. When All Else Fails
-
-
- If you still have problems, here are some final suggestions for things
- to try:
-
-
- ╖ carefully re-read this HOWTO document
-
- ╖ read the references listed at the end of this document, especially
- the relevant kernel source files
-
- ╖ post a question to one of the comp.os.linux or other usenet
- newsgroups
-
- ╖ send a question to the Linux mailing list
-
- ╖ try using the latest Linux kernel
-
- ╖ contact your computer dealer
-
- ╖ contact the CD-ROM manufacturer
-
- ╖ send mail to the maintainer of the relevant kernel driver (look in
- the file /usr/src/linux/MAINTAINERS)
-
- ╖ send mail to me
-
- ╖ fire up emacs and type Esc-x doctor :-)
-
-
- 5. Applications
-
-
- This section briefly lists a few of the many applications related to
- CD-ROM that are available under Linux. Check the Linux Software Map
- for the latest versions and archive sites.
-
-
- 5.1. Audio CD Players
-
-
- Several programs are available for playing audio CDs, either through a
- headphone jack or an attached sound card.
-
-
- Workman
- a graphical player running under X11 and supporting a CD
- database and many other features
-
- WorkBone
- an interactive text-mode player
-
- xcdplayer
- a simple X11 based player
-
- cdplayer
- a very simple command line based player
-
- Xmcd
- an X11/Motif based player
-
- xmitsumi
- another X11 based player for Mitsumi drives
-
- xplaycd
- another X11 based player, bundled with sound mixer and VU meter
- programs
-
- cdtool
- command line tools for playing audio CDs
-
-
- Some of these programs are coded to use a specific device file for the
- CD-ROM (e.g. /dev/cdrom). You may be able to pass the correct device
- name as a parameter, or you can create a symbolic link in the /dev
- directory. If sending the CD output to a sound card, you may wish to
- use a mixer program to set volume settings or select the CD-ROM input
- for recording.
-
-
- 5.2. PhotoCD
-
-
- PhotoCDs use an ISO-9660 file system containing image files in a
- proprietary format. Not all CD-ROM drives support reading PhotoCDs.
-
- The hpcdtoppm program by Hadmut Danisch converts PhotoCD files to the
- portable pixmap format. It can be obtained from
- <ftp://ftp.gwdg.de/pub/linux/hpcdtoppm> or as part of the PBM
- (portable bit map) utilities, available on many archive sites (look
- for "pbm" or "netpbm").
-
- The photocd program by Gerd Knorr (kraxel@cs.tu-berlin.de) can convert
- PhotoCD images into Targa or Windows and OS/2 bitmap files.
-
- The same author has written the program xpcd, an X11-based program for
- handling PhotoCD images. You can select the images with a mouse,
- preview the image in a small window, and load the image with any of
- the five possible resolutions. You can also mark a part of the Image
- and load only the selected part. Look for these packages at
- <ftp://ftp.cs.tu-berlin.de/pub/linux/Local/misc/>.
-
- The ImageMagick image file manipulation program also supports PhotoCD
- files. It is available from
- <ftp://ftp.x.org/contrib/applications/ImageMagick/>.
-
-
- 5.3. Mkisofs
-
-
- Eric Youngdale's mkisofs package allows creating an ISO-9660 file
- system on a hard disk partition. This can then be used to assist in
- creating and testing CD-ROM file systems before mastering discs.
-
- The tools for actually writing data to writable CD-ROM drives tend to
- be vendor specific. They also require writing the data with no
- interruptions, so a multitasking operating system like Linux is not
- particularly well suited.
-
-
- 5.4. ISO-9660 Utilities
-
-
- These are some utilities for verifying the format of ISO-9660
- formatted discs; you may find them useful for testing suspect CDs. The
- package can be found at
- <ftp://ftp.cdrom.com/pub/unixfreeware/archive/>. They were written by
- Bill Siegmund and Rich Morin.
-
-
- 6. Answers to Frequently Asked Questions
-
-
-
- 6.1. How can a non-root user mount and unmount discs?
-
-
-
- Most mount commands support the user option. If you make an entry such
- as the following in /etc/fstab:
-
-
-
- /dev/sbpcd /mnt/cdrom iso9660 user,noauto,ro
-
-
-
-
- then an ordinary user will be allowed to mount and unmount the drive
- using these commands:
-
-
-
- % mount /mnt/cdrom
- % umount /mnt/cdrom
-
-
-
-
- By default the disc will be mounted with some options that help
- enforce security (e.g. programs cannot executed, device files are
- ignored). If this is too restrictive you can use additional options
- (e.g. the "exec" option will enable execution or programs). See the
- mount(8) man page for details.
-
- Another method is to get the usermount package which allows non-root
- users to mount and unmount removable devices such as floppies and CD-
- ROMs, but restricts access to other devices (such as hard disk
- partitions). It is available on major archive sites.
-
- The archive site ftp.cdrom.com has the source file mount.c which
- allows mounting an unmounting of CD-ROMs (only) by normal users. It
- runs as a setuid executable.
-
-
- 6.2. Why do I get device is busy when unmounting a CD-ROM?
-
-
- The disc cannot be unmounted if any processes are accessing the drive,
- including having their default directory set to the mounted
- filesystem. If you cannot identify the processes using the disc, you
- can use the fuser command, as shown in the following example.
-
-
-
- % umount /cdrom
- umount: /dev/hdd: device is busy
- % fuser -v /cdrom
- USER PID ACCESS COMMAND
- /mnt/cdrom tranter 133 ..c.. bash
-
-
-
-
- On some systems you may need to be root when running the fuser command
- in order to see the processes of other users.
-
-
- 6.3. How do I export a CD-ROM to other hosts over NFS?
-
-
- You need to add an entry to the /etc/exports file. Users on other
- machines will then be able to mount the device. See the exports(5) man
- page for details.
- 6.4. Can I boot Linux from a CD-ROM?
-
-
- When initially installing Linux the most common method is to use a
- boot floppy. Some distributions allow booting a Linux kernel on CD
- directly from DOS.
-
- With the right CD-ROM, ROM BIOS, and ATAPI CD-ROM drive it is possible
- to boot directly from CD. The latest version of mkisofs supports
- creating such disks using the El Torito standard for bootable CDs.
-
-
- 6.5. How can I read digital data from audio CDs?
-
-
- Heiko Eissfeldt (heiko@colossus.escape.de) and Olaf Kindel have
- written a utility that reads audio data and saves it as .wav format
- sound files. The package is called cdda2wav.tar.gz and can be found on
- metalab.unc.edu.
-
- Another utility to extract digital audio is cdparanoia available from
- <http://www.mit.edu/afs/sipb/user/xiphmont/cdparanoia>.
-
- Because CD-ROM drives are changing very quickly, it is difficult to
- list which models support reading digital data. You best bet is to get
- the latest cdda2wav or cdparanoia package and read the documentation.
-
- For more information on this subject, see the web site
- http://www.tardis.ed.ac.uk/~psyche/cdda/ and the alt.cd-rom FAQ listed
- in the references section.
-
-
- 6.6. Why doesn't the find command work properly?
-
-
- On ISO-9660 formatted discs without the Rock Ridge Extensions, you
- need to add the -noleaf option to the find command. See the find(1)
- man page for details.
-
- (In my experience virtually all recent Linux CDs use the Rock Ridge
- extensions, so this problem should occur very rarely.)
-
-
- 6.7. Does Linux support any recordable CD-ROM drives?
-
-
- The X-CD-Roast package for Linux is a graphical front-end for using CD
- writers. The package can be found at metalab.unc.edu in
- /pub/Linux/utils/disk-management/xcdroast-0.95.tar.gz
-
- Also see the Linux CD-Writing HOWTO document, found at
- <ftp://metalab.unc.edu/pub/Linux/docs/HOWTO/CD-Writing-HOWTO> or
- <http://metalab.unc.edu/LDP/HOWTO/CD-Writing-HOWTO.html>.
-
-
- 6.8. Why do I get mount: Read-only file system when mounting a CD-
- ROM?
-
-
- CD-ROM is a read-only media. With some early kernels you could mount a
- CD-ROM for read/write; attempts to write data to the CD would simple
- be ignored. As of kernel version 1.1.33 this was corrected so that CD-
- ROMs must be mounted read only (e.g. using the -r option to mount).
-
-
-
- 6.9. Why does the disc tray open when I shut down the system?
-
-
- The sbpcd driver supports automatically ejecting the CD when it is
- unmounted. In some older kernel versions this was the default
- behaviour. If you shut down the system, a mounted CD will be
- unmounted, causing it to eject.
-
- This feature is for convenience when changing discs. If the tray is
- open when you mount or read a CD, it will also automatically be
- closed.
-
- I found that this caused problems with a few programs (e.g. cdplay and
- workbone). As of the 1.1.60 kernel you can control this feature under
- software control. A sample program is included in the sbpcd
- documentation file (or use the eject program). You can also control
- the default behaviour by editing the kernel source file sbpcd.h.
-
-
- 6.10. I have a "special" CD that can't be mounted
-
-
- The "special" CD is likely an XA disc (like all Photo CDs or "one-
- offs" created using CD-R drives). Most of the Linux kernel CD-ROM
- drivers do not support XA discs, although you may be able to find a
- patch to add support on one of the archive sites.
-
- The sbpcd driver does support XA. If you are using this driver you can
- determine if the disc is XA using the following procedure: go into the
- file sbpcd.c and enable the display of the "Table of Contents"
- (DBG_TOC). Build and install the new kernel and boot from it. During
- each mount the TOC info will be written (either to the console or to a
- log file). If the first displayed value in the TOC header line is
- "20", then it is an XA disc. That byte is "00" with normal disks. If
- the TOC display shows different tracks, that is also a sign that it is
- an XA disc.
-
- (thanks to Eberhard Moenkeberg for the above information)
-
- Other possibilities for unreadable CDs are:
-
-
- 1. The disc doesn't use an ISO-9660 file system (e.g. some use SunOS
- or HFS)
-
- 2. It is an audio CD
-
- 3. The CD is damaged or defective
-
- 4. You put it in the drive upside down :-)
-
-
- 6.11. Do multi-platter CD-ROM drives work with Linux?
-
-
- Several users have reported success with SCSI multi-disc CD-ROM
- changers. You probably need to enable the "Probe all LUNs on each SCSI
- device" kernel configuration option (this is not necessary if your CD
- changer is already known to the SCSI-driver. Have a look at
- /usr/src/linux/drivers/scsi.c).
-
- At least one user also had to increase a SCSI timeout value in the
- kernel driver. A symptom of this is an error message like "wrong fs
- type, bad option, bad superblock on /dev/sr5, or too many mounted file
- systems" when trying to mount a CD for the first time, but a second
- mount immediately afterwards succeeds. To increase the timeout
- increase the value of IOCTL_TIMEOUT at the beginning of
- /usr/src/linux/drivers/scsi/sr_ioctl.c and recompile the kernel. A
- value of 10000 instead of the default 3000 is reported to work with a
- NEC Multispin 4Xc.
-
- It might be necessary to create additional block special files, so
- that all LUNs can be accessed. A device file is needed for every LUN.
- So for a 7 disc changer /dev/sr0 to /dev/sr6 are needed (more if you
- have additional SCSI CD-ROM drives). To create the block special file
- execute mknod /dev/sr? b 11 ? as root with ? being the required
- number.
-
- The Nakamichi MBR-7 7 disc changer, NEC Multispin 4Xc and Pioneer 12
- disc changer have been reported to work.
-
- EIDE/ATAPI multi-disc changers are also available. The kernel has
- support for some drives using the CDROM_SELECT_DISC ioctl function.
- The IDE-CD kernel driver documentation file includes source code for a
- program to select changer slots, or you can use various utilities such
- as the eject program described earlier.
-
-
- 6.12. I get "/cdrom: Permission denied" errors
-
-
- Some CDs have root directory file permissions that only allow user
- root to read them. This is an error on the part of the CD-ROM vendor
- and is a real inconvenience. A more common occurrence is for certain
- files or directories not to be world readable. Some people have
- patched their kernels to work around the problem.
-
- Also see the related question on hidden files later in this document.
-
-
- 6.13. How do I interpret IDE CD kernel error messages?
-
-
- What does it mean when I get a kernel message from the IDE CD-ROM
- driver like "hdxx: code: xx key: x asc: xx ascq: x"?
-
- This is an status/error message from the IDE CD-ROM drive. By default
- the IDECD driver prints out the raw information instead of wasting
- kernel space with error messages. You can change the default to
- display the actual error messages by going into
- /usr/src/linux/drivers/block/ide-cd.c, changing the value of
- VERBOSE_IDE_CD_ERRORS to 1, and recompiling the kernel.
-
-
- 6.14. How can I tell what speed CD-ROM I have?
-
-
- Here's one way. This command measures how long is takes to read 1500K
- of data from CD:
-
-
-
- % time -p dd if=/dev/cdrom of=/dev/null bs=1k count=1500
- 1500+0 records in
- 1500+0 records out
- real 5.24
- user 0.03
- sys 5.07
-
-
-
-
- The transfer rate of single speed drives is 150 kilobytes per second,
- which should take about 10 seconds. At double speed it would take five
- seconds, quad speed would take 2.5, etc.
-
- The "real" time above is probably the best number to look at -- in
- this case it indicates a double speed drive. You can increase the
- amount of data transferred to get a more accurate value (in case you
- were wondering, the data does not get cached). You should probably run
- the command a few times and take the average.
-
- I've also written a small C program that measures and reports CD-ROM
- data transfer rate; I can send it to you on request.
-
-
- 6.15. My CD-ROM stopped working after Linux was installed
-
-
- The usual symptom is that the boot disk used to initially install
- Linux recognized your CD-ROM drive, but after Linux was installed on
- the hard drive or floppy and rebooted it no longer recognizes the CD-
- ROM.
-
- The most common reason for this problem is that with some Linux
- distributions the kernel that is installed on your hard drive (or
- floppy) is not necessarily the same one that was on your boot disk.
- You selected a boot disk that matched your CD-ROM hardware, while the
- kernel you installed is a "generic" kernel that is lacking CD-ROM
- support. You can verify this by following the troubleshooting
- guidelines discussed previously in this document (e.g. start by
- checking /proc/devices).
-
- The solution is to recompile the kernel, ensuring that the drivers for
- your CD-ROM drive and any others that are needed (e.g. SCSI
- controller, ISO-9660 file system) are included. See the Kernel HOWTO
- <http://metalab.unc.edu/LDP/HOWTO/Kernel-HOWTO.html> if you don't know
- how to do this.
-
- If you passed any command line options to the boot disk (e.g.
- "hdc=cdrom") you need to add these to your boot program configuration
- file (typically /etc/lilo.conf).
-
-
- 6.16. There are "hidden" files on a CD which I can't read
-
-
- Some CDs have files with the "hidden" bit set on them. Normally these
- files are not visible. If you mount the CD with the "unhide" option
- then the files should be accessible (this doesn't seem to be
- documented anywhere).
-
-
- 6.17. Where is the CD-ROM API documented?
-
-
- If you want to write your own application, such as an audio CD player
- program, you will need to understand the application programming
- interface (API) provided by Linux.
-
- Originally the CD-ROM kernel drivers used their own ioctl() functions
- to support features specific to each drive. Header files such as
- /usr/include/linux/sbpcd.h describe these. Because many of the drivers
- were based on other drivers, the interfaces, while not identical, have
- a lot in common.
-
- More recently there has been an initiative headed by David van Leeuwen
- (david@tm.tno.nl) to standardize the API for CD-ROM drives, putting
- common code in one place and ensuring that all drivers exhibit the
- same behaviour. This is documented in the file
- /usr/src/linux/Documentation/cdrom/cdrom-standard.tex. Several kernel
- drivers support this. As of the 2.0 kernel all CD-ROM drivers conform
- to this API.
-
- My book, Linux Multimedia Guide, goes into quite a bit of detail on
- how to program CD-ROM drives, especially for audio functions. See the
- end of the References section.
-
-
- 6.18. Why don't I see long filenames on this Windows CD-ROM?
-
-
- If you have a CD-ROM which has long filenames under Windows but not
- under Linux, it may be formatted using Microsoft's proprietary Joliet
- filesystem. See the next question for a solution.
-
-
- 6.19. Is Microsoft's Joliet filesystem supported?
-
-
- Microsoft has created an extension to the ISO CD-ROM format called
- Joliet. It allows for long filenames encoded using the 16-bit UNICODE
- format.
-
- Starting with version 2.0.34 the Linux kernel has support for the
- Microsoft Joliet file system extensions. You need to enable support
- for it in the kernel.
-
- If you want to display filenames with native language characters from
- Joliet CD-ROMs correctly on the screen, you need to enable support in
- the kernel for the appropriate NLS ISO8859 character sets.
-
-
- 6.20. Does Linux support "enhanced" CDs?
-
-
- Some audio CDs are "enhanced" with additional data. Typically you will
- find that these CDs have the usual audio CD tracks as well as a data
- track which can be mounted as an ISO-9660 file system.
-
- An enhanced CD I examined had Microsoft Windows and Apple Macintosh
- applications on it (which won't run directly under Linux of course,
- although I had partial success running the Windows application under
- the WINE Windows emulator). There were some GIF images which could be
- viewed using a standard viewer such as xv and some animations in Apple
- QuickTime format which could be viewed using the xanim program. It was
- a multisession disk which some very old CD-ROM drives do not support
- reading. On the disc was a readme.txt file containing an Enhanced CD
- FAQ.
-
-
- 6.21. Does Linux support DVD-ROM?
-
-
- SCSI and ATAPI compliant DVD-ROM drives should work under Linux for
- reading discs formatted with an ISO-9660 file system. In other words
- they will work as a (possibly large) CD-ROM drive.
-
- Many DVD-ROM discs use the UDF file system. At the time of writing
- this was still in development. Kernel patches were available from
- <http://trylinux.com/projects/udf/>.
-
- However, I am not aware of any support for playing MPEG-2 encoded DVD
- videos either in software or in conjunction with DVD decoder hardware.
- Apparently the standard document for the encoding format can only be
- obtained at a high cost and under a non-disclosure agreement. Another
- issue is that MPEG decoding typically uses proprietary hardware for
- which the vendor may not be willing to release programming
- information. These factors may preclude any freely available DVD video
- software being developed for Linux.
-
-
- 6.22. Does Linux support CD-RW?
-
-
- SCSI and ATAPI compliant CD-RW drives should work under Linux for
- discs formatted with an ISO-9660 file system. This includes the
- ability to write to the disc.
-
- Many CD-RW discs use the UDF file system. At the time of writing this
- was still in development. Kernel patches were available from
- <http://trylinux.com/projects/udf/>.
-
-
- 7. References
-
-
- I have already mentioned the documentation files, typically installed
- in /usr/src/linux/Documentation/cdrom. These can be a gold mine of
- useful information.
-
- The following Usenet FAQs are posted periodically to news.answers and
- archived at Internet FTP sites such as <ftp://rtfm.mit.edu/>:
-
-
- ╖ alt.cd-rom FAQ
-
- ╖ comp.periphs.scsi FAQ
-
- ╖ Enhanced IDE/Fast-ATA/ATA-2 FAQ
-
- Several other Linux HOWTOs have useful information relevant to CD-ROM:
-
-
- ╖ SCSI HOWTO <http://metalab.unc.edu/LDP/HOWTO/unmaintained/SCSI-
- HOWTO.html>
-
- ╖ Hardware Compatibility HOWTO
- <http://metalab.unc.edu/LDP/HOWTO/Hardware-HOWTO.html>
-
- ╖ Sound HOWTO <http://metalab.unc.edu/LDP/HOWTO/Sound-HOWTO.html>
-
- ╖ Kernel HOWTO <http://metalab.unc.edu/LDP/HOWTO/Kernel-HOWTO.html>
-
- ╖ Distribution HOWTO <http://metalab.unc.edu/LDP/HOWTO/Distribution-
- HOWTO.html>
-
- ╖ CD Writing HOWTO <http://metalab.unc.edu/LDP/HOWTO/CD-Writing.html>
-
- At least a dozen companies sell Linux distributions on CD-ROM; most of
- them are listed in the Distribution HOWTO.
-
- The following Usenet news groups cover CD-ROM related topics:
-
-
- ╖ comp.publish.cdrom.hardware
-
- ╖ comp.publish.cdrom.multimedia
-
-
- ╖ comp.publish.cdrom.software
-
- ╖ comp.sys.ibm.pc.hardware.cd-rom
-
- ╖ alt.cd-rom
-
- ╖ alt.cd-rom.reviews
-
- The comp.os.linux newsgroups are also good sources of Linux specific
- information.
-
- There is a large archive of CD-ROM information and software at
- <ftp://ftp.cdrom.com/pub/cdrom/>.
-
- A FAQ document on IDE and ATA devices can be found at
- <ftp://rtfm.mit.edu/pub/usenet/news.answers/pc-hardware-faq/enhanced-
- IDE/> and at <http://www.seagate.com/techsuppt/faq/faqlist.html>.
-
- Western Digital, the company that started the IDE protocol, has
- information available on the IDE protocol available on their FTP site
- at <ftp://fission.dt.wdc.com/pub/standards/atapi>.
-
- A web site dedicated to multimedia can be found at
- <http://viswiz.gmd.de/MultimediaInfo/>. Creative Labs has a web site
- at <http://www.creaf.com/>.
-
- The Linux Software Map (LSM) is an invaluable reference for locating
- Linux software. The LSM can be found on various anonymous FTP sites,
- including <ftp://metalab.unc.edu/pub/Linux/docs/LSM/> (formerly known
- as sunsite). There are also various web sites that maintain databases
- of Linux applications. One such site is <http://www.freshmeat.net>.
-
- The Linux mailing list has a number of "channels" dedicated to
- different topics. To find out how to join, send a mail message with
- the word "help" as the message body to majordomo@vger.rutgers.edu
-
- The Linux Documentation Project has produced several books on Linux,
- including Linux Installation and Getting Started. These are freely
- available by anonymous FTP from major Linux archive sites or can be
- purchased in hardcopy format.
-
- Finally, a shameless plug: If you want to learn a lot more about
- multimedia under Linux (especially CD-ROM and sound card applications
- and programming), check out my book Linux Multimedia Guide, ISBN
- 1-56592-219-0, published by O'Reilly and Associates. As well as the
- original English version, French and Japanese translations are now in
- print. For details, call 800-998-9938 in North America or check the
- web page <http://www.ora.com/catalog/multilinux/noframes.html> or my
- home page <http://www.pobox.com/~tranter/>.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-