Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 25 May 2001 00:52:28 +0200
From:      Munish Chopra <chopra@runbox.com>
To:        freebsd-hackers@freebsd.org
Subject:   Re: Fix for ATAPI CDRW problem: MODE_SELECT_BIG - ILLEGAL REQUEST asc=1a
Message-ID:  <20010525005228.D7219@messiah.megadeb.org>
In-Reply-To: <200105242223.f4OMNSm16593@starvation.hungry.com>; from bpk@Hungry.COM on Thu, May 24, 2001 at 03:23:28PM -0700
References:  <200105242223.f4OMNSm16593@starvation.hungry.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, May 24, 2001 at 03:23:28PM -0700, bpk@Hungry.COM wrote:
> 
> I recently acquired a new Yamaha 2100E ATAPI CDRW drive, and encountered
> this error during the fixation stage with burncd on a FreeBSD 4.3 release
> system:
> 
> burncd: ioctl(CDRIOCCLOSEDISK): Input/output error
> 
> and the kernel complains:
> 
> acd0: MODE_SELECT_BIG - ILLEGAL REQUEST asc=1a ascq=00 error=00
> 
> After perusing the ATA/ATAPI-5 and MMC-3 specifications I realized that the
> asc=1a error (PARAMETER LENGTH LIST ERROR) was telling me that the CDRW
> drive wasn't happy with the length of the CLOSE DISK mode page that was
> being sent to it.
> 
> In atapi-cd.c the acd_close_disk() function is sending the write_param
> mode page structure in the CLOSE DISK command to the drive.
> 
> Upon examination of struct write_param in atapi-cd.h I noticed sure enough
> the last four bytes of the page were commented out:
> /*
>     u_int8_t    vendor_specific_byte0;
>     u_int8_t    vendor_specific_byte1;
>     u_int8_t    vendor_specific_byte2;
>     u_int8_t    vendor_specific_byte3;
> */
> 
> I uncommented these lines, recompiled/rebooted, and tried burncd again. 
> This time it failed right away on the CDRIOCOPENDISK ioctl, with the kernel
> error being something about an invalid parameter.
> 
> So I reverted struct write_param back to the original commented version. 
> But I copied write_param to a new struct called full_write_param and
> uncommented the last 4 bytes.  I then changed acd_close_disk() to use the
> full_write_param struct rather than the original write_param struct.
> 
> Recompiled/rebooted.
> 
> The result: success!

I'm not sure how things work here on -hackers yet, but I know Søren
(sos@freebsd.dk) is handling the burncd stuff. You might want to send
him a copy of that patch.

-- 
-Munish

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20010525005228.D7219>