This was taken out of mails from From: Dave Cohen and From: Gadi Oxman (slightly modified marked ***JS *** except typo corrects) It is only valid for Linux ! As all actual Linux versions support ATAPI support for cdrecord, I removed the patch section. If you are running a Linux version that does not support ATAPI SCSI command transport, please upgrade. The basic driver design in Solaris would also allow to use ATAPI drives but unfortunately, Sun made a mistake in the mid-level design. If you want to use ATAPI drives with Solaris, ask Sun why they don't support SCSI passthrough to IDE although they are using a common driver concept. Please use cdrecord-1.6 final or later (if available), it includes the modifications needed for ATAPI drives and is still working with other SCSI drives. Older revisions of cdrecord do not support ATAPI drives. If you are using Linux Kernel version prior to 2.1.73 or prior to 2.0.35, please upgrade before you try to compile and use cdrecord. In any case, you need to configure a kernel with ATAPI/SCSI hostadapter emulation. Read carefully the following instructions: In any case, you need to disable generic IDE/ATAPI CDROM support in order to make ATAPI SCSI emulation working. Many people ask why I use ATAPI-SCSI emulation. The use of the naming convention "ATAPI-SCSI emulation" is a little bit misleading. It should rather be called: "SCSI host adapter emulation" The ATAPI standard describes method of sending SCSI commands over IDE with some small limitations to the "real" SCSI standard. For this reason ATAPI-SCSI emulation is the native method of supporting ATAPI devices. If you have problems to talk to the device when it is jumpered as "slave" try to use it as "master". If you connect a hard disk to the same IDE cable as the CD writer or if you try to read/write data from another drive that is connected to the same IDE cable as the CD writer you may get problems too. NOTICE: With the newer 2.1.x or 2.2.x kernels it seems to be possible to run SCSI/ATAPI hostadapter emulation and generic IDE at the same time by selectively telling the kernel what to use for which drive. However, this would not be needed if the Linux SCSI CD-ROM driver would be more up to date and supports standard conforming drives. Jörg Schilling -------------------------------------------------- Here is a hint from Alan Brown : To allow ATAPI cd and ide-scsi support on the same machine, add `hd=ide-scsi` to the lilo.conf append entry, or use `hd=ide-scsi` at the bootup lilo prompt. I have my HP-7200 RW drive as the primary drive on the second IDE bus, so the statement used is "hdc=ide-scsi" -------------------------------------------------- Hope that the following is helpful to you. I recently purchased a HP-7110i CD-RW, which is the U.S. only version of what you have. The HP 7100 and 7110 CD rewritables use the ATAPI standard. Originally, the drives were not supported under Linux (due to some inconsistencies with SCSI translations between the kernel and the CD), but that problem has just recently been fixed. There are some kernel and cdrecord patches that have been made to support this device that have yet to be officially incorporated into cdwrite and the kernel. In order to get your drive supported under Linux, you will have to do the following: 1. Get the proper version of cdrecord. As of this writing, I am just getting ready to test Joerg's new cdrecord. I am currently operational on cdrecord-1.5, so I know that works, and I have attached patches for that version. If you are in a hurry, you can download ver. 1.5, apply patches, and rock-n-roll. You may want to wait, though. Up to you ;). The version with ATAPI support is cdrecord-1.6alpha5. I'm not sure if the current kernel patches are valid for this version, but i'll know soon enough. **** They are valid **** JS BTW, the new version of xcdroast now supports cdrecord - this version is in beta testing, too (currently uses cdrecord-1.5 but cdrecord-1.6a5 should work with the actual xcdroast too). 2. Upgrade to kernel version 2.0.31 IDE/SCSI translation was first added in this kernel. Because your CD-RW is an ATAPI device, it will support SCSI command sets. The translation allows you to map the device as a SCSI generic device. This will allow cdrecord to recognize it as a SCSI device. **** 2.0.31 still needs patches, get 2.0.35 or later **** JS 3. Get the patches and apply them Attached find kernel patches for kernel sources ide.h and ide-scsi.c, and cdrecord source scsi_cdr.c (version 1.5 only). **** Get cdrecord-1.6 or later **** JS 3. Recompile kernel with SCSI emulation support If you do a "make menuconfig" or "make xconfig", select SCSI emulation under the category "Floppy, IDE, and other block devices". WARNING: Do not install SCSI support as a module - there is a bug in the makefile structure that will cause the compile to fail. Compile directly into the kernel. 4. WARNING: Disable generic IDE/ATAPI support *** JS *** If you don't do this, the SCSI emulation will not work *** JS *** 5. This is important too: You also need to enable SCSI and SCSI generic support *** JS *** 6. Make sure that /dev/sg* exists. If thet are missing, create them. Dave Cohen dcohen@richmond.infi.net (Patch instructions below) ----------------------------------------------------------------- From: Danilo Fiorenzano Anyway, here's what I did, using kernel version 2.0.33 I believe this is the proper way to get an HP-7100i to work (and as far as I can tell, any other IDE CD-writer unit): 1) patch the kernel as described by README.ATAPI 2) save your current kernel config to an alternate file, then run "make mrproper" 3) run 'make menuconfig' or 'make xconfig', then choose "load config from alternate file" to restore the original configuration 4) In "Floppy, IDE and other block devices", disable "IDE/ATAPI CD-ROM support" and enable instead "scsi emulation" 5) in "SCSI support" enable "SCSI support", "SCSI CD-ROM support" and "SCSI generic support", everything directly in the kernel. 6) compile, install kernel/modules, reboot. Now, if everything went fine, your CDROM units should show up with a message like: "hdb: HP CD-Writer+ 7100, ATAPI CDROM drive - enabling SCSI emulation" 7) run "cdrecord -scanbus" to make sure cdrecord can see the unit and talk to it. The end. Don't forget that now -all- of your CD drives are seen as -SCSI- units by all programs (/dev/scd0 etc.), so you might want to relink /dev/cdrom to the proper scd in order to get xcdplay or whatever to work again. ------------------------------------------------------------------------------- NOTE: 1) Actual cdrecord releases support ATAPI 2) Linux 2.0.35 or Linux 2.1.73 or later include ATAPI support ------------------------------------------------------------------------------- From whampton@staffnet.com Fri Jan 14 05:21:34 2000 From: "W. Wade, Hampton IV" You may wish to include/append these notes to your ATAPI notes.... I have my 4X Acer CD-R/RW ATAPI drive working with Linux. My platform is RedHat 6.1 with kernel 2.2.14. My first ATAPI CD device is a DVD with the second the CD-R. I made the following changes: Steps: 1. Identify which device is the CD-R -- in my case the fourth ATAPI device, /dev/hdd. 2. Compile the kernel to include ATAPI CDROM and SCSI emulation: Under the block devices menu: Y or M Include IDE/ATAPI CDROM support Y or M SCSI emulation 3. Build and install the upgraded kernel. 4. If you selected modules, add them to the /etc/conf.modules file. 5. In the /etc/lilo.conf file add an append line for ide-scsi, in my case: append = "hdc=ide-scsi hdd=ide-scsi" 6. Reboot to the new kernel and make sure the ide-scsi module is loaded /sbin/lsmod | grep ide-scsi 7. Make a link from the proper SCSI device to a symbolic, e.g., /dev/cdrom: In my case the DVD is the first CD, hence appears as /dev/scd0 to scd7 (cat /proc/scsi/scsi to get a full list of devices -- the first CD-ROM will appear as scd0, etc.) With the current ATAPI-SCSI module, each CD device appears as 8 SCSI devices (different logical units). If you have two devices, like I do, you may have to make a node for the second device. In my case I had to make scd8: cd /dev mknod scd8 b 11 8 Then make links, in my case: ln -s scd0 cdrom ln -s scd8 cdr Note, many CD-ROM player programs expect the audio CD drive to be located at /dev/cdrom (xplaycd, etc.), hence this link is recommended. If you try to use /dev/hdc (or wherever your CD or CD-R is) after loading the ide-scsi module, you may not be able to mount CD's or play audio discs -- you have to use the new SCSI names for the device. 8. Fix your /etc/fstab file to mount the /dev/cdrom and /dev/cdr /*--------------------------------------------------------------------------*/ From: Eduard Bloch Situation: Linux: Kernel 2.2.15 (Debian package kernel-image-2.2.15) Distribution: Debian Potato (deep freeze), i386 Devices: one CDRW-Writer, one CDROM-drive, both ATAPI 1. Become root, try "grep hd.: /var/log/kern.log" to find out where your ATAPI-devices are connected to (hd?-names). 2. Edit your boot configuration file, eg. /etc/lilo.conf if you use lilo or the batch-file if you boot via loadlin. 3. Find a line where you can append additional kernel parameters, eg. "append=" in lilo.conf or the loadlin-line in the batch file. 4. Append sth. like this: "hdb=ide-scsi hdc=ide-scsi max_scsi_luns=1" The hdX-parameters defines devices that should be mapped to SCSI latter. You may do it with non-writers too, since the emulation layer is almost complete, or let them out so the devices will use their native drivers. 5. Save the file, reinstall the bootloader (ie. running "/sbin/lilo") 6. Call "modconf", load "sg" and "ide-scsi" from the SCSI-section 7. Reboot Debian, watch while booting, you should see a line like this "Detected scsi CD-ROM sr0 at scsi0, channel 0, id 0, lun 0". Your old ATAPI devices virtually don't exist any longer, use ther SCSI equivalents instead. 8. Become root, setup devices: cd /dev MAKEDEV sg scd ln -s scd0 cdrom # NOTE: or cdrw, first check which drive is here ln -s scd1 cdrw # NOTE: see above, maybe cdrom Check the new SCSI settings: cdrecord -scanbus Setup cdrecord's environment - edit /etc/default/cdrecord: CDR_DEVICE=cdrw cdrw=1,0,0 4 8m cdrom=1,2,0 0 0m Input the right values, the fields are described in the manpage of cdrecord. Alternatively, you may use this values as cdrecord-parameter or take a frontend with an own configuration scheme, then you don't need to modify /etc/default/cdrecord. 9. It's done! Insert a CD and try "cdrecord -v -toc"