Your most frequently asked questions about ATAPI/IDE CDROM drives.
Author: Mathew E. Kirsch
Systems Manager - Computing Graphics Engineering Technology
SUNY at Alfred, Alfred NY 14802
1.0 - First public posting, 951010
1.1 - Added Q5 and Q6, 951011
1.2 - Added Q7, courtesy Steve Clarke; renamed the ATAPI CDROM FAQ
1.3 - Added Q8, due to number of people with this problem
Q1: Is the IDE CDROM drive supported?
A1: Yes, of course it is. It is an ATAPI/IDE CDROM drive, meaning it utilizes
the IDE hard drive interface that is present in most typical home PC's
today. It has been like this since kernel version 1.1.85.
Q2: I already have two IDE hard drives. Will my ATAPI CDROM still work?
A2: Yes, but you need to have a second IDE interface card to make it work.
Unfortunately, not just any IDE card will work. The secondary interface
card that you choose must have jumper-selectable IRQs and base addresses,
or, you need to purchase a card that is specifically manufactured for
use as a secondary interface. One such card is the Data Technologies
model 2183. Its typically only $15, so its not a big expenditure on your
part. If you bought a Mitsumi with an interface card, use that one.
Another option is an EIDE card with dual IDE "ports", meaning it has
two IDE/EIDE interfaces on the same card. I've been out of circulation
for a while USENET-wise, but I heard that the 1.3.x kernels fully support
Q3: I can't seem to find the driver for the FX400 in the kernel source,
what should I be looking for?
A3: There isn't a SPECIFIC driver for the Mitsumi FX400 (or for any other
ATAPI/IDE CDROM drive for that matter). What you need is the ATAPI
CDROM driver that has been included in the kernel source officially
since at least kernel version 1.1.85. It can be enabled just like any
other driver when you "make config" and recompile the kernel. Recompiling
the kernel is an entire FAQ in itself, so I won't cover it here.
Q4: What options should I enable so I can use my new
A4: Here is an excerpt from the "make config" sequence:
* Please see drivers/block/README.ide for help/info on IDE drives
Use old disk-only driver for primary i/f (CONFIG_BLK_DEV_HD) [n] n
Use new IDE driver for primary/secondary i/f (CONFIG_BLK_DEV_IDE) [y] y
Include support for IDE/ATAPI CDROMs (CONFIG_BLK_DEV_IDECD) [n] y
As you can see, you do NOT want to use the old disk-only driver, and you
DO want to use the new IDE driver and include support for ATAPI CDROMs.
Also, make sure you enable ISO9660 filesystem support (the standard
CDROM filesystem type). Compile your kernel, and copy the compressed kernel,
vmlinuz, from /usr/src/linux/arch/i386/boot to / and do the same for
System.map. If you are using an older version of Slackware (older than 2.2),
you also need to run a short script to create the device nodes (in /dev)
for the two devices on that secondary interface. The script is located in
/usr/src/linux/drivers/block, and is called MAKEDEV.ide1.
Update LILO or loadlin (whichever you prefer to use) as needed,
reboot and away you (should) go. As long as you have your secondary IDE
interface on IRQ 15, and at port address 170h-177h (the defaults for the
DTC 2183 interface, but always double-check factory jumper settings, and
as always: when in doubt, ask someone), things should work admirably.
Linux should have no problem recognizing the secondary interface, and your
bootup sequence should look something like this:
hda: WDC AC1210F, 202MB w/64KB Cache, CHS=989/12/35, MaxMult=16
hdb: Maxtor 7345 AT, 329MB w/64KB Cache, CHS=790/15/57, MaxMult=32
hdc: FX400_02, ATAPI, CDROM drive
ide1: secondary interface on irq 15
ide0: primary interface on irq 14
This may seem a bit confusing, so I'll translate. The first line indicates
that my first hard drive (/dev/hda) is a Western Digital 202MB hard drive.
The second is a Maxtor 329MB drive. hda is the first drive on the first
interface, and hdb is the second drive on the first interface. hdc is the
first drive on the second interface, and hdd (not used on my system, yet :)
is the second drive on the second interfae. The third line, therefore,
indicates that there is an FX400 ATAPI CDROM located on the first device
of the second interface. The final two lines indicate that there are two
IDE interfaces, one on IRQ 15, one on IRQ 14. The drives you have will
show up differently, but the format will be the same. Remember where the
CDROM was recognized, as you will have to make a symbolic file link to the
/dev/cdrom device. Do this by typing (from anywhere):
ln -s /dev/hdc /dev/cdrom
Once booted, you should now be able to insert your favorite Slackware
distribution CDROM and mount it by typing:
mount /dev/cdrom /mnt
Pretty simple, eh?
Note that in some cases you may have to add the following line to your
/etc/lilo.conf or to your loadlin script (whichever you use):
append="hdc=cdrom" <--- for lilo.conf
hdc=cdrom <--- from the lilo "boot:" prompt
Q5: I've installed the drive as the only device on the secondary interface,
with the CDROM drive jumpered as SLAVE/SINGLE, and Linux won't
see it. What am I missing?
A5: Well, quite a lot, to be frank. 99.99% of the ATAPI CDROM drives
are shipped jumpered as SLAVE or SINGLE, and this simply will
not work with Linux. By the IDE standard, a single
drive on an interface must be jumpered as MASTER. There isn't (or
shouldn't be) a specification for SINGLE in the IDE standard.
Change the jumper on the back of the CDROM drive to MASTER,
and follow the directions in Question 4, and you should be set to go.
Q6: I've heard that putting my ATAPI CDROM and my IDE hard drive on the same
IDE channel slows down the hard drive. What is the story?
A6: From my personal experience (and the experience of several others who
commented on the subject), there is no truth to the rumor that putting
the CDROM and HDD on the same channel slows things down.
The rumor states that the MEDIA TRANSFER RATE is set to the speed of
the slowest device on the IDE channel. This is wrong.
The real rumor should be that the INSTRUCTION TRANSFER RATE is set
to the speed of the slower device on the IDE channel. Since the
instructions are handled in firmware (the logic chips on the control
boards on the drives) rather than on the spinning media, the only
reason the INSTRUCTION TRANSFER RATE would be slower on one device
is due to a poor design by the manufacturer.
You mileage may vary here, because the rumor may actually be true
if you're using certain IDE/EIDE controller boards. If you are
experiencing the slowdown when your CDROM and HDD are on the same
IDE channel, send the brand and model of your controller to me,
and I'll list it here.
Q7: I just got kernel 1.3.(19-30), and my ATAPI CDROM quit working. Why?
A7: Somebody reworked the IDE/ATAPI drivers for kernel versions
1.3.19 through 1.3.30, and they got broken in the process.
Don't ask me why, because as I see it, if it ain't broke, don't
fix it! Another view on the subject is: If you don't want to be a
guinea pig, don't get the odd-numbered (1.1.x, 1.3.x, 1.n.x) kernels.
Stick to the even numbered, or production kernels, like 1.2.13.
Q8: Why does my Mitsumi FX401 drive perform badly?
A8: Mitsumi recently (about August '95) replaced the FX400 with the FX401.
This model, although similar, has a few new minor features and a small speed
increase. Unfortunately, the timing of this drive is slightly different and
breaks the standard IDE/ATAPI controller in Linux 1.2.* - 1.3.26 with some
EIDE controllers. The symptoms are break activity of the CDROM drive followed
by about 10 seconds pause and an timeout/reset error message in a syslog
file. The only known solution to this problem is to upgrade to a new
development kernel 1.3.28 or later. The new code is stable in 1.3.30.
Unfortunately, this new code doesn't work with several other drives.
Q9: I just got finished wiring up my Sound Blaster 16 IDE, and the ATAPI drive
A9: The most likely result of your troubles has to do with the base addressing
of the IDE port on the Sound Blaster. This comes from the factory set to
use the TERTIARY (third. Yes, there is a third and fourth IDE port now, but
so far linux doesn't use them in the latest production kernel.) IDE port.
Remember that for linux to see a second IDE port, it has to be at the
secondary address (0x170-0x177, IRQ 15). This is the only way production
Linux will ever see your second interface and ATAPI CDROM.
You can also change a couple of lines in ide.c in the kernel source
to probe for your secondary IDE card at the tertiary address/IRQ, but
that's only for the adventurous.
A second cause of your problem may be the fact that when Creative Labs
manufactures a CDROM drive, they put the master/slave jumper on the
SLAVE pins. It is pretty likely that the CDROM drive is the only
device on the SoundBlaster IDE interface, and by the definition
of the IDE standard, a single device on any given interface MUST
be jumpered as MASTER. This doesn't bother DOS or any of the other
inferior operating systems, because they are forgiving with regard
to the manufacturer and user screw-ups. Linux is an operating system
for someone that knows their computer fairly well, and it adheres
to standards STRICTLY.
You will also have to reconfigure your ATAPI CDROM and SB16IDE in
DOS, Win 3.1x, Win 4.x, and OS/2, because the change of address won't
be realized by these inferior (IMHO) operating systems.
Epilogue: If you have any comments, questions, additions and/or corrections,
let me know. I can be reached at firstname.lastname@example.org,
at my brother's email email@example.com, or at a new site
firstname.lastname@example.org (hopefully by late August, this will be
my main address).
I will periodically update this listing with new questions, and
contributions, and I hope that it will eventually grow into a general