You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

318 lines
13 KiB

14 years ago
14 years ago
14 years ago
14 years ago
14 years ago
  1. --------------------------------------------------------------------------
  2. cdrskin Wiki - plain text copy
  3. --------------------------------------------------------------------------
  4. [[Image(source:/libburn/trunk/cdrskin/doener_150x200_tr.png)]] [ Doener]
  5. '''cdrskin is the cdrecord compatibility middleware of libburn.'''
  6. Its paragon, cdrecord, is a powerful GPL'ed burn program included in Joerg
  7. Schilling's cdrtools. cdrskin strives to be a second source for the services
  8. traditionally provided by cdrecord. Currently it does CD-R and CD-RW this way.
  9. Overwriteable media DVD-RAM, DVD+RW, DVD-RW, and BD-RE are handled differently
  10. than with cdrecord-ProDVD in order to offer TAO-like single track recording.
  11. Sequential DVD-R[W], DVD+R, DVD+R DL are handled like CD-R[W] with TAO and
  12. multi-session. Additionally cdrskin offers cdrecord-ProDVD-like mode DAO
  13. with DVD-R[W].
  14. cdrskin does not contain any bytes copied from cdrecord's sources.
  15. Many bytes have been copied from the message output of cdrecord
  16. runs, though. The most comprehensive technical overview of cdrskin
  17. can be found in [ cdrskin/README].
  18. About libburn API for burning CD and DVD:
  19. --------------------------------------------------------------------------
  20. For yet unsupported media types see the advice to use dvd+rw-tools at
  21. the end of this text.
  22. --------------------------------------------------------------------------
  23. About the command line options of cdrskin:
  24. They are described in detail in [ section OPTIONS] of
  25. [ man cdrskin]
  26. There are two families of options: cdrecord-compatible ones and options
  27. which are specific to cdrskin. The latter are mostly used to configure
  28. cdrskin for its task to emulate cdrecord. There are some, nevertheless,
  29. which provide rather exotic unique features of cdrskin.
  30. The cdrecord-compatible options are listed in the output of
  31. {{{
  32. cdrskin -help
  33. }}}
  34. where the option "help" has *one* dash. Online: [ cdrskin -help]
  35. For these options you may expect program behavior that is roughly the
  36. same as described in original man cdrecord .
  37. Online:
  38. The cdrskin-specific options are listed by
  39. {{{
  40. cdrskin --help
  41. }}}
  42. where the option "help" has *two* dashes. Online: [ cdrskin --help]
  43. Some are very experimental and should only be
  44. used in coordination with the libburnia developer team.
  45. Some are of general user interest, though:
  46. --------------------------------------------------------------------------
  47. --devices allows the sysadmin to scan the system for possible drives
  48. and displays their detected properties.
  49. The drives are listed one per line, with fields:
  50. libburn-drive-number, sysadmin-device-file, permissions, vendor, type
  51. {{{
  52. 0 dev='/dev/sr0' rwrw-- : 'HL-DT-ST' 'DVDRAM GSA-4082B'
  53. }}}
  54. This feature is valuable since cdrskin -scanbus will not give you
  55. the device file name and its current permissions.
  56. cdrskin will accept of course the proposed dev= option as address
  57. for any usage of the drive.
  58. Different from cdrecord, cdrskin is intended to be run without special
  59. privileges, i.e. no superuser setuid. It is intended that the sysadmin
  60. controls drive accessability by rw-permissions of the drive rather than
  61. by x-permission of the burn binary. To be usable with cdrskin, the drive
  62. has to offer both, r- and w-permission.
  63. --------------------------------------------------------------------------
  64. blank=as_needed applies the suitable blanking or formatting to make
  65. any supported type of media ready for writing from scratch.
  66. If this is not possible, e.g. because the media is written and not
  67. re-usable, then the program run fails.
  68. Option blank= offers several specialized blanking and formatting types,
  69. which one may use for particular purposes on DVD-RW, DVD-RAM and BD-RE.
  70. (See also below: blank=format_overwrite)
  71. The drive offers a list of possible formats by cdrskin option --list_formats.
  72. One should aquire MMC background information before making use of them.
  73. --------------------------------------------------------------------------
  74. cdrskin does not only read from and write to optical drives which comply
  75. to the MMC standard but also does the same with regular files or block
  76. devices other than optical drives.
  77. Because the power to alter a disk file might be a bad surprise for a
  78. traditional user of cdrecord, it is necessary to give option
  79. --allow_emulated_drives before an emulated drive may be addressed.
  80. Eventually one of the startup files would be a good place for it.
  81. See man page, section FILES.
  82. The addresses of emulated drives begin with the prefix "stdio:".
  83. {{{
  84. dev=stdio:/tmp/pseudo_drive
  85. dev=stdio:/dev/usbstick
  86. }}}
  87. Regular files and block devices behave much like DVD-RAM.
  88. Other file types may be valid targets for write-only operations.
  89. This includes standard output, named pipes, character devices
  90. {{{
  91. dev=stdio:/dev/fd/1
  92. dev=stdio:/tmp/named_pipe
  93. dev=stdio:/dev/ptyxy
  94. }}}
  95. These files behave much like blank DVD-R.
  96. All files used as pseudo-drives have to offer rw-permission.
  97. --------------------------------------------------------------------------
  98. The DVD capabilities of cdrskin differ from those of cdrecord-ProDVD. cdrskin
  99. offers TAO-like multi-session with DVD-R[W], DVD+R[ DL] and TAO-like single
  100. session with overwriteable DVD media. It also offers DAO on DVD-R[W] which is
  101. probably the same as the traditional cdrecord-ProDVD write mode.
  102. Non-cdrecord blank mode blank=format_overwrite brings a DVD-RW
  103. disc from its initial profile "Sequential Recording" into profile state
  104. "Restricted Overwrite".
  105. {{{
  106. cdrskin dev=/dev/sr0 -v blank=format_overwrite
  107. }}}
  108. DVD-RAM, DVD+RW, BD-RE and overwriteable DVD-RW appear to cdrskin as blank
  109. media which are capable of taking only a single track. This track may be
  110. positioned on a 32KiB aligned address, though.
  111. {{{
  112. cdrskin ... write_start_address=2412m ...
  113. }}}
  114. Non-cdrecord blank mode blank=deformat_sequential brings an overwriteable
  115. DVD-RW back into state "Sequential Recording" with the capability of doing
  116. multi-session, if the drive is capable of "Incremental Streaming"
  117. (MMC feature 21h).
  118. Used sequential DVD-RW media may be blanked by blank=fast or blank=all which
  119. normally both do full blanking. Thus sequential DVD-RW behave much like large
  120. CD-RW with possibly more than 99 tracks.
  121. blank=deformat_sequential does minimal blanking of DVD-RW which usually yields
  122. media incapable of "Incremental Streaming".
  123. Option --prodvd_cli_compatible activates blank=fast and blank=all for
  124. overwriteable DVD-RW which normally ignore those two options. It also makes
  125. option -multi tolerable with media and write modes which are not suitable for
  126. multi-session. (The default behavior of cdrskin deems me to be preferrable.)
  127. Option --grow_overwriteable_iso gives cdrskin ISO pseudo-multi-session
  128. capabilities on DVD-RAM, DVD+RW, BD-RE similar to growisofs.
  129. Associated options blank=, -multi, -msinfo and -toc are available in this case.
  130. They either pretend a blank media (if there is no ISO 9660 image) or appendable
  131. media with a single session and track on it. blank= invalidates ISO images.
  132. --------------------------------------------------------------------------
  133. assert_write_lba=<lba> allows to ensure that the start block address which
  134. was used with the formatter program (e.g. mkisofs -C) matches the start block
  135. address which will be used by the upcoming burn.
  136. E.g. cdrskin aborts with an error message if
  137. {{{
  138. assert_write_lba=0
  139. }}}
  140. is given but an appendable media is to be burned which would start at
  141. block 68432.
  142. An ISO-9660 file system image must be prepared according to a particular
  143. block address on media. If the prepared address and the real address on media
  144. do not match then the filesystem will not be mountable or may even cause system
  145. trouble.
  146. A sequential archive format like afio or star will not necessarily need such
  147. a coordination of addresses. It might nevertheless be confusing to a reader
  148. if the archive does not start at block 0.
  149. --------------------------------------------------------------------------
  150. fifo_start_at=<num> is a throughput enhancer for unsteady data streams
  151. like they are produced by a compressing archiver program when piping to
  152. CD on-the-fly. It makes better use of the general property of a FIFO
  153. buffer to transport surplus bandwidth into the future. Yep. A time machine.
  154. One-way, i fear.
  155. FIFO originally was introduced by cdrecord's author Joerg Schilling in order
  156. to protect mediocre burner hardware from suffering buffer underruns
  157. and thus producing misburns (at 1x speed on CD-R media at the price of a
  158. DVD-RAM nowadays). This purpose would not justify a fifo any more -
  159. given the limited life time of burners and the seamless underrun protection
  160. of contemporary consumer drives.
  161. With an unsteady data stream the task of the buffer is to soak up peak
  162. performance and to release it steadily at the drive's maximum speed.
  163. The larger the buffer the more reserves can be built up and the longer
  164. input drought can be compensated.
  165. Original cdrecord has the historical property, though, to first wait until
  166. the buffer is completely filled. Best practice for fighting drive
  167. underruns, of course.
  168. With a very fat fs=# buffer (128 MB for 12x CD is not unrealistic) this
  169. can cause a big delay until burning finally starts and takes its due time.
  170. fifo_start_at=<num> makes cdrskin start burning after the given number of bytes
  171. is read rather than waiting for the FIFO to be completely full resp. the data
  172. stream to end. It risks a few drive buffer underruns at the beginning of burn
  173. - but modern drives stand this.
  174. Usage examples:
  175. {{{
  176. cdrskin ... fs=128m fifo_start_at=20m ...
  177. cdrskin ... fifo_start_at=0 ...
  178. }}}
  179. Note: no FIFO can give you better average throughput than the average
  180. throughput of the data source and the throughput of the burner.
  181. It can be used, though, to bring the effective throughput very close
  182. to the theoretical limit. Especially with high speed media.
  183. --------------------------------------------------------------------------
  184. --no_rc allows you to surely ban influence from systemwide or user specific
  185. default settings of cdrskin. Possible locations for such settings:
  186. /etc/default/cdrskin
  187. /etc/opt/cdrskin/rc
  188. /etc/cdrskin/cdrskin.conf
  189. $HOME/.cdrskinrc
  190. --------------------------------------------------------------------------
  191. dev_translation=<sep><from><sep><to> may be needed to foist cdrskin to
  192. frontend programs of cdrecord which do *not* ask cdrecord -scanbus but
  193. which make own assumptions and guesses about cdrecord's device addresses.
  194. Normally, cdrskin understands all addresses which are suitable for cdrecord
  195. under Linux. See cdrskin/README, "Pseudo-SCSI Adresses".
  196. This option is mainly for (yet unknown) exotic configurations or very
  197. stubborn frontend programs.
  198. If a frontend refuses to work with cdrskin, look into the error protocol
  199. of that frontend, look at the output of a run of cdrskin --devices and give
  200. cdrskin the necessary hint.
  201. Example: Your frontend insists in using "0,0,0" and --devices reported
  202. dev='/dev/hdc' resp. cdrskin dev=ATA -scanbus reported "1,0,0" then this
  203. would be the appropriate translation:
  204. {{{
  205. dev_translation=+0,0,0+/dev/hdc
  206. }}}
  207. The "+" character is a separator to be choosen by you.
  208. Currently i am not aware of the need to choose any other than "+"
  209. unless you get playful with custom translations like
  210. {{{
  211. dev_translation=-"cd+dvd"-1,0,0
  212. }}}
  213. See
  214. for an illustrated example with K3b 0.10 .
  215. --------------------------------------------------------------------------
  216. DVD advise:
  217. For burning of DVD/BD media other than DVD-RAM, DVD+RW, DVD+R, DVD+R DL,
  218. DVD-RW, DVD-R, BD-RE, the cdrskin project currently advises to use
  219. Andy Polyakov's dvd+rw-tools which despite their historic name are
  220. capable of all the media above and more, including BD discs.
  222. They are not compatible or related to cdrecord resp. cdrecord-ProDVD
  223. (now obsoleted by original source cdrtools cdrecord with identical
  224. capabilities besides the license key).
  225. --------------------------------------------------------------------------
  226. Advanced multi-session use cases:
  227. A special feature of dvd+rw-tools is growing of ISO-9660 filesystems on
  228. overwriteable media. This is not the same as multi-session writing of cdrskin
  229. with CD media, but retrieves additional information from the existing ISO
  230. image and finally manipulates the start sectors of this existing image.
  231. So, inspired by growisofs, cdrskin can offer DVD multi-session not only with
  232. sequential DVD-R[W] and with DVD+R [DL], but also with DVD-RAM, DVD+RW, BD-RE
  233. and even regular disk files or block devices other than CD/DVD writers.
  234. This is enabled by option --grow_overwriteable_iso.
  235. The libburnia project provides an integrated ISO-9660 multi-session tool
  236. named [wiki:Xorriso xorriso] which tries to go one step beyond
  237. growisofs. It uses [wiki:Libburn libburn] , [wiki:Libisofs libisofs]
  238. and [wiki:Libisoburn libisoburn].
  239. See [ man xorriso].
  240. --------------------------------------------------------------------------