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.
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.
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 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.
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/. Also check the documentation files included with the kernel distribution, usually installed in /usr/src/linux/Documentation/cdrom, for the latest information.
|Note 7, 8
|Note 7, 8
These drives may be sold under the names Creative Labs, Panasonic, Matsushita, or Kotobuki.
This drive is the same as a Panasonic CR-562.
May also be sold under the Procomm name.
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.
May also be sold as part of a Reveal Multimedia Kit.
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
May also be sold under the Radio Shack name.
There are two drivers available. "mcd" is the original one, and "mcdx" is a newer driver with more features (XA and multi-session support).
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.
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/.
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 Linux PCMCIA HOWTO for more information.
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 Linux USB HOWTO for more details.