CD Writer mini-HOWTO
by Matt Cutts, cutts@ms.uky.edu :  tolkien@nownuri.net
v0.2, 17 Dec 1994

  1. Ұ

    Linux kernel v1.1.64, Philips CDD 521 (ѿ 
  Kodak PCD Writer 200 PLUS  ), Adaptec 1542cf 
   CD   .

    ٸ writer testغ ϴ , cdwrite Ƹ 
  Philips writer  Ǵ Ͱ. :-| ݺδ  ߴ 
   Ͽ 籸 ̴.   ϸ   
     mkisofs cdwrite Ͽ CD ⸸ ϸ ȴ.

  1.1.  Feedback
  
    CD writer    ϰ ִ. 
    Ͽ   ̳ ǰ߿     ̴.  
  δ Matt Cutts,  at cutts@ms.uky.edu mail ֱ ٶ. 
    ſ ϴٴ   ˷ ־ Ѵ. 
     ߸ ˰ ִ ͵ ֱ ٶ.

  2. 

        θ  . kernel panic  
   ǳ پ ȴ 8-). super-userμ  process 
  Ѿ  .
 
  2.1   CD computer ϰ, reboot

  --> kernel panic ߻

  2.2 1.1.64 kernel upgrade

  -->  kernel panic

  2.3. 1542CF setting ٲ

  Mike McKenna(츮   hardware )    
  ణ setting ٲپ. Ʒ ִ list ϳ 
   error Ҵ.  "Enable  Disconnection" CD writer 
  ϴ SCSI ID# ؼ  "no" ٲ  error Ҵٰ 
  90%  ȮѴ.  setting  , CD   . 
     غ,  Ǹ ٸ  غ ٶ.  booting , 
  Ctrl-A  SCSI-select utility  
  "Configure/View Host Adapter Settings" . 
    ߴ setting̴.

  Host Adapter IRQ Channel -> 11
  Host Adapter DMA Channel -> 5
  Host Adapter SCSI ID     -> 7
  [BIOS Revision: 2.02; Base Address: DC000h; Firmware: Rev. B.0; Checksum: A223h]
  (these should be irrelevant to you; DO NOT change the settings above)

  SCSI Parity Checking           Enabled
  DMA Transfer Rate              5.0 MB/sec
  Host Adapter SCSI Termination  Enabled

  SCSI Device Configuration 
  (note hard drive = #0, writer = #1, 1542 = #7)
                                 #0   #1   #2   #3   #4   #5   #6   #7
  Enable Sync Negotiation        no   no   no   no   no   no   no   no
  Enable FAST SCSI               no   no   no   no   no   no   no   no
  Enable Disconnection           yes  no   yes  yes  yes  yes  yes  yes
  Send Start Unit Command        no   yes  no   no   no   no   no   no
  *(default is all yes for Enable Disconnection and all no for Send Start Unit Command)

  Advanced Configuration Options
  Floppy Controller I/O Port (AHA-1542CF only)                  3F0h-3F7h
  Reset SCSI Bus at Power-On                                    Enabled
  Host Adapter BIOS (Configuration Utility Reserves BIOS Space) Enabled
  System Boot (INT 19h) Controlled by Host Adapter BIOS         Enabled
  Extended BIOS Translation for DOS Drives > 1 GByte            Disabled
  *Support Removable Disks Under BIOS as Fixed Disks            Enabled
  Dynamically Scan SCSI Bus for BIOS Devices                    Disabled
  BIOS Support for More Than 2 Drives (MS-DOS(R) 5.0 and above) Disabled
  Immediate Return On Seek Command                              Enabled
  Display <Ctrl><A> Message During BIOS Initialization          Enabled
  *BIOS Support for Floptical Drives                            Enabled
  
  *ǥ ٸ  default(⺻) ٸ ̴. ʿ  ͱ  
  ü list ְ Ǿ ̾ϴ. , SCSI  ǲ  ̶ 
  Ѵ. REMEMBER:  ϱ⿡ ʿ ȭ 
  "Enable Disconnection for the ID#"̴. yes no ٲٸ ȴ.
  
  :
   no panic; CDROM  drive sr0 νϰ, SCSI  generic drvier 
  ׻ ׷  νߴ θ ˷ ʾҴ.

  2.4. mkisofs ؼ binary image ϱ (mkisofs v1.00 )

  . "mkisofs -o /home/cd.image /home/dir_to_archive"

  [ tsx-11.mit.edu /pub/linux/BETA/cdrom/mkisofs-1.00.tar.gz  
  ٰ . version 1.01 . ] 
   ٸ tool iso9660-diagnose.tar.gz  directory  ü ִ.
  section 3 mkisofs  .

  2.5. SCSI generic device .

   , "/dev/MAKEDEV  sg" (sga sgh   ̴; 
  boot , ҴǴ  generic device̴.)

  2.6. SCSI generic driver  ν  ݴ.

  Joseph Julicher  SCSI inquiry  byte óϵ kernel  hacking 
  Ͽ.  (0x1f bit masking ϸ ȴ).   TYPE_WORM drive 
  "Ⱑ" ٲپ;   ̰ ϴ  ʿ  
  Ȯ .     "Ⱑ" ٲپ Ҵ. 
  (ǰ, ȿ̴!)

  The original /usr/src/{linux-1.1.64/}linux/drivers/scsi/scsi.c
  (beginning around line 361)
  
      switch (type = scsi_result[0])
        {
        case TYPE_TAPE :
        case TYPE_DISK :
        case TYPE_MOD :
          SDpnt->writeable = 1;
          break;
        case TYPE_WORM :
        case TYPE_ROM :
          SDpnt->writeable = 0;
          break;
        default :

  I changed it to:

      switch (type = scsi_result[0] & 0x1f)
        {
        case TYPE_TAPE :
        case TYPE_DISK :
        case TYPE_MOD :
        case TYPE_WORM :
        case TYPE_ROM :            /* probably shouldn't be writeable :) */
          SDpnt->writeable = 1;
          break;
        default :

  2.7 cdwrite ģ. ( ģ  v1.3)
  [tsx-11.mit.edu 
  /pub/linux/BETA/cdrom/private/mkisofs/cdwrite-1.3.tar.gz  ִ.]

  line 439 original program   code  ־.

     set_timeout(fd, timeout);

     /* First make sure we know how to talk to this writer */
     inquiry (fd, &reply_len, &reply, &manufacturer[0], &model[0]);
     if(strcmp(manufacturer,"PHILLIPS")) {

      ÷ν program ٲپ.

    /* new #define from drivers/scsi/scsi.h; orig program had this defined */
    #define SG_SET_TIMEOUT  0x2201

  (Following code replaced orig. code around line 439)
 
     /*   set_timeout(fd, timeout);*/
     if (ioctl(fd, SG_SET_TIMEOUT, SG_SET_TIMEOUT, &timeout) < 0) {
        perror ("ioctl SG_SET_TIMEOUT");
        exit(5);
     }

     /* First make sure we know how to talk to this writer */
     inquiry (fd, &reply_len, &reply, &manufacturer[0], &model[0]);
     if(strcmp(manufacturer,"IMS")) {

  Philips CDD 521 "IMS" manufacturer ȯϰ, 
    program ߴ ó timeout ϵ ƴ. 
  cdwrite package Ǯ,  program "orig" directory ִ. 

  2.8 kernel  compileϰ reboot.

  SCSI generic support ϰ   . ׷ ƴϸ 
  generic driver kernel Ե ʴ´. 
   ǰ ִ kernel ٲٱ ؼ reboot ؾѴ.

  2.9 CD ´!

   , "cdwrite /dev/sgb < /home/cd.image"
  sgb CD writer, ٽ  SCSI generic device b 
  (hard drive generic device a̹Ƿ)̰, 
  /home/cd.image mkisofs  ISO9660 image̴. 

  3. ׸...

  ̷ν   CD   غ  Ͽ. 
   Ĵ  ̴. 
   disk   ִ Ȯ϶. 
  ׸, "mkisofs -o filename path" 
  (path ISO9660 formmat copy directory Īϰ, filename 
    file̴.)̶ ϸ ȴ. 
  mkisofs program Rock Ridge extensionkvf   option 
   ִ. Eric Youngdale  man page ϵ. 
    "cdwrite scsi_device < cdrom_file" (scsi_device 
  generic SCSI devicḛ, cdrom_file IOS9660 image file̴)  
  ϶. cdwrite program  ణ option 
  - "-speed"(single/double speed ), "-dummy"(disk testϱ) 
    -  ִ. cdwrite.c  option   ִ. 

  4.  Thank you

     ذϱ   ֽ е մϴ;
    mkisofs  Eric Youngdale, 
    cdwrite program   Adam Richter,
    SCSI generic problem   ֽ Joseph Julicher, 
    1542 setting  ֽ Mike McKenna, 
  ׸  峭   ֵ  ֽ
  濵 в  帳ϴ.
