CDRTOOLS = cdrecord + cdda2wav + mkisofs |
Document last updated : 07/19/1999
Prepared by Michael Brinke-Engel (mikebren@sco.com) and Ronald Joe Record (rr@ronrecord.com)
Configuration
CD-Writer Configuration
ATAPI - Writers
Necessary Patches
Known limitations
How to access the cdwriter?
Default values and /etc/default/cdrecord
Usage
To backup data to your CD Recorder
Supported drives for cdrtools
Building
Compilation platforms
Source code changes
Introduction |
The CDRTOOLS are a set of programs which allow the creation of CD images (mkisofs), extraction of digital audio from audio CD's (cdda2wav) and burning of any kind of data to recordable / rewritable CD's (cdrecord), known to work with a wide variety of todays available CD-Writers / CD-Rewritables on allmost 20 different operating systems.
Program | Author | Copyright |
---|---|---|
cdrecord | Jörg Schilling (schilling@fokus.gmd.de) | © Jörg Schilling |
cdda2wav | Heiko Eißfeldt (heiko@colossus.escape.de) | © Heiko Eißfeldt |
mkisofs | Eric Youngdale (ericy@gnu.ai.mit.edu) | © Yggdrasil Computing, Incorporated |
The latest available binary distribution for both SCO OpenServer and UnixWare are the compiled binaries from the "cdrecord-1.8a23.tar.gz" source package consisting of:
For change history please see the AN-1.8a* files at Jörg Schilling's FTP site
Platform | SCSI Writer | ATAPI Writer |
---|---|---|
SCO OpenServer 5.0.0 | unsupported (no SCSIUSERCMD2) | - |
SCO OpenServer 5.0.2 | unsupported (no SCSIUSERCMD2) | - |
SCO OpenServer 5.0.4 | fully working | - |
SCO OpenServer 5.0.5 | fully working | - |
SCO UnixWare 2.1.3 | fully working, PTF needed | - |
UnixWare 7.0.1 | fully working, PTF needed | - |
UnixWare 7.1 | fully working | - |
Configuration |
While on UnixWare your cdwriter will be autodetected/autoconfigured, you need to manually configure your cdwriter on SCO OpenServer, if you have not already used the cdwriter to install your OS.
To add the cdwriter as an additional device on SCO OpenServer you need to run the mkdev cdrom command to add the device just the same way you would normally add any additional cd-rom.
ATAPI writers are currently unsupported as we need some enhancements in the IDE drivers necessary to handle the SENSE data from the ATAPI writers the same way as with SCSI writers.
Necessary Patches for UnixWare 2.1.X / UnixWare 7.0.X
If you want to use cdrecord/cdda2wav on SCO UnixWare 2.1.X / UnixWare 7.0.X you need to install one of the following PTF's depending on your installed scsi controller which controls your writer:
Driver | PTF required |
---|---|
c8xx | ptf7047 |
qlc1020 | ptf7048 - only UnixWare 7.0.1 |
adsl | ptf7049 |
adsb | ptf7062 |
dak | ptf7063 |
These PTF's are necessary to overcome the limit of 512 bytes per logical block in any scsi passthrough command on these controllers. Please make sure that you don't override these PTF's with any vendor supplied hba unless you know that the 512 byte limit is also fixed with the new vendor supplied driver.
The PTF's are freely available via anonymous ftp to ftp.sco.com in ftp://ftp.sco.com/SLS/.
The above controllers are known to have this limitation, but - this does not imply that there is no other hba showing the same limitation.
!!! These PTF's are not necessary when using UnixWare 7.1 !!!
Although cdrecord allows the creation of multisession CD-R's, accessing multisession CD's is not fully supported on both platforms, UnixWare and OpenServer. You will only be able to access the first session.
The standard LINUX (or Solaris) device addressing method does not work on UnixWare & OpenServer as we don't have a generic scsi driver. That's also the reason why the -scanbus option of cdrecord does not work. The current implementation of the -scanbus option of cdrecord is bound to the existence of the /dev/scg driver.
As OpenServer and UnixWare don't have this /dev/scg generic scsi driver, we use the cdrom target drivers (Srom on OpenServer and SC01 on UnixWare) to access the CD-Writers devices (all cdwriters are in general enhanced cd-rom devices).
This therefore changes the idea of specifying the device parameters from
dev=bus, id, lun (Linux, Solaris etc.)to be
dev=number-of-cd-device, id, lun (OpenServer, UnixWare)
These target drivers (Srom, SC01) allow cd-rom devices to be opened. These
devices are:
On OpenServer:
/dev/rcd0, /etc/rcd1 ... (enumeration starts with 0)and on UnixWare:
/dev/rcdrom/cdrom1, /dev/rcdrom/cdrom2 .... (enumeration starts with 1)
This gives us the following two methods to access the cdwriters:
Method 1 |
---|
cdrecord dev=X,Y,Z ... with X = the number of the cdrom device For OpenServer this is: 0 for /dev/rcd0, 1 for /dev/rcd1 etc. For UnixWare this is: 1 for /dev/rcdrom/cdrom1, 2 for /dev/rcdrom/cdrom2 etc. Y = the scsi id due to the fact of using the special device node for the scsi passthru, it does not matter at all what id we give to cdrecord, as only the number of the cdrom device is used to open the device node Remember, we don't have a generic scsi driver interface! Z = the lun Again, the same applies to the lun as to the id! Example for OpenServer: # cdrecord dev=0,6,0 ... will use the first cd-rom device as the writer with ID 6, Lun 0 and for UnixWare: # cdrecord dev=1,4,0 ... will use the first cd-rom device as the writer with ID 4, Lun 0
Method 2 |
---|
cdrecord dev=dev_node:Y,Z ... with dev_node = the special device node of the cdrom device For OpenServer this is: /dev/rcd0, /dev/rcd1 etc. For UnixWare this is: /dev/rcdrom/cdrom1, /dev/rcdrom/cdrom2 etc. Y = the scsi id due to the fact of using the special device node for the scsi passthru, it does not matter at all what id we give to cdrecord, as only the device node is used to do the open Remember, we don't have a generic scsi driver interface! Z = the lun Again, the same applies to the lun as to the id! Example for OpenServer: # cdrecord dev=/dev/rcd1:6,0 ... will use the /dev/rcd1 device as the writer and for UnixWare: # cdrecord dev=/dev/rcdrom/cdrom1:4,0 ... will use the /dev/rcdrom/cdrom1 device as the writerEither of the two methods can be used to specify the device on the command line and in the /etc/default/cdrecord file.
Default values can be set for the following options in /etc/default/cdrecord.
CDR_DEVICEThis may either hold a device identifier that is suitable to the open call of the SCSI transport library or a label in the file /etc/default/cdrecord that identifies a specific drive on the system.
CDR_SPEEDSets the default speed value for writing (see also -speed option).
CDR_FIFOSIZESets the default size of the FIFO (see also fs=# option).
IDENTIFIERAny other label is an identifier for a specific drive on the system. Such an identifier may not contain the characters ',', '/', '@' or ':'. Each line that follows a label contains a TAB separated list of items. Currently, three items are recognized: the SCSI ID of the drive, the default speed that should be used for this drive and the default FIFO size that should be used for this drive. The values for speed and fifosize may be set to -1 to tell cdrecord to use the global defaults. Typical lines on OpenServer may look like this:
teac1=0,5,0 4 8m teac2=1,6,0 -1 -1
This tells cdrecord that a drive named teac1 is configured as device 0 (/dev/rcd0) , target 5, lun 0 and should be used with speed 4 and a FIFO size of 8 MB. A second drive, named teac2, may be found as device 1 (/dev/rcd1), target 6, lun 0 and uses the default speed and the default FIFO size.
Example /etc/default/cdrecord
# ------------------------------------------------------ # default device and speed and fifo size # ------------------------------------------------------ CDR_DEVICE=/dev/rcd1:4,0 CDR_SPEED=6 CDR_FIFOSIZE=8m # ------------------------------------------------------ # Identifier for TEAC CDR56S # ------------------------------------------------------ teac=1,4,0 6 8m # ------------------------------------------------------ # Identifier for Yamaha CDRW4416S # ------------------------------------------------------ cdrw=2,6,0 4 8m
Usage |
To backup data to your CD Recorder
mkisofs -L -l -v -r -o /tmp/outfile .note you will have one additional file called rr_moved which is an empty directory. The -r keeps anything from being written into that directory.
cdrecord -v dev=/dev/rcdrom/cdrom2:5,0 /tmp/outfile speed=4To know what device address your writer needs, see the above "How to address the cdwriter"
mkdir /cdrwThe CDR/CDRW requires the -r command (and the -F cdfs option on UnixWare).
mount -r -F cdfs /dev/cdrom/cdrom2 /cdrw
We have tested these drives on SCO platforms:
Porting and Build Notes |
All below changes are necessary for the current version (1.8a23) on UnixWare as Jörg has not yet fully incorporated all SCO changes to compile the standard distribution out of the box.
Jörg wants to check another way of implementing the necessary changes to compile on UnixWare in order to avoid special handling of cdrecord common source (see issue 1).
<= line 254: #ifndef UNIXWARE #define SC_PARITY #endif line 402: #ifndef UNIXWARE #define scb u_scb.Scb #endif
<= global replacement ? scb -> u_scb.Scb
<= global replacement ? scb -> u_scb.Scb
./conf/config.guess <= modified (-> UnixWare 7)
Related Links |
You can find lots of interesting links related to CD and Recording on Jörg Schillings Webserver
End of Document |