Re: growisofs failing on some iso files
On 04/13/2012 02:00 PM, Thomas Schmitt wrote:
Please verify that the readable size is really not aligned to 32 KiB.
I introduced non-alignment only a year ago with version 1.0.6.
So if yours is older, then the readable size will be aligned.
I think it's all right, if I understood what your meant by "readable size":
$ isoinfo -d -dev=/dev/sr0 | grep 'Volume size'
Volume size is: 138421
The above is valid for DVD burned with cdrskin-1.1.8-1.fc16.x86_64.
But i wonder how your observation matches these lines in growisofs_mmc.cpp
if not your patch is applied:
if (dao_blocks!=0 && (lba+nbl)>dao_blocks)
nbl = dao_blocks-lba;
while (1)
{ cmd[0] = wrvfy?0x2E:0x2A; // WRITE [AND VERIFY] (10)
cmd[2] = (lba>>24)&0xff; // Logical Block Addrss
cmd[3] = (lba>>16)&0xff;
cmd[4] = (lba>>8)&0xff;
cmd[5] = lba&0xff;
cmd[7] = (nbl>>8)&0xff;
cmd[8] = nbl&0xff;
cmd[9] = 0;
This write command itself is correct, but the "size of data in buffer"
is passed incorrectly -- see the following patch, it fixes the problem
at least on my testing data and seems much more rational than the
previous one.
diff -up dvd+rw-tools-7.1/growisofs_mmc.cpp.lastshort
dvd+rw-tools-7.1/growisofs_mmc.cpp
--- dvd+rw-tools-7.1/growisofs_mmc.cpp.lastshort 2012-04-13
18:09:31.047641524 +0200
+++ dvd+rw-tools-7.1/growisofs_mmc.cpp 2012-04-13 18:09:34.451763587 +0200
@@ -540,7 +540,7 @@ ssize_t poor_mans_pwrite64 (int fd,const
// own higher HZ value and disrespects the user-land one.
// Sending them down as milliseconds is just safer...
//
- if (!(errcode=cmd.transport (WRITE,(void *)buff,size)))
+ if (!(errcode=cmd.transport (WRITE,(void *)buff,nbl*2048)))
break;
//--- WRITE failed ---//
Have a nice weekend,
Honza
Reply to: