2147 lines
102 KiB
Plaintext
2147 lines
102 KiB
Plaintext
|
The Linux CD-ROM HOWTO
|
|||
|
|
|||
|
Jeff Tranter
|
|||
|
|
|||
|
tranter@pobox.com
|
|||
|
|
|||
|
v1.17, 18 July 2001
|
|||
|
Revision History
|
|||
|
Revision 1.17 2001-07-18 Revised by: jjt
|
|||
|
Merged in some questions from the no longer maintained ATAPI/IDE CD-ROM FAQ
|
|||
|
by Mathew Kirsch. Added note on the Red Hat 7.1 DMA issue.
|
|||
|
Revision 1.16 2001-07-16 Revised by: jjt
|
|||
|
Relicensed under the GFDL.
|
|||
|
Revision 1.15 2001-05-11 Revised by: jjt
|
|||
|
|
|||
|
|
|||
|
This document describes how to install, configure, and use CD-ROM drives
|
|||
|
under Linux. It lists the supported hardware and answers a number 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. PCMCIA Drives
|
|||
|
3.6. USB CD-ROM Drives
|
|||
|
|
|||
|
|
|||
|
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.4. Booting the Linux Kernel
|
|||
|
4.5. Mounting, Unmounting, and Ejecting Devices
|
|||
|
4.6. Troubleshooting
|
|||
|
|
|||
|
|
|||
|
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?
|
|||
|
6.23. How do I mount a multi-session disc?
|
|||
|
6.24. How do I read a CD volume label?
|
|||
|
6.25. My IDE CD-R or CD-RW drive is not working with Linux
|
|||
|
6.26. Is the insert your brand/model here IDE CD-ROM drive supported?
|
|||
|
6.27. I can't seem to find a driver for my IDE drive in the kernel
|
|||
|
source?
|
|||
|
6.28. I'm having problems with my CD-ROM on Red Hat 7.1
|
|||
|
|
|||
|
|
|||
|
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 [news:alt.cd-rom] alt.cdrom
|
|||
|
newsgroup FAQ, and input from Linux users.
|
|||
|
|
|||
|
Thanks to the [http://www.docbook.org] DocBook tools, 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 [news:
|
|||
|
comp.os.linux.answers] comp.os.linux.answers newsgroup. Hypertext versions of
|
|||
|
this and other Linux HOWTOs are available on many world-wide web sites,
|
|||
|
including [http://www.linuxdoc.org/] http://www.linuxdoc.org. 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] http://
|
|||
|
www.linux.org.tw/CLDP/CDROM-HOWTO.html
|
|||
|
|
|||
|
French: [http://www.freenix.org/unix/linux/HOWTO/] http://www.freenix.org/
|
|||
|
unix/linux/HOWTO/
|
|||
|
|
|||
|
German: [http://www.tu-harburg.de/dlhp/HOWTO/DE-CDROM-HOWTO.html] http://
|
|||
|
www.tu-harburg.de/dlhp/HOWTO/DE-CDROM-HOWTO.html
|
|||
|
|
|||
|
Korean: [http://kldp.org/HOWTO/html/CDROM/CDROM-HOWTO.html] http://kldp.org/
|
|||
|
HOWTO/html/CDROM/CDROM-HOWTO.html
|
|||
|
|
|||
|
Japanese: [http://www.linux.or.jp/JF/JFdocs/CDROM-HOWTO.html] http://
|
|||
|
www.linux.or.jp/JF/JFdocs/CDROM-HOWTO.html
|
|||
|
|
|||
|
Polish: [http://www.jtz.org.pl/Html/CDROM-HOWTO.pl.html] http://
|
|||
|
www.jtz.org.pl/Html/CDROM-HOWTO.pl.html
|
|||
|
|
|||
|
Spanish: [ftp://ftp.insflug.org/es] ftp://ftp.insflug.org/es
|
|||
|
|
|||
|
Swedish: [ftp://ftp.hig.se/pub/linux/swe-doc/] ftp://ftp.hig.se/pub/linux/
|
|||
|
swe-doc/
|
|||
|
|
|||
|
Most translations of this and other Linux HOWTOs can also be found at [http:/
|
|||
|
/www.ibiblio.org/pub/Linux/docs/HOWTO/translations/] http://www.ibiblio.org/
|
|||
|
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, [mailto:
|
|||
|
tranter@pobox.com] 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 LDP at [mailto:feedback@linuxdoc.org]
|
|||
|
feedback@linuxdoc.org for more information.
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
1.4. Distribution Policy
|
|||
|
|
|||
|
Copyright (c) 1995-2001 by Jeff Tranter. Permission is granted to copy,
|
|||
|
distribute and/or modify this document under the terms of the GNU Free
|
|||
|
Documentation License, Version 1.1 or any later version published by the Free
|
|||
|
Software Foundation; with no Invariant Sections, with no Front-Cover Texts,
|
|||
|
and with no Back-Cover Texts. A copy of the license is available at [http://
|
|||
|
www.gnu.org/copyleft/fdl.html] http://www.gnu.org/copyleft/fdl.html
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
2. CD-ROM Technology
|
|||
|
|
|||
|
<EFBFBD> "CD-ROM is read-only memory, and audio compact disc system <20>
|
|||
|
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 <20>
|
|||
|
|
|||
|
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. Most drives 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 recordable (CD-R) drives 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.
|
|||
|
|
|||
|
CD-RW (rewritable) drives can be erased and rewritten with new data. They use
|
|||
|
special discs which can be read by most recent CD-ROM drives (but not older
|
|||
|
ones or most audio CD players).
|
|||
|
|
|||
|
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 performed using
|
|||
|
specialized decoder software and/or hardware. DVD-RAM is a writable version
|
|||
|
of DVD.
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
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.4.4.
|
|||
|
|
|||
|
This information is valid for Linux on the Intel x86 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 [http://
|
|||
|
www.ibiblio.org/pub/Linux/docs/HOWTO/unmaintained/SCSI-HOWTO] Linux SCSI
|
|||
|
HOWTO for more information on interface hardware.
|
|||
|
|
|||
|
Note that some older CD-ROM drives use 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://www.ibiblio.org/pub/Linux/kernel/patches/cdrom/] ftp://
|
|||
|
www.ibiblio.org/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.
|
|||
|
|
|||
|
|
|||
|
+--------------+--------------+-------------+---------+
|
|||
|
|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 |<7C> |
|
|||
|
+--------------+--------------+-------------+---------+
|
|||
|
|IBM |External ISA |sbpcd |Note 2 |
|
|||
|
+--------------+--------------+-------------+---------+
|
|||
|
|Longshine |LCS-7260 |sbpcd |<7C> |
|
|||
|
+--------------+--------------+-------------+---------+
|
|||
|
|Teac |CD-55A |sbpcd |<7C> |
|
|||
|
+--------------+--------------+-------------+---------+
|
|||
|
|Sony |CDU-31A |cdu31a |<7C> |
|
|||
|
+--------------+--------------+-------------+---------+
|
|||
|
|Sony |CDU-33A |cdu31a |<7C> |
|
|||
|
+--------------+--------------+-------------+---------+
|
|||
|
|Sony |CDU-535 |sonycd535 |Note 3 |
|
|||
|
+--------------+--------------+-------------+---------+
|
|||
|
|Sony |CDU-531 |sonycd535 |<7C> |
|
|||
|
+--------------+--------------+-------------+---------+
|
|||
|
|Aztech |CDA268-01A |aztcd |Note 4 |
|
|||
|
+--------------+--------------+-------------+---------+
|
|||
|
|Orchid |CDS-3110 |aztcd |<7C> |
|
|||
|
+--------------+--------------+-------------+---------+
|
|||
|
|Okano/Wearnes |CDD110 |aztcd |<7C> |
|
|||
|
+--------------+--------------+-------------+---------+
|
|||
|
|Conrad |TXC |aztcd |<7C> |
|
|||
|
+--------------+--------------+-------------+---------+
|
|||
|
|CyCDROM |CR520ie |aztcd |<7C> |
|
|||
|
+--------------+--------------+-------------+---------+
|
|||
|
|CyCDROM |CR940ie |aztcd |<7C> |
|
|||
|
+--------------+--------------+-------------+---------+
|
|||
|
|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 |<7C> |
|
|||
|
+--------------+--------------+-------------+---------+
|
|||
|
|Lasermate |CR328A |optcd |<7C> |
|
|||
|
+--------------+--------------+-------------+---------+
|
|||
|
|Sanyo |H94A |sjcd |<7C> |
|
|||
|
+--------------+--------------+-------------+---------+
|
|||
|
|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://www.ibiblio.org 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 (XA and multi-session support).
|
|||
|
|
|||
|
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/] http:
|
|||
|
//www.torque.net/parport/.
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
3.5. PCMCIA Drives
|
|||
|
|
|||
|
Using a PCMCIA SCSI or IDE adaptor you can connect external CD-ROM drives to
|
|||
|
a laptop. Once the appropriate PCMCIA kernel driver is installed the drives
|
|||
|
will appear like any other IDE or SCSI drives.
|
|||
|
|
|||
|
See the [http://www.ibiblio.org/LDP/HOWTO/PCMCIA-HOWTO.html] Linux PCMCIA
|
|||
|
HOWTO for more information.
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
3.6. USB CD-ROM Drives
|
|||
|
|
|||
|
The Universal Serial Bus has support for mass storage devices. USB CD-R and
|
|||
|
CD-RW drives are popular because they can be quickly and easily moved between
|
|||
|
systems.
|
|||
|
|
|||
|
You need to configure the kernel for "USB Mass Storage support". This makes
|
|||
|
USB storage devices appear like SCSI, although they do not use the same
|
|||
|
device files. See the [http://www.dynamine.net/linux-usb/HOWTO] Linux USB
|
|||
|
HOWTO for more details.
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
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 [http://www.linuxdoc.org/HOWTO/Installation-HOWTO/index.html] Linux
|
|||
|
Installation HOWTO 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:
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>to support a CD-ROM drive or other hardware
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>to upgrade to a newer kernel release
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>to free up memory resources by minimizing the size of the kernel
|
|||
|
|
|||
|
|
|||
|
The [http://www.ibiblio.org/LDP/HOWTO/Kernel-HOWTO.html] Linux Kernel HOWTO
|
|||
|
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
|
|||
|
configure the kernel.
|
|||
|
|
|||
|
If you have an ATAPI CD-ROM drive, you need to enable Enhanced IDE/MFM/RLL
|
|||
|
disk/cdrom/tape support and Include IDE/ATAPI CDROM support.
|
|||
|
|
|||
|
For SCSI CD-ROM drives, enable the options SCSI support and SCSI CDROM
|
|||
|
support. Also enable support for your SCSI host adapter when prompted, e.g.
|
|||
|
Adaptec AHA152X/2825 support.
|
|||
|
|
|||
|
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.
|
|||
|
|
|||
|
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 [http://www.ibiblio.org/LDP/HOWTO/
|
|||
|
Sound-HOWTO.html] Sound HOWTO 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 [http://
|
|||
|
www.ibiblio.org/LDP/HOWTO/Kernel-HOWTO.html] Kernel HOWTO.
|
|||
|
|
|||
|
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 [http://www.ibiblio.org/LDP/HOWTO/Kernel-HOWTO.html] Kernel HOWTO
|
|||
|
explains how to do this.
|
|||
|
|
|||
|
Note that you can configure the kernel using the text-based program using
|
|||
|
"make config", 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.
|
|||
|
|
|||
|
If you are using the new devfs file system in the 2.4 kernels, the device
|
|||
|
files are created dynamically by the kernel rather than residing on disk, and
|
|||
|
follow a different naming convention. The examples in this document assume
|
|||
|
that devfs is not being used, and may need to be adjusted accordingly if you
|
|||
|
are.
|
|||
|
|
|||
|
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.
|
|||
|
|
|||
|
I 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 |
|
|||
|
+---------------------------------------------------------------------------+
|
|||
|
|
|||
|
Some Linux distributions use group permissions to control access to devices
|
|||
|
such as CD-ROMs. A common convention is to only allow members of a group
|
|||
|
called cdrom to have access. In this case you should add the appropriate
|
|||
|
users to the group rather than changing file permissions on the device file.
|
|||
|
|
|||
|
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) |
|
|||
|
+------------------------+------------------------------+
|
|||
|
|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.
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
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 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.tmo.nl) |
|
|||
|
+------------------------+---------------------------------------+
|
|||
|
|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 [ftp://www.ibiblio.org/pub/Linux/docs/HOWTO/unmaintained/
|
|||
|
SCSI-HOWTO] 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: TOSHIBA CD-ROM XM-7002B, ATAPI CD/DVD-ROM 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 [http://www.pobox.com/~tranter/eject.html] 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/] 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 compiled
|
|||
|
|
|||
|
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 moe 2.4.4 #1 Sat Apr 28 10:30:45 EDT 2001 i686 unknown |
|
|||
|
+---------------------------------------------------------------------------+
|
|||
|
|
|||
|
or by displaying the file /proc/version:
|
|||
|
|
|||
|
+---------------------------------------------------------------------------------------------------------------+
|
|||
|
|% cat /proc/version |
|
|||
|
|Linux version 2.4.4 (root@moe) (gcc version 2.95.2 20000220 (Debian GNU/Linux)) #1 Sat Apr 28 10:30:45 EDT 2001|
|
|||
|
+---------------------------------------------------------------------------------------------------------------+
|
|||
|
|
|||
|
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:/
|
|||
|
/www.ibiblio.org/pub/Linux/apps/sound/cdrom/] ftp://www.ibiblio.org/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 [http://www.ibiblio.org/LDP/HOWTO/
|
|||
|
Sound-HOWTO.html] Sound HOWTO).
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
4.6.7. When All Else Fails
|
|||
|
|
|||
|
If you still have problems, here are some final suggestions for things to
|
|||
|
try:
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>carefully re-read this HOWTO document
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>read the references listed at the end of this document, especially the
|
|||
|
relevant kernel source files
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>post a question to one of the comp.os.linux or other Usenet newsgroups
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>send a question to the Linux mailing list
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>try using the latest Linux kernel
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>contact your computer dealer
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>contact the CD-ROM manufacturer
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>send mail to the maintainer of the relevant kernel driver (look in the
|
|||
|
file /usr/src/linux/MAINTAINERS)
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>send mail to me
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>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.
|
|||
|
|
|||
|
kscd
|
|||
|
A graphical CD player included as part of the KDE desktop environment.
|
|||
|
|
|||
|
gtcd
|
|||
|
A graphical CD player included as part of the GNOME desktop environment.
|
|||
|
|
|||
|
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] 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 ([mailto:kraxel@cs.tu-berlin.de]
|
|||
|
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/] 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/] 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.
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
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/] 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.
|
|||
|
|
|||
|
Yet another option is to use the sudo program which allows users to run
|
|||
|
selective programs with root privileges.
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
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?
|
|||
|
|
|||
|
Most Linux distributions support directly booting a Linux kernel from CD as
|
|||
|
an alternative to a boot floppy. This requires a bootable CD and ROM BIOS and
|
|||
|
CD-ROM drive which supporting booting 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 ([mailto:heiko@colossus.escape.de] 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 www.ibiblio.org.
|
|||
|
|
|||
|
Another utility to extract digital audio is cdparanoia available from [http:/
|
|||
|
/www.xiph.org/paranoia/] http://www.xiph.org/paranoia.
|
|||
|
|
|||
|
Because CD-ROM drives are changing very quickly, it is difficult to list
|
|||
|
which models support reading digital data. Your 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/] 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?
|
|||
|
|
|||
|
Linux supports most CD-R and CD-RW drives. The cdrecord and mkisofs tools can
|
|||
|
be used to burn CDs, there are also many graphical front-ends to these tools.
|
|||
|
For more information see the [http://www.ibiblio.org/LDP/HOWTO/
|
|||
|
CD-Writing-HOWTO.html] Linux CD-Writing HOWTO.
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
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 [http://www.pobox.com/~tranter/eject.html] 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
|
|||
|
|
|||
|
If you have a particular disc that cannot be mounted, here are some possible
|
|||
|
reasons:
|
|||
|
|
|||
|
1. It is an XA, CD-R, or CD-RW disc and your drive or the Linux driver does
|
|||
|
not support reading these discs (this is only likely for very old
|
|||
|
drives).
|
|||
|
|
|||
|
2. It is a DVD disc, which is only readable by a DVD-ROM drive.
|
|||
|
|
|||
|
3. The disc doesn't use an ISO-9660 file system (e.g. some use SunOS or
|
|||
|
HFS).
|
|||
|
|
|||
|
4. It is an audio CD.
|
|||
|
|
|||
|
5. The CD is damaged or defective.
|
|||
|
|
|||
|
6. 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 (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 [http://www.ibiblio.org/LDP/HOWTO/
|
|||
|
Kernel-HOWTO.html] Kernel HOWTO 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
|
|||
|
([mailto:david@tm.tno.nl] 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 multi-session 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. Recent kernels have UDF
|
|||
|
filesystem support.
|
|||
|
|
|||
|
A number of Linux MPEG-2 DVD players are available. For more information see
|
|||
|
the [http://www.ibiblio.org/LDP/HOWTO/DVD-Playing-HOWTO.html] DVD Playing
|
|||
|
HOWTO.
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
6.22. Does Linux support CD-RW?
|
|||
|
|
|||
|
SCSI and ATAPI compliant CD-RW drives work under Linux for discs formatted
|
|||
|
with an ISO-9660 or UDF file system. This includes the ability to write to
|
|||
|
the disc. Utilities such as cdrecord can be used to erase a disc.
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
6.23. How do I mount a multi-session disc?
|
|||
|
|
|||
|
You mount a multi-session disc like any other CD-ROM. The normal behaviour
|
|||
|
for multi-session support is that the last session will be seen when you
|
|||
|
mount the disc. You will not see multiple partitions. If it does not work it
|
|||
|
could be for three reasons:
|
|||
|
|
|||
|
1. Your CD-ROM drive does not support reading multi-session CDs (it would
|
|||
|
probably have to be quite old for this to be the case).
|
|||
|
|
|||
|
2. The Linux kernel driver for your CD-ROM type does not support
|
|||
|
multi-session (mostly only some old proprietary, non-IDE/ATAPI and
|
|||
|
non-SCSI drives fall into this category).
|
|||
|
|
|||
|
3. If you are mounting a CD with a file system other than ISO-9660, then
|
|||
|
multi-session may not be supported.
|
|||
|
|
|||
|
|
|||
|
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
6.24. How do I read a CD volume label?
|
|||
|
|
|||
|
There is a small utility called volname included with recent versions of the
|
|||
|
eject program. Alternatively you can run this shell command:
|
|||
|
|
|||
|
+---------------------------------------------------------------------------+
|
|||
|
|dd if=/dev/cdrom bs=1 skip=32808 count=32 |
|
|||
|
+---------------------------------------------------------------------------+
|
|||
|
|
|||
|
assuming /dev/cdrom is the device file name for your drive.
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
6.25. My IDE CD-R or CD-RW drive is not working with Linux
|
|||
|
|
|||
|
You need to use the IDE SCSI emulation driver for writable drives. See the
|
|||
|
[http://www.ibiblio.org/LDP/HOWTO/CD-Writing-HOWTO.html] Linux CD-Writing
|
|||
|
HOWTO for more information.
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
6.26. Is the insert your brand/model here IDE CD-ROM drive supported?
|
|||
|
|
|||
|
Yes, of course it is. Linux supports the IDE interface used by all modern IDE
|
|||
|
CD-ROM drives. It has been like this since kernel version 1.1.85.
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
6.27. I can't seem to find a driver for my IDE drive in the kernel source?
|
|||
|
|
|||
|
Unlike for the older proprietary drives, there isn't a specific driver for
|
|||
|
each model of ATAPI/IDE CD-ROM drives. All drives conforming to the standard
|
|||
|
should work with the ATAPI CD-ROM driver included in the standard Linux
|
|||
|
kernel.
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
6.28. I'm having problems with my CD-ROM on Red Hat 7.1
|
|||
|
|
|||
|
You may be running into an issue with hardware that does not support DMA
|
|||
|
(Direct Memory Access). RedHat ships a highly tuned version of the Linux
|
|||
|
kernel which enables DMA on selected IDE controller chipsets. Information on
|
|||
|
this issue can be found at [http://www.exocore.com/linux/rhl71dma/] http://
|
|||
|
www.exocore.com/linux/rhl71dma/
|
|||
|
-----------------------------------------------------------------------------
|
|||
|
|
|||
|
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:news.answers]
|
|||
|
news.answers and archived at Internet FTP sites such as [ftp://rtfm.mit.edu/]
|
|||
|
ftp://rtfm.mit.edu/.
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>alt.cd-rom FAQ
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>comp.periphs.scsi FAQ
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>Enhanced IDE/Fast-ATA/ATA-2 FAQ
|
|||
|
|
|||
|
|
|||
|
Several other Linux HOWTOs have useful information relevant to CD-ROM:
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>[http://www.ibiblio.org/pub/Linux/docs/HOWTO/unmaintained/SCSI-HOWTO]
|
|||
|
Linux SCSI HOWTO
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>[http://www.ibiblio.org/LDP/HOWTO/Hardware-HOWTO.html] Hardware
|
|||
|
Compatibility HOWTO
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>[http://www.ibiblio.org/LDP/HOWTO/Sound-HOWTO.html] Sound HOWTO
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>[http://www.ibiblio.org/LDP/HOWTO/Kernel-HOWTO.html] Kernel HOWTO
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>[http://www.ibiblio.org/LDP/HOWTO/Distribution-HOWTO.html] Distribution
|
|||
|
HOWTO
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>[http://www.ibiblio.org/LDP/HOWTO/CD-Writing-HOWTO.html] CD Writing HOWTO
|
|||
|
|
|||
|
|
|||
|
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:
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>[news:comp.publish.cdrom.hardware] comp.publish.cdrom.hardware
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>[news:comp.publish.cdrom.multimedia] comp.publish.cdrom.multimedia
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>[news:comp.publish.cdrom.software] comp.publish.cdrom.software
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>[news:comp.sys.ibmpc.hardware.cd-rom] comp.sys.ibm.pc.hardware.cd-rom
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>[news:alt.cd-rom] alt.cd-rom
|
|||
|
|
|||
|
<EFBFBD><EFBFBD>*<2A>[news:alt.cd-rom.reviews] alt.cd-rom.reviews
|
|||
|
|
|||
|
|
|||
|
The comp.os.linux newsgroups are also good sources of Linux specific
|
|||
|
information.
|
|||
|
|
|||
|
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/] ftp://rtfm.mit.edu/pub/
|
|||
|
usenet/news.answers/pc-hardware-faq/enhanced-IDE/ and at [http://
|
|||
|
www.seagate.com/techsuppt/faq/faqlist.html] http://www.seagate.com/techsuppt/
|
|||
|
faq/faqlist.html.
|
|||
|
|
|||
|
A web site dedicated to multimedia can be found at [http://www.scala.com/
|
|||
|
multimedia/] http://www.scala.com/multimedia/. Creative Labs has a web site
|
|||
|
at [http://www.creaf.com/] http://www.creaf.com/.
|
|||
|
|
|||
|
The Linux Software Map (LSM) is an invaluable reference for locating Linux
|
|||
|
software. The LSM home page is at [http://www.ExecPC.com/lsm/] http://
|
|||
|
www.ExecPC.com/lsm/. and there is an on-line browsable version at [http://
|
|||
|
www.boutell.com/lsm/] http://www.boutell.com/lsm/.
|
|||
|
|
|||
|
Another great site for finding Linux applications is [http://
|
|||
|
www.freshmeat.net/] 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 [mailto:majordomo@vger.kernel.org]
|
|||
|
majordomo@vger.kernel.org.
|
|||
|
|
|||
|
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] http://www.ora.com/catalog/multilinux/noframes.html.
|