Date: Tue, 12 Dec 2000 08:22:22 +0300 From: "Valeriy E. Ushakov" <uwe@ptc.spbu.ru> To: stable@FreeBSD.ORG Subject: Re: Problem with video-CDs Message-ID: <20001212082222.A19475@snark.ptc.spbu.ru> In-Reply-To: <200012110158.MAA08709@lightning.itga.com.au>; from "Gregory Bond" on Mon, Dec 11, 2000 at 12:58:26 References: <200012110158.MAA08709@lightning.itga.com.au>
next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, Dec 11, 2000 at 12:58:26 +1100, Gregory Bond wrote: > acd0: READ_BIG - ILLEGAL REQUEST asc=64 ascq=00 error=04 > > and dd gets EIO. On 3.5 dd gets EIO but no console message. > > Is this a known problem? Yes. In /sys/dev/ata/atapi-cd.c in acd_start change flags to ATAPI_READ_CD from 0x10 (data only) to 0xf8 (whole sector): --- atapi-cd.c-dist Tue Dec 12 08:11:15 2000 +++ atapi-cd.c-new Tue Dec 12 08:12:08 2000 @@ -1165,7 +1165,7 @@ ccb[0] = ATAPI_READ_BIG; else { ccb[0] = ATAPI_READ_CD; - ccb[9] = 0x10; + ccb[9] = 0xf8; } } else After this you can write a C program that does something along the lines of: struct vcdsector { u_char sync[12]; u_char header[4]; u_char subheader[8]; u_char data[2324]; u_char spare[4]; }; struct vcdsector sec; int bs = sizeof(struct vcdsector); /* read toc */ ioctl(fd, CDRIOCSETBLOCKSIZE, &bs); /* sic! CD_R_IO, */ /* lseek to track start */ for (...) { read(fd, &sec, bs); fwrite(sec.data, 2324, 1, outfile); } Driver author knows about this and, as far as I understand, has this fixed in his development sources. SY, Uwe -- uwe@ptc.spbu.ru | Zu Grunde kommen http://www.ptc.spbu.ru/~uwe/ | Ist zu Grunde gehen To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-stable" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20001212082222.A19475>