[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