From owner-freebsd-stable Mon Dec 11 21:22:39 2000 From owner-freebsd-stable@FreeBSD.ORG Mon Dec 11 21:22:36 2000 Return-Path: Delivered-To: freebsd-stable@freebsd.org Received: from flux.ptc.spbu.ru (flux.ptc.spbu.ru [195.19.225.195]) by hub.freebsd.org (Postfix) with ESMTP id 0D28E37B400 for ; Mon, 11 Dec 2000 21:22:35 -0800 (PST) Received: from snark.ptc.spbu.ru (snark.ptc.spbu.ru [195.19.225.131]) by flux.ptc.spbu.ru (8.9.3/8.9.3/cf-1.0.rbl) with ESMTP id IAA54731 for ; Tue, 12 Dec 2000 08:22:23 +0300 (MSK) Received: (from uwe@localhost) by snark.ptc.spbu.ru (8.8.8+Sun/8.8.8) id IAA19503 for stable@FreeBSD.ORG; Tue, 12 Dec 2000 08:22:22 +0300 (MSK) Date: Tue, 12 Dec 2000 08:22:22 +0300 From: "Valeriy E. Ushakov" To: stable@FreeBSD.ORG Subject: Re: Problem with video-CDs Message-ID: <20001212082222.A19475@snark.ptc.spbu.ru> Mail-Followup-To: stable@FreeBSD.ORG References: <200012110158.MAA08709@lightning.itga.com.au> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.3.3i In-Reply-To: <200012110158.MAA08709@lightning.itga.com.au>; from "Gregory Bond" on Mon, Dec 11, 2000 at 12:58:26 Sender: uwe@snark.ptc.spbu.ru Sender: owner-freebsd-stable@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.ORG 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