I recommend you to use cdrecord instead of growisofs.
Cdrecord will tell the drive to do laser power calibration
cdrecord does not do that to DVD+ media.
Wrong: cdrecord of course does a power calibration for DVD+
I thought it bypassed that for DVD+,
It is.
I saw it in the code and can't find
it again. It looked as if a text which fails on DVD+ went around that logic.
Does cdr_opc get set somewhere I'm missing? That could explain why some
media I have don't work well with one burner and cdrecord.
It should be noted that explicit *host-initiated* OPC procedure is *not*
defined for single-layer DVD+ media. Meaning that if you refer to single
layer media, then there hardly is cure (at least not in pure MMC terms).
As it turns out it, host-initiated OPC, is defined for double layer
though and it might make difference...
Christian [and Bill], if you have energy and media to spare, could you
test following:
- download dvd+rw-tools source and unpack;
- copy attached opc.cpp to dvd+rw-tools source catalog;
- change directory to dvd+rw-tools source catalog;
- compile it with 'g++ opc.cpp -o opc';
- load media;
- execute './opc /dev/dvd';
- then *without reloading the media* attempt growisofs recording;
It might be interesting to have a look at verbose dvd+rw-mediainfo
output before and after opc. In other words also execute dvd+rw-medianfo
/dev/dvd -v before and after opc (all *without reloading the media*),
compare them and send them [*if* they are different]. A.
#include "transport.hxx"
int main(int argc,char *argv[])
{ Scsi_Command cmd;
int err;
if (!cmd.associate(argv[1])) perror("can't open"),exit(1);
cmd[0]=0x54;
cmd[1]=0x1;
cmd[9]=0;
if (err=cmd.transport()) sperror("SEND OPC INFORMATION",err);
wait_for_unit (cmd,NULL);
}