An ATAPI CD-ROM drive doesn't work with 7.0-BETA2, but it works with 7.0-BETA1 and 6.3-BETA1

Watanabe Kazuhiro CQG00620 at nifty.ne.jp
Wed Nov 21 05:06:03 PST 2007


At Sun, 18 Nov 2007 16:19:58 -0800,
Kip Macy wrote:
> This is also an issue on parallels. Scott Long and the maintainer are
> aware of the issue. I don't know yet how they intend to address it.
> 
>  -Kip
> 
> 
> On Nov 18, 2007 3:08 PM, Juergen Lock <nox at jelal.kn-bremen.de> wrote:
> >
> > In article <20071111073940.E35C74AE2D at mail.asahi-net.or.jp> you write:
> > >Hi, all.
> > >
> > >I've tried to install FreeBSD/pc98 7.0-BETA2 to PC-9821Xa9 via FTP.
> > >Installation is finished sucessfully.
> > >But cannot use the internal ATAPI CD-ROM drive.
> > >
> > >aries# uname -a
> > >FreeBSD aries.sign.local 7.0-BETA2 FreeBSD 7.0-BETA2 #1: Sun Nov 11 00:16:42
> > >JST 2007     nabe at aries.sign.local:/usr/src/sys/pc98/compile/GENERIC  pc98
> > >aries# dmesg | grep ^acd
> > >acd0: <CD-ROM CDU76E-NE/1.0d> CDROM drive at ata1 as master
> > >acd0: read 689KB/s (689KB/s), 256KB buffer, PIO2
> > >acd0: Reads: CDDA stream
> > >acd0: Writes:
> > >acd0: Audio: play, 256 volume levels
> > >acd0: Mechanism: ejectable tray, unlocked
> > >acd0: Medium: CD-ROM unknown
> > >aries# mount_cd9660 -v /dev/acd0 /mnt
> > >could not determine starting sector, using very first session
> > >mount_cd9660: /dev/acd0: Input/output error
> > >aries# cdcontrol info
> > >cdcontrol: /dev/acd0: Input/output error
> > >aries# cdcontrol status
> > >cdcontrol: /dev/acd0: Input/output error
> > >aries#
> > >
> > >The CD-ROM drive works well with 7.0-BETA1 and 6.3-BETA1.
> > >
> > >To use the CD-ROM drive with 7.0-BETA2, I have to apply a quick patch
> > >described below and recompile the kernel:
> > >
> > >--- sys/dev/ata/atapi-cd.c.orig 2007-11-01 04:59:53.000000000 +0900
> > >+++ sys/dev/ata/atapi-cd.c      2007-11-11 00:15:21.000000000 +0900
> > >@@ -696,12 +696,16 @@
> > >        if (!acd_mode_sense(dev, ATAPI_CDROM_CAP_PAGE,
> > >                            (caddr_t)&cdp->cap, sizeof(cdp->cap)) &&
> > >                            cdp->cap.page_code == ATAPI_CDROM_CAP_PAGE) {
> > >+#if 0
> > >            if ((cdp->cap.medium_type == MST_FMT_NONE) ||
> > >                (cdp->cap.medium_type == MST_NO_DISC) ||
> > >                (cdp->cap.medium_type == MST_DOOR_OPEN) ||
> > >                (cdp->cap.medium_type == MST_FMT_ERROR))
> > >                return EIO;
> > >            else
> > >+#else
> > >+           printf("cap.medium_type:%d\n", cdp->cap.medium_type);
> > >+#endif
> > >                break;
> > >        }
> > >        pause("acdld", hz / 2);
> > >
> > >The value of cdp->cap.medium_type is 0 (MST_FMT_NONE).
> >
> > Interesting, I didn't know real hw is also affected...  I already
> > had to make a patch for qemu that chases these recent commits (atapi-cd.c),
> > see my post on -emulation,
> >         http://lists.freebsd.org/pipermail/freebsd-emulation/2007-November/004178.html
> >
> >  If you want to play with the patch, its also at,
> >         http://people.freebsd.org/~nox/qemu/patch-hw-ide.c
> > (testers especially with non-FreeBSD guests still wanted!)
> >
> >  Thanx,
> >         Juergen

Fixed in 8-current.

 http://www.jp.freebsd.org/cgi/cvsweb.cgi/src/sys/dev/ata/atapi-cd.c#rev1.195

I've upgraded the PC from 7.0-BETA3 (cannot use the CD-ROM yet) to
8-current (yesterday's source).  The CD-ROM drive works fine.

aries# uname -a
FreeBSD aries.sign.local 8.0-CURRENT FreeBSD 8.0-CURRENT #0: Tue Nov 20 
21:16:32 JST 2007     nabe at capricorn:/FreeBSD/obj/pc98/HEAD/pc98
/FreeBSD/HEAD/src/sys/GENERIC  pc98
aries# dmesg | grep ^acd
acd0: <CD-ROM CDU76E-NE/1.0d> CDROM drive at ata1 as master
acd0: read 689KB/s (689KB/s), 256KB buffer, PIO2
acd0: Reads: CDDA stream
acd0: Writes:
acd0: Audio: play, 256 volume levels
acd0: Mechanism: ejectable tray, unlocked
acd0: Medium: CD-ROM unknown
aries# mount_cd9660 -v /dev/acd0 /mnt
using starting sector 0
aries# ls -l /mnt
total 57
-r--r--r--   1 root  wheel     25 Oct  8  2002 cdrom.inf
-r--r--r--   1 root  wheel  50336 Oct 19  2002 filename.txt
dr-xr-xr-x  55 root  wheel   8192 Oct 19  2002 packages
aries# cdcontrol info
Starting track = 1, ending track = 1, TOC size = 18 bytes
track     start  duration   block  length   type
-------------------------------------------------
    1   0:02.00  73:36.48       0  331248   data
  170  73:38.48         -  331248       -      -
aries# cdcontrol status
Audio status = 21<void>, current track = 1, current position = 0:01.60
Media catalog is inactive
Left volume = 255, right volume = 255
aries# 

I hope to MFC the fix to RELENG_7 and RELENG_6.
---
Watanabe Kazuhiro (CQG00620 at nifty.ne.jp)


More information about the freebsd-emulation mailing list