On Thu, May 24, 2001 at 03:23:28PM -0700, [EMAIL PROTECTED] 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 ([EMAIL PROTECTED]) is handling the burncd stuff. You might want to send him a copy of that patch. -- -Munish To Unsubscribe: send mail to [EMAIL PROTECTED] with "unsubscribe freebsd-hackers" in the body of the message

