> Jack Ciao wrote: > > Hi, > Recently, I restart to work on my burner program. I plan to > add > DVD-RW support to my program. But I met a strange problem about > the "write(10)" command. > > I found that DVR-A03 will fail to write data at some positions. I > try to observe log generated by the dvd-rw patch for cdrtools-1.11a08 > by Nicolae Mihalache. It seems the following command will be retried > about 697 times. > > Executing 'write_g1' command on Bus 0 Target 1, Lun 0 timeout 200s > CDB: 2A 00 00 00 02 6C 00 00 1F 00 > Sending 63488 (0xF800) bytes of data. > Write Data: 00 00 01 BA 44 00 45 2B A6 03 01 89 C3 F8 00 00 01 E0 07 > EC 81 00 00 EF BF 23 2B 10 2C A4 DC 35 04 13 00 E4 E4 D4 7E 8F B8 04 > 3D 94 47 89 5D FA 52 46 CD 96 26 B7 06 E2 6A 3A 46 93 DF C9 18 67 A8 > 37 E2 F0 1D 7B 52 4D 47 DD F1 39 A5 4A BA B9 3A D3 86 10 93 D2 90 FD > DD 4A 10 6D 57 CC 8E 31 67 8F EE 06 > ioctl ret: 0 > host_status: 00 driver_status: 28 > ./cdrecord: Input/output error. write_g1: scsi sendcmd: no error > CDB: 2A 00 00 00 02 6C 00 00 1F 00 > status: 0x2 (CHECK CONDITION) > Sense Bytes: 70 00 02 00 00 00 00 0E 00 00 00 00 04 08 00 00 > Sense Key: 0x2 Not Ready, Segment 0 > Sense Code: 0x04 Qual 0x08 (logical unit not ready, long write in > progress) Fru 0x0 > Sense flags: Blk 0 (not valid) > cmd finished after 0.006s timeout 200s > > > After 697 times retry, DVR-A03 will write the 0x1F sector at 0x026C > successfully. > I remember some other cdrw drive have the same behavior (Yamaha 2100 > and 2200). > Is there anyway to avoid this? Or I have to retry the command until it > success? > > But while I try to let my program retry until the "write" command > successful. It will > be failed after hundreds times with > > FAIL!!! CDB: 2A 0 0 0 2 6C 0 0 1F 0 > ?: Input/output error. : scsi sendcmd: no error > CDB: 2A 00 00 00 02 6C 00 00 1F 00 > status: 0x2 (CHECK CONDITION) > Sense Bytes: 70 00 05 00 00 00 00 0E 00 00 00 00 21 02 00 00 > Sense Key: 0x5 Illegal Request, Segment 0 > Sense Code: 0x21 Qual 0x02 (logical block address out of range) [No > matching > qualifier] Fru 0x0 > Sense flags: Blk 0 (not valid) > cmd finished after 0.005s timeout 20s > > Why? I retry to write the same address but fail with "INVALID ADDRESS > FOR WRITE"? > Is there anybody can tell me why? Or how to avoid this? > You have to retry the same write command several times until it succeeds. After that you need to write to the next writable address. That error is generated because you have retried the same write command after it succeeded. It takes so long to do the first write because it first has to write the Lead in area and only after that it will write the data from cache. After the Lead In is written the write will go much faster, about 1.35MB/s for 1x.
Nicolae -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

