[Pkg-opt-media-team] Bug#794868: Fix for writing unaligned iso images to DVD-R for growisofs
Eike Lantzsch
zp6cge at gmx.net
Sat Aug 8 02:59:43 UTC 2015
Hi Debian team!
I applied the patches mentioned in the bug report by Thomas Schmitt
and the DAO-burn with unaligned iso-images works OK now on Debian testing
All the best
EIke
Patches added for clarity:
-------------------------------------------------------------------
Remedy for the wrong last WRITE transaction:
-------------------------------------------------------------------
--- growisofs_mmc-7.1-11.cpp 2015-08-07 13:07:52.000000000 +0200
+++ growisofs_mmc.cpp 2015-08-07 14:06:31.375597960 +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 ---//
-------------------------------------------------------------------
> With the patch applied, the burn run succeeds, the medium is
> readable, and diff detects no alterations.
I can confirm this.
----------------------------------------------------------------
Remedy for the wrong error code display:
----------------------------------------------------------------
--- transport-7.1-11.hxx 2015-08-07 13:07:52.000000000 +0200
+++ transport.hxx 2015-08-07 13:43:02.759592641 +0200
@@ -70,7 +70,12 @@ inline long getmsecs()
#ifndef FATAL_START
#define FATAL_START(er) (0x80|(er))
#endif
-#define ERRCODE(s) ((((s)[2]&0x0F)<<16)|((s)[12]<<8)|((s)[13]))
+#define ERRCODE_FIXED(s) ((((s)[2]&0x0F)<<16)|((s)[12]<<8)|((s)[13]))
+#define ERRCODE_DESCR(s) ((((s)[1]&0x0F)<<16)|((s)[2]<<8)|((s)[3]))
+#define ERRCODE(s) ((s)[0] == 0x70 || (s)[0] == 0x71 ? \
+ ERRCODE_FIXED(s) : \
+ ((s)[0] == 0x72 || (s)[0] == 0x73 ? \
+ ERRCODE_DESCR(s) : 0))
#define SK(errcode) (((errcode)>>16)&0xF)
#define ASC(errcode) (((errcode)>>8)&0xFF)
----------------------------------------------------------------
> The error message on my Debian 8.1, burner LG GH24NSC0,
> SATA of mainboard ASUS P9D WS, is then correctly reported:
> :-[ WRITE at LBA=19c70h failed with SK=Bh/NO ADDITIONAL SENSE INFORMATION]: >
> Input/output error
> Something which one could look up in e.g.
> https://en.wikipedia.org/wiki/Key_Code_Qualifier
> other than the fantasy error triple
> SK=0h/ASC=00h/ACQ=03h
> (Of course, i see the error only if the remedy for DAO is not
> applied.)
-------------------------------------------------------------------
> Side note about dash (see also https://wiki.debian.org/DashAsBinSh):
> When manually running "make" after apt-get source dvd+rw-tools,
> i see the error message
> /bin/sh: 1: [: 1000: unexpected operator
> which stems from a bashism in Makefile.m4
> minus_o:=$(shell [[ `id -u` == 0 ]] && echo "-o root")
This fix works OK.
--
Eike Lantzsch ZP6CGE
Agencia Shopping del Sol
Casilla de Correo 13005
1749 Asuncion / Paraguay
More information about the Pkg-opt-media-team
mailing list