[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: WRITE@LBA=3e0c30h failed with SK=3h/WRITE ERROR]: Input/output error (DL)



Hi,

> is there something that could be learnt from 6/6 sucesses

Probably yes.
I will re-read the specs about the layer break
and any variation which could be tried with
DVD+R DL.


> With growisofs, it was alsmost complete, cdrskin and cdrecord seemed to
> be able to wrote only half of my file.

The error codes received by growisofs and cdrskin
are different from those received by cdrecord.
Also, the cdrecord problem occurs quite near to
the suspected layer break address.
The cdrskin failure shows substantial distance to
that address and growisofs even much more.

I'd say the problem with cdrecord is a different
one.

> Maybe I should retry one with growisofs ?

Oh yes. (Although i'd like to see more cdrskin
attempts. But growisofs had the better introduction.:))

----------

The newest mail from Gregoire gives me opportunity
to substantiate my opinion about cdrecord having a
systematic problem that is different from the one
with cdrskin and growisofs:

> mkisofs $OPTS -V $1 $2|cdrecord driveropts=layerbreak=2086912 $COMCD

2086912 blocks = 4076 MiB

> Track 01: 4075 of 8124 MB written (fifo  99%) [buf  99%]   8.2x.cdrecord:
> faio_wait_on_buffer for writer timed out.
> cdrecord: Input/output error. write_g1: scsi sendcmd: no error
> CDB:  2A 00 00 1F D7 E9 00 00 1F 00
> write track data: error after 4273948672 bytes

The "1F" in CDB means 31 blocks are to be written 
by this WRITE10 command.
The "1F D7 E9" means write address is 2086889.
(Confirmed by: 4273948672 / 2048 == 2086889)

The write size of 31 blocks seems systematic:
2086889 % 31 == 0

The man page of cdrecord says:
"The manual layer break value needs to be a mul-
 tiple of the ECC sector size which is 16 logical 2048
 byte sectors in case of DVD" 

2086912 - 2086889 == 23
The failing write command is 31 blocks long and
thus touches both layers.

That might be contrary to MMC-5 4.3.7.5.3,
Dual Layer Recording: Crossing the Layers:
"
Since DVD+R DL format follows the DVD+R format,
there is only one pre-condition when crossing
the layers: Crossing the layers shall occur at
an ECC block boundary. [I.e. multiple of 16]
A typical example of crossing the layers during
recording is shown in Figure 54. [...]
When a write command requires more capacity than
remains on layer 0, the write continues on layer 1
[...]
"
That last sentence leaves room for interpretation.

----------

Gregoire: what happens if you choose a layer break
that is a multipe of 31 and 16 = 496 ?

I.e. divide the size of your image by 2 * 2048 = 4096,
round up to the next multiple of 496 and use that
as layer break.

Rob and CJ: what are your magic layer break values
which made cdrecord work on DVD+R DL ?


> Hard...

But makes it more exciting.

(Neither cdrskin nor growisofs write 31 blocks per
command to DVD. We write 16 blocks.)


Have a nice day :)

Thomas


Reply to: