parent
750faeb2a9
commit
b9314d2620
60
Libburn.md
Normal file
60
Libburn.md
Normal file
@ -0,0 +1,60 @@
|
||||
libburn is a library by which preformatted data get onto optical media:
|
||||
CD, DVD, BD (Blu-Ray).
|
||||
On Linux it uses either `/dev/sgN` (on kernel 2.4 with `ide-scsi`, or optional
|
||||
with concurrent operation of multiple drives) or `/dev/srM` (kernel 2.6 and
|
||||
newer), `/dev/hdX` ( on kernel 2.6).
|
||||
On FreeBSD it uses `/dev/cdN`, eventually via atapicam.
|
||||
On Solaris addresses look like `/dev/rdsk/cXtYd0s2`.
|
||||
|
||||
libburn also offers a facility for reading data blocks from its drives
|
||||
without using the normal block device i/o, which has its advantages and
|
||||
disadvantages. It seems appropriate, nevertheless, to do writing
|
||||
and reading via the same channel. On several Linux systems, the block device
|
||||
driver needs reloading of the drive tray in order to make available freshly
|
||||
written data. The libburn read function does not need such a reload.
|
||||
|
||||
Audio CD can be written and read.
|
||||
|
||||
The code of libburn is independent of cdrecord. Its CD SAO capabilities
|
||||
are inherited from [old libburn](http://icculus.org/burn).
|
||||
Its CD TAO capabilities are learned from MMC-1.
|
||||
Its DVD and BD capabilities are learned from studying the code of
|
||||
`dvd+rw-tools` and MMC-5 specs. No code but only the pure SCSI knowledge
|
||||
has been taken from `dvd+rw-tools`, though.
|
||||
|
||||
The underlying knowledge about drive control and media types is collected in
|
||||
[doc/cookbook.txt](https://dev.lovelyhq.com/libburnia/libburn/raw/HEAD/doc/cookbook.txt).
|
||||
But it should by no means be necessary to study this in order to understand
|
||||
the API and the usage of libburn.
|
||||
|
||||
-------------
|
||||
|
||||
For an overview of the drive/media models see "General information paragraphs"
|
||||
in [man cdrskin](http://scdbackup.sourceforge.net/man_1_cdrskin.html)
|
||||
The API of libburn is documented in
|
||||
[libburn/libburn.h](https://dev.lovelyhq.com/libburnia/libburn/raw/HEAD/libburn/libburn.h).
|
||||
|
||||
Small demo applications named
|
||||
[libburner](https://dev.lovelyhq.com/libburnia/libburn/raw/HEAD/test/libburner.c)
|
||||
and
|
||||
[telltoc](https://dev.lovelyhq.com/libburnia/libburn/raw/HEAD/test/telltoc.c)
|
||||
show how to burn and how to inquire drive and loaded medium.
|
||||
|
||||
On base of libburn there is a cdrecord emulation named [cdrskin](Cdrskin)
|
||||
which is integral part of the libburn git repo and its releases.
|
||||
|
||||
GUI application [xfburn](http://goodies.xfce.org/projects/applications/xfburn)
|
||||
makes use of libburn.
|
||||
|
||||
libburn is also used by [libisoburn](Libisoburn) and its application
|
||||
[xorriso](Xorriso).
|
||||
|
||||
libburn shares an interface object definition (`struct burn_source`)
|
||||
with [libisofs](Libisofs) by
|
||||
which a filesystem image stream can be received and written to media.
|
||||
libisoburn uses the read function of
|
||||
libburn to create a data input object for libisofs.
|
||||
|
||||
It is advised to use the most recent release version as published on
|
||||
[release page](Releases).
|
||||
|
Loading…
Reference in New Issue
Block a user