> The first drive identified itself as "Generic 2.15" and the second
> drive identified itself as "Optorite DVD RW DD0203 2.11".
Might be same OEM, meaning that they might be sharing firmware [and
consequently firmware bugs]. It's a djungle out there...
> I have
> located a firmware update for the DD0203 drive from Optorite and
> updated the firmware to 2.30. Still having the same problems.
>
> The burn process will complete without any errors, however, the
> resulting disk is not usable. It can be mounted and a directory
> can be read. But the files will all return seek errors like below.
>
> scsi0: ERROR on channel 0, id 0, lun 0, CDB: Request Sense 00 00 00 40 00
> Current sd0b:00: sense key Medium Error
> Additional sense indicates No seek complete
> I/O error: dev 0b:00, sector 52996
>
> These errors are typical of the burned DVD+RW from other drives as
> well. The media can be erased and then reused. I have confirmed
> that the media is usable in another drive.
So it can't read media recorded in *other* recorders either, not only
own media. At the same time *other* units can read media recorded in it.
Isn't it a definition of broken unit?
> Because the drive burned a DVD+RW disk correctly under Win98SE I am
> having a hard time condemning the drive itself.
One thing comes to mind. It's possible that Nero applies OPC, Optimal
Power Calibration procedure even to DVD+RW, which might do the trick.
Note that OPC is defined in DVD-dash context only, but there is a chance
that some firmwares support or even require it even in DVD+context. To
figure this one out try following:
- save attached program in dvd+rw-tools source catalog;
- compile it with 'g++ -o opc opc.cpp';
- execute './opc /dev/dvd' with DVD+RW media in;
- *without* reloading media, save output from 'dvd+rw-mediainfo /dev/dvd
verbose' and send it to me;
- *without* reloading media, perform a recording with growisofs;
Do not treat attached program as an extra "tool," but as disposable code
snippet. 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()) printf("%x\n",err);
wait_for_unit (cmd,NULL);
}