[Libburn] Condensed list of problems with libburn
scdbackup at gmx.net
scdbackup at gmx.net
Mon Dec 12 12:28:43 PST 2005
Hi,
as announced: my condensed problem list which emerged from
the development of cdrskin.
Sorted by personally-felt-pain priority.
The problems still occur with libburn from CVS as of Dec 8, 2005
(as well as with libburn-0.2.tar.gz).
-----------------------------------------------------------------------------
If a drive device file (here /dev/sg0) offers r-permission
but not w-permission then the call burn_drive_scan() hangs
quite forever. The CPU load goes up to 100 %.
Ctrl+C is necessary.
So this is an evil user trap:
crw-rw-r-- 1 root disk 21, 0 Sep 23 2003 /dev/sg0
There might be valid sysadmin reasons for such a setting.
Then it prevents the use of any other drive, too.
-----------------------------------------------------------------------------
I found no means for an application to determine the version
of libburn at compile time and at run time.
If there aren't any yet, i propose macros
#define BURN_LIBRARY_VERSION "0.2"
#define BURN_SNAPSHOT_DATE "2005.12.08.203854"
and a function
void burn_version_strings(char library_version[80],
char snapshot_date[80])
-----------------------------------------------------------------------------
The following call does not eject my HL-DT-ST DVDRAM GSA-4082B
(Linux 2.4.21-215-athlon, ide-scsi) :
burn_drive_release(drive, 1);
Maybe noteworthy, some superuser commands:
# ls -l /dev/sg0
crw-rw-rw- 1 root disk 21, 0 Sep 23 2003 /dev/sg0
# eject /dev/sg0
eject: unable to eject, last error: Operation not permitted
Whereas eject succeeds on
# ls -l /dev/sr0
brw-rw---- 1 thomas floppy 11, 0 Sep 23 2003 /dev/sr0
-----------------------------------------------------------------------------
The following call does not set speed to 4x.
k_speed= 4*150;
burn_drive_set_speed(drive,k_speed,k_speed);
My LG can burn CD-RW 10x, i used 4x-12x CD-RW media which burn
10x with cdrecord.
With libburn they burn at 8x.
On my older PC (Intel PIII) with kernels 2.4.4 or 2.6.14 libburn
achieves 12x on a LITE-ON LTR48125S.
But again, no chance to influence speed.
-----------------------------------------------------------------------------
RIP-14.5 (kernel 2.6.14) only:
The following call sequence returns false status information about the media
if the tray was out and gets loaded by burn_drive_grab():
burn_drive_grab(drive, 1);
...
ret= burn_disc_erasable(drive);
This sequence returns a correct reply:
burn_drive_grab(drive, 1);
burn_drive_release(drive,0);
burn_drive_grab(drive, 1);
...
ret= burn_disc_erasable(drive);
RIP-14 is a rescue system:
http://www.tux.org/pub/people/kent-robotti/looplinux/rip
See also below, differing speed info on first and second query after load.
(The speed thing happens on 2.4.21 too.)
-----------------------------------------------------------------------------
The following call does not cause padding to be appended
int padding= 52428800;
burn_track_define_data(tr,0,padding,1,BURN_MODE1);
Actually parameter "tail" is ignored in burn_track_define_data() .
-----------------------------------------------------------------------------
-----------------------------------------------------------------------------
There are two groups of messages printed by libburn
regardless of verbosity level :
ignored nwa: 0
ctladr|trno|indx|form|scms| msf
------+----+----+----+----+--------
4 1 | 00 | 00 | 01 | 00 |00:00:00
4 1 | 01 | 00 | 10 | 00 |00:00:00
4 1 | 01 | 01 | 10 | 00 |00:02:00
4 1 | AA | 01 | 01 | 00 |11:08:00
There should be a way to disable them.
-----------------------------------------------------------------------------
The following call returns confusing values with 4x and 4x-12x CD-RW
ret= burn_drive_get_write_speed(drive);
printf(" burn_drive_get_write_speed = %d\n",ret);
yields directly after loading the
burn_drive_get_write_speed = 4234
and on second try
burn_drive_get_write_speed = 1764
With kernel 2.6.14 and LITE-ON burner :
8448 resp. 2112
No difference between 4x and 12x media.
-----------------------------------------------------------------------------
I feel itched by the fact that source data size is type int and
not off_t or double.
-----------------------------------------------------------------------------
-----------------------------------------------------------------------------
-----------------------------------------------------------------------------
Verbosity level 1 is quite unusable because it
reports many times and very fast
logical unit is in the process of becoming ready
-----------------------------------------------------------------------------
The following does not prevent actual burning on my LG GSA-4082B:
burn_write_opts_set_simulate(o, 1);
-----------------------------------------------------------------------------
Have a nice day :)
Thomas
More information about the libburn
mailing list