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