1February 25, 2002 2 3MacOS 10.1 driver now in the tree in libscg/scsi-mac-iokit.c. 4 5It supports: 6 * Firewire, USB, and ATAPI MMC-3 compliant burners 7 * SCSI parallel bus attached burners (requires MacOS X.1.3) 8 9It does not support: 10 * Older non MMC-3 burners 11 * CD-ROM drives/DVD-ROM drives (i.e. non-burners) 12 13Note that this is a limitation of MacOS X and not of the driver. 14See the end of the document if you're curious why. 15 16If you just want to burn ISO images, you may want to consider using Apple's 17hdiutil program, but it is not clear how standard compliant this method is. 18 19Building 20-------- 21 22Note if you installed MacOS X on a HFS+ volume, make install will fail if 23there is a file called INSTALL in the directory tree because this Filesystem 24is not POSIX compliant. POSIX requires to honor character case but HFS+ 25ignores the character case. If you like to use "make install" rename 26INSTALL to something else. (e.g. INSTALL.txt) 27 28 29Device Naming 30------------- 31 32You need to pass a device name on the command line to the cdrecord utility 33 34CD burners: (probably) IOCompactDiscServices 35DVD burners: (probably) IODVDServices 36 37# ./cdrecord dev=IOCompactDiscServices -toc 38 39or if you have multiple drives, you can append a number to differentiate 40 41# ./cdrecord dev=IOCompactDiscServices/2 -toc 42 43That should talk to the second CD-R on the system (NOT TESTED). 44 45Sharing nicely with the Finder 46------------------------------ 47 48The MacOS 10.1 Finder will offer to burn any blank media you put into 49the burner. However, you don't want to use the Finder, you want to 50use cdrecord! So, how do you get around this problem? 51 52When you insert the media, the Finder asks "Do you want to prepare this 53disc?". Click on the "Ignore" button. 54 55The Finder will then say "No volumes found. Click Continue to continue 56without ejecting". Click on the "Continue" button. 57 58 59Common Errors 60------------- 61 62No matching device ... found: 63Make sure you typed the device names correctly. See above. Use ioreg 64-l to find if there is an IOCompactDiscServices or IODVDServices in 65the device tree. 66 67Unable to get exclusive access: 68Another programs (usually the Finder) has exclusive access to the drive. 69See "Sharing Nicely with the Finder" 70 71Unable to get plugin interface: 72The SCSI Architecture Family of drivers (supports Firewire, ATAPI, and 73USB) has a special module that allows user code like libscg to send 74SCSI commands to a device. This module is only attached, though, if 75the kernel device driver thinks the device is sufficiently interesting 76(e.g. the kernel thinks it's a burner). 77 78You can see if the module is loaded by looking for 79SCSITaskUserClientIniter in the output of ioreg -l. 80 81Why doesn't it support my SCSI device? 82-------------------------------------- 83 84Apple's kernel drivers enforces the rule that application cannot send 85SCSI commands to devices for which they feel they have enough kernel 86support. This includes hard disks and CD/DVD ROMs. They make an exception 87for burners, though. 88 89There are two possible work-arounds, neither of which has been 90implemented. One is to write a kernel driver that wraps the Apple 91kernel drivers and exposes a raw SCSI interface, overriding the Apple 92kernel drivers. The other is to write a SCSI device emulator at user 93mode that translates SCSI commands into the appropriate interface 94calls to IOKit. 95 96Bugs 97---- 98Send bugs to: csapuntz@stanford.edu 99