99 lines
3.3 KiB
Plaintext
99 lines
3.3 KiB
Plaintext
|
February 25, 2002
|
||
|
|
||
|
MacOS 10.1 driver now in the tree in libscg/scsi-mac-iokit.c.
|
||
|
|
||
|
It supports:
|
||
|
* Firewire, USB, and ATAPI MMC-3 compliant burners
|
||
|
* SCSI parallel bus attached burners (requires MacOS X.1.3)
|
||
|
|
||
|
It does not support:
|
||
|
* Older non MMC-3 burners
|
||
|
* CD-ROM drives/DVD-ROM drives (i.e. non-burners)
|
||
|
|
||
|
Note that this is a limitation of MacOS X and not of the driver.
|
||
|
See the end of the document if you're curious why.
|
||
|
|
||
|
If you just want to burn ISO images, you may want to consider using Apple's
|
||
|
hdiutil program, but it is not clear how standard compliant this method is.
|
||
|
|
||
|
Building
|
||
|
--------
|
||
|
|
||
|
Note if you installed MacOS X on a HFS+ volume, make install will fail if
|
||
|
there is a file called INSTALL in the directory tree because this Filesystem
|
||
|
is not POSIX compliant. POSIX requires to honor character case but HFS+
|
||
|
ignores the character case. If you like to use "make install" rename
|
||
|
INSTALL to something else. (e.g. INSTALL.txt)
|
||
|
|
||
|
|
||
|
Device Naming
|
||
|
-------------
|
||
|
|
||
|
You need to pass a device name on the command line to the cdrecord utility
|
||
|
|
||
|
CD burners: (probably) IOCompactDiscServices
|
||
|
DVD burners: (probably) IODVDServices
|
||
|
|
||
|
# ./cdrecord dev=IOCompactDiscServices -toc
|
||
|
|
||
|
or if you have multiple drives, you can append a number to differentiate
|
||
|
|
||
|
# ./cdrecord dev=IOCompactDiscServices/2 -toc
|
||
|
|
||
|
That should talk to the second CD-R on the system (NOT TESTED).
|
||
|
|
||
|
Sharing nicely with the Finder
|
||
|
------------------------------
|
||
|
|
||
|
The MacOS 10.1 Finder will offer to burn any blank media you put into
|
||
|
the burner. However, you don't want to use the Finder, you want to
|
||
|
use cdrecord! So, how do you get around this problem?
|
||
|
|
||
|
When you insert the media, the Finder asks "Do you want to prepare this
|
||
|
disc?". Click on the "Ignore" button.
|
||
|
|
||
|
The Finder will then say "No volumes found. Click Continue to continue
|
||
|
without ejecting". Click on the "Continue" button.
|
||
|
|
||
|
|
||
|
Common Errors
|
||
|
-------------
|
||
|
|
||
|
No matching device ... found:
|
||
|
Make sure you typed the device names correctly. See above. Use ioreg
|
||
|
-l to find if there is an IOCompactDiscServices or IODVDServices in
|
||
|
the device tree.
|
||
|
|
||
|
Unable to get exclusive access:
|
||
|
Another programs (usually the Finder) has exclusive access to the drive.
|
||
|
See "Sharing Nicely with the Finder"
|
||
|
|
||
|
Unable to get plugin interface:
|
||
|
The SCSI Architecture Family of drivers (supports Firewire, ATAPI, and
|
||
|
USB) has a special module that allows user code like libscg to send
|
||
|
SCSI commands to a device. This module is only attached, though, if
|
||
|
the kernel device driver thinks the device is sufficiently interesting
|
||
|
(e.g. the kernel thinks it's a burner).
|
||
|
|
||
|
You can see if the module is loaded by looking for
|
||
|
SCSITaskUserClientIniter in the output of ioreg -l.
|
||
|
|
||
|
Why doesn't it support my SCSI device?
|
||
|
--------------------------------------
|
||
|
|
||
|
Apple's kernel drivers enforces the rule that application cannot send
|
||
|
SCSI commands to devices for which they feel they have enough kernel
|
||
|
support. This includes hard disks and CD/DVD ROMs. They make an exception
|
||
|
for burners, though.
|
||
|
|
||
|
There are two possible work-arounds, neither of which has been
|
||
|
implemented. One is to write a kernel driver that wraps the Apple
|
||
|
kernel drivers and exposes a raw SCSI interface, overriding the Apple
|
||
|
kernel drivers. The other is to write a SCSI device emulator at user
|
||
|
mode that translates SCSI commands into the appropriate interface
|
||
|
calls to IOKit.
|
||
|
|
||
|
Bugs
|
||
|
----
|
||
|
Send bugs to: csapuntz@stanford.edu
|