diff --git a/LDP/howto/docbook/CDROM-HOWTO.sgml b/LDP/howto/docbook/CDROM-HOWTO.sgml new file mode 100644 index 00000000..fce3e223 --- /dev/null +++ b/LDP/howto/docbook/CDROM-HOWTO.sgml @@ -0,0 +1,3105 @@ + + +
+ + + +The Linux CD-ROM HOWTO + +Jeff +Tranter + +
+tranter@pobox.com +
+
+
+ +v1.15, 11 May 2001 + + + +1.15 +2001-05-11 +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. + + + +
+ +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. + + +Acknowledgments + + +Much of this information came from the documentation and source files +provided with the Linux kernel, the Internet alt.cdrom +newsgroup FAQ, and input from Linux users. + + + +Thanks to the DocBook +tools, this HOWTO is available in several formats, all generated from +a common source file. + + + + +New Versions Of This Document + + +New versions of this document will be periodically posted to the +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. +Most Linux CD-ROM distributions include the HOWTOs, often under the +/usr/doc directory, and you can also buy printed copies +from several vendors. Sometimes the HOWTOs available from CD-ROM +vendors, ftp sites, and printed format are out of date. If the date on +this HOWTO is more than six months in the past, then a newer copy is +probably available on the Internet. + + + +Please note that, due to the dynamic nature of the Internet, all +web and ftp links listed in this document are subject to change. + + + +Translations of this document are available in several languages: + + + +Chinese: +http://www.linux.org.tw/CLDP/CDROM-HOWTO.html + + + +French: +http://www.freenix.org/unix/linux/HOWTO/ + + + +German: +http://www.tu-harburg.de/dlhp/HOWTO/DE-CDROM-HOWTO.html + + + +Korean: +http://kldp.org/HOWTO/html/CDROM/CDROM-HOWTO.html + + + +Japanese: +http://www.linux.or.jp/JF/JFdocs/CDROM-HOWTO.html + + + +Polish: +http://www.jtz.org.pl/Html/CDROM-HOWTO.pl.html + + + +Spanish: +ftp://ftp.insflug.org/es + + + +Swedish: +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/. +If you make a translation of this document into another language, let me +know and I'll include a reference to it here. + + + + +Feedback + + +I rely on you, the reader, to make this HOWTO useful. If you have any +suggestions, corrections, or comments, please send them to me, +tranter@pobox.com, and +I will try to incorporate them in the next revision. + + + +I am also willing to answer general questions on CD-ROM under Linux, +as best I can. Before doing so, please read all of the information in +this HOWTO, and then send me detailed information about the +problem. Please do not ask me about using CD-ROM drives under +operating systems other than Linux. + + + +If you publish this document on a CD-ROM or in hardcopy form, a +complimentary copy would be appreciated; mail me for my postal +address. Also consider making a donation to the Linux Documentation +Project to help support free documentation for Linux. Contact the +LDP at feedback@linuxdoc.org +for more information. + + + + +Distribution Policy + + +Copyright (c) 1995-2001 by Jeff Tranter. This document may be +distributed under the terms set forth in the LDP license at +http://www.linuxdoc.org/COPYRIGHT.html. + + + + + + +CD-ROM Technology + +
from a CD-ROM instruction manual + +"CD-ROM is read-only memory, and audio compact disc system is +available as package-media of digital data for those purpose. For +playing audio CD, please insert Head-phone jack." + + +
+ + +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. + + +
+ +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. + + +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. + + + + +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 +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. + + + + +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/. +Also check the documentation files included with the kernel distribution, +usually installed in /usr/src/linux/Documentation/cdrom, +for the latest information. + + + + +VendorModelKernel DriverNotes + + +PanasonicCR-521sbpcdNote 1 +PanasonicCR-522sbpcdNote 1 +PanasonicCR-523sbpcdNote 1 +PanasonicCR-562sbpcdNote 1 +PanasonicCR-563sbpcdNote 1 +Creative LabsCD-200sbpcd +IBMExternal ISAsbpcdNote 2 +LongshineLCS-7260 sbpcd +TeacCD-55A sbpcd +SonyCDU-31Acdu31a +SonyCDU-33Acdu31a +SonyCDU-535sonycd535Note 3 +SonyCDU-531 sonycd535 +AztechCDA268-01AaztcdNote 4 +OrchidCDS-3110aztcd +Okano/WearnesCDD110aztcd +ConradTXCaztcd +CyCDROMCR520ieaztcd +CyCDROMCR940ieaztcd +GoldStarR420gscdNote 5 +Philips/LMSCM206cm206Note 6 +MitsumiCRMC LU005Smcd/mcdxNote 7, 8 +MitsumiFX001mcd/mcdxNote 7, 8 +Optics StorageDolphin 8000AToptcd +LasermateCR328Aoptcd +SanyoH94Asjcd +variousvariousisp16Note 9 + + + + +Notes: + + + + + +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. + + + + +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/. + + + + +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 Linux PCMCIA HOWTO +for more information. + + + + +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 +Linux USB HOWTO +for more details. + + + + + + +Installation + + +Installation of a CD-ROM under Linux consists of these +steps: + + + + + +Installing the hardware. + + + + + +Configuring and building the Linux kernel. + + + + + +Creating device files and setting boot time parameters + + + + + +Booting the Linux kernel. + + + + + +Mounting the media. + + + + + +The next sections will cover each of these steps in detail. + + +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). + + + + +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: + + + + + +Boot directly from CD-ROM (if supported by your computer and Linux CD) + + + + + +Install over a network + + + + + +Boot DOS, and install the Linux files onto your hard disk + + + + + +Boot DOS, and create a set of floppies to install Linux + + + + + +Find someone who can build you a boot disk with the needed +CD-ROM driver + + + + + +The +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: + + + + + +to support a CD-ROM drive or other hardware + + + + + +to upgrade to a newer kernel release + + + + + +to free up memory resources by minimizing the size of the kernel + + + + + +The +Linux Kernel HOWTO +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 +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 +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 +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. + + + + +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. + + +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. + + + + +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. + + + + +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. + + + + +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. + + + + +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. + + + + +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. + + + + +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. + + + + +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. + + + + +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. + + + + +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. + + + + +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. + + + + +SCSI Driver + + + + + +Principal author:David Giller +Multi-session support:yes (depending on drive) +Multiple drive support:yes +Loadable module support:yes +Reading audio frames:no +Auto-probing:yes +Device file:/dev/scd0, major 11 +Configuration file:cdrom.h +Kernel config option:SCSI CDROM support +Documentation file:scsi.txt + + + + + + +There are kernel command line option specific to each type of SCSI +controller. See the +SCSI HOWTO +for more information. + + + +Multiple drives are supported (up to the limit of the maximum number +of devices on the SCSI bus). Create device files with major number 11 +and minor numbers starting at zero: + + + + +# mknod /dev/scd0 b 11 0 +# mknod /dev/scd1 b 11 1 + + + + +While the kernel driver itself does not support reading digital audio +frames, some SCSI drives have the capability and will work with the +cdda2wav program (which uses the generic SCSI kernel interface). + + + +Also see the discussion of the IDE SCSI emulation driver +earlier in this document. + + + + +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. + + + + + + +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. + + + + +Mounting, Unmounting, and Ejecting Devices + + +To mount a CD-ROM, insert a disc in the drive, and run the +mount command as root (this assumes you created a +symbolic link to your device file as recommended above and that an +empty directory /mnt/cdrom exists): + + + + +# mount -t iso9660 -r /dev/cdrom /mnt/cdrom + + + + +The CD can now be accessed under the directory /mnt/cdrom. + + + +There are other options to the mount command that you may +wish to use; see the mount(8) man page for details. + + + +You can add an entry to /etc/fstab to automatically mount a +CD-ROM when Linux boots or to specify parameters to use when it is +mounted; see the fstab(5) man page. + + + +Note that to play audio CDs you should not try to mount them. + + + +To unmount a CD-ROM, use the umount command as root: + + + + +# umount /mnt/cdrom + + + + +The disc can only be unmounted if no processes are currently accessing +the drive (including having their default directory set to the mounted +drive). You can then eject the disc. Most drives have an eject button; +there is also a standalone +eject +program that allows ejecting CD-ROMs under software control. + + + +Note that you should not eject a disc while it is mounted +(this may or may not be possible depending on the type of drive). Some +CD-ROM drivers can automatically eject a CD-ROM when it is unmounted +and insert the CD tray when a disc is mounted (you can turn this +feature off when compiling the kernel or by using a software command). + + + +Its possible that after playing an audio CD you may not be able to +mount a CD-ROM. You need to send a CD audio "stop" command (using a CD +player program) before trying the mount. This problem only appears to +occur with the SBPCD driver. + + + +Recent kernels support a kernel-based automounter which +provides transparent mounting of removable media including CD-ROM. You +can find the tools needed to use it at + +ftp://ftp.kernel.org/pub/linux/daemons/autofs/. + + + + +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. + + +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? + + + + +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. + + + + +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. + + + + +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. + + + + +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. + + + + +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/. + + + +A few of the CD-ROM drivers do not support playing Audio CDs. Check +the documentation file or source code to see if that is the case. + + + +Check if the audio can be played through the headphone jack. If so, +then the problem is likely related to your sound card. Use a mixer +program to set the input device and volume levels. Make sure you have +installed an audio cable from the CD-ROM drive to the sound card. Make +sure that the kernel sound card driver is installed and working (see the +Sound HOWTO). + + + + +When All Else Fails + + +If you still have problems, here are some final suggestions for things +to try: + + + + + +carefully re-read this HOWTO document + + + + + +read the references listed at the end of this document, +especially the relevant kernel source files + + + + + +post a question to one of the comp.os.linux or +other Usenet newsgroups + + + + + +send a question to the Linux mailing list + + + + + +try using the latest Linux kernel + + + + + +contact your computer dealer + + + + + +contact the CD-ROM manufacturer + + + + + +send mail to the maintainer of the relevant kernel driver (look in +the file /usr/src/linux/MAINTAINERS) + + + + + +send mail to me + + + + + +fire up emacs and type Esc-x doctor :-) + + + + + + + + + + + + + +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. + + +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. + + + + +PhotoCD + + +PhotoCDs use an ISO-9660 file system containing image files +in a proprietary format. Not all CD-ROM drives support reading +PhotoCDs. + + + +The hpcdtoppm program by Hadmut Danisch converts PhotoCD +files to the portable pixmap format. It can be obtained from + +ftp://ftp.gwdg.de/pub/linux/hpcdtoppm +or as part of the PBM (portable bit map) utilities, available on many +archive sites (look for "pbm" or "netpbm"). + + + +The photocd program by Gerd Knorr +(kraxel@cs.tu-berlin.de) +can convert PhotoCD images into Targa or Windows and OS/2 bitmap +files. + + + +The same author has written the program xpcd, an X11-based +program for handling PhotoCD images. You can select the images with a +mouse, preview the image in a small window, and load the image with +any of the five possible resolutions. You can also mark a part of the +Image and load only the selected part. Look for these packages at + +ftp://ftp.cs.tu-berlin.de/pub/linux/Local/misc/. + + + +The ImageMagick image file manipulation program also supports PhotoCD +files. It is available from + +ftp://ftp.x.org/contrib/applications/ImageMagick/. + + + + +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. + + + + +ISO-9660 Utilities + + +These are some utilities for verifying the format of ISO-9660 +formatted discs; you may find them useful for testing suspect CDs. The +package can be found at + +ftp://ftp.cdrom.com/pub/unixfreeware/archive/. They were +written by Bill Siegmund and Rich Morin. + + + + + + +Answers to Frequently Asked Questions + +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. + + + + +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. + + + + +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. + + + + +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. + + + + +How can I read digital data from audio CDs? + + +Heiko Eissfeldt (heiko@colossus.escape.de) +and Olaf Kindel have written a +utility that reads audio data and saves it as .wav format +sound files. The package is called cdda2wav.tar.gz and can be +found on www.ibiblio.org. + + + +Another utility to extract digital audio is cdparanoia +available from +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/ +and the alt.cd-rom FAQ listed in the references section. + + + + +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.) + + + + +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 + +Linux CD-Writing HOWTO. + + + + +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). + + + + +Why does the disc tray open when I shut down the system? + + +The sbpcd driver supports automatically ejecting the CD when it is +unmounted. In some older kernel versions this was the default +behaviour. If you shut down the system, a mounted CD will be +unmounted, causing it to eject. + + + +This feature is for convenience when changing discs. If the tray is +open when you mount or read a CD, it will also automatically be +closed. + + + +I found that this caused problems with a few programs (e.g. cdplay and +workbone). As of the 1.1.60 kernel you can control this feature under +software control. A sample program is included in the sbpcd +documentation file (or use the +eject program). +You can also control the default behaviour by editing the kernel +source file sbpcd.h. + + + + +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: + + + + + +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). + + + + + +It is a DVD disc, which is only readable by a DVD-ROM drive. + + + + + +The disc doesn't use an ISO-9660 file system (e.g. some use +SunOS or HFS). + + + + + +It is an audio CD. + + + + + +The CD is damaged or defective. + + + + + +You put it in the drive upside down :-) + + + + + + + + + +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. + + + + +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. + + + + +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. + + + + +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. + + + + +My CD-ROM stopped working after Linux was installed + + +The usual symptom is that the boot disk used to initially install +Linux recognized your CD-ROM drive, but after Linux was installed on +the hard drive or floppy and rebooted it no longer recognizes the +CD-ROM. + + + +The most common reason for this problem is that with some Linux +distributions the kernel that is installed on your hard drive (or +floppy) is not necessarily the same one that was on your boot +disk. You selected a boot disk that matched your CD-ROM hardware, +while the kernel you installed is a "generic" kernel that is lacking +CD-ROM support. You can verify this by following the troubleshooting +guidelines discussed previously in this document (e.g. start by +checking /proc/devices). + + + +The solution is to recompile the kernel, ensuring that the drivers for +your CD-ROM drive and any others that are needed (e.g. SCSI +controller, ISO-9660 file system) are included. See the +Kernel HOWTO +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). + + + + +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). + + + + +Where is the CD-ROM API documented? + + +If you want to write your own application, such as an audio CD player +program, you will need to understand the application programming +interface (API) provided by Linux. + + + +Originally the CD-ROM kernel drivers used their own ioctl() functions +to support features specific to each drive. Header files such as +/usr/include/linux/sbpcd.h describe these. Because many of +the drivers were based on other drivers, the interfaces, while not +identical, have a lot in common. + + + +More recently there has been an initiative headed by David van Leeuwen +(david@tm.tno.nl) to +standardize the API for CD-ROM drives, putting common code +in one place and ensuring that all drivers exhibit the same behaviour. +This is documented in the file +/usr/src/linux/Documentation/cdrom/cdrom-standard.tex. +Several kernel drivers support this. As of the 2.0 kernel all CD-ROM +drivers conform to this API. + + + +My book, Linux Multimedia Guide, goes into quite a bit of +detail on how to program CD-ROM drives, especially for audio +functions. See the end of the References section. + + + + +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. + + + + +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. + + + + +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. + + + + +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 +DVD Playing HOWTO. + + + + +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. + + + + +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: + + + + + +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). + + + + + +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). + + + + + +If you are mounting a CD with a file system other than ISO-9660, then +multi-session may not be supported. + + + + + + + + + +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. + + + + +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 + +Linux CD-Writing HOWTO for more information. + + + + + + +References + + +I have already mentioned the documentation files, typically installed in +/usr/src/linux/Documentation/cdrom. These can be a gold mine +of useful information. + + + +The following Usenet FAQs are posted +periodically to news.answers +and archived at Internet FTP sites such as +ftp://rtfm.mit.edu/. + + + + + +alt.cd-rom FAQ + + + + + +comp.periphs.scsi FAQ + + + + + +Enhanced IDE/Fast-ATA/ATA-2 FAQ + + + + + +Several other Linux HOWTOs have useful information relevant to CD-ROM: + + + + +Linux SCSI HOWTO + + + + + +Hardware Compatibility HOWTO + + + + + +Sound HOWTO + + + + + +Kernel HOWTO + + + + + +Distribution HOWTO + + + + + +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: + + + + + +comp.publish.cdrom.hardware + + + + + +comp.publish.cdrom.multimedia + + + + + +comp.publish.cdrom.software + + + + + +comp.sys.ibm.pc.hardware.cd-rom + + + + + +alt.cd-rom + + + + + +alt.cd-rom.reviews + + + + + +The comp.os.linux newsgroups are also good sources of Linux +specific information. + + + +A FAQ document on IDE and ATA devices can be found at + +ftp://rtfm.mit.edu/pub/usenet/news.answers/pc-hardware-faq/enhanced-IDE/ +and at + +http://www.seagate.com/techsuppt/faq/faqlist.html. + + + +A web site dedicated to multimedia can be found at http://www.scala.com/multimedia/. +Creative Labs has a web site at +http://www.creaf.com/. + + + +The Linux Software Map (LSM) is an invaluable +reference for locating Linux software. The LSM home page is at +http://www.ExecPC.com/lsm/. +and there is an on-line browsable version at +http://www.boutell.com/lsm/. + + + +Another great site for finding Linux applications is +http://www.freshmeat.net/. + + + +The Linux mailing list has a number of "channels" dedicated +to different topics. To find out how to join, send a mail message with +the word "help" as the message body to +majordomo@vger.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. + + + + +