atapi.FAQ - 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 kirschm@snyalfva.cc.alfredtech.edu Revisions: 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 EIDE interfaces. 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 ATAPI CDROM? 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 isn't detected! 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 kirschm@snyalfva.cc.alfredtech.edu, at my brother's email vp24njcb@ubvms.cc.buffalo.edu, or at a new site kirschm@london.cgt.alfredtech.edu (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 ATAPI FAQ. Cheers