Contents

## README.ATAPI

    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"